2016-12-06 3 views
-2

У меня проблема с функцией pdist в python. У меня есть координаты точек, которые я хочу найти расстояние между ними, но они не считают их координатами и находят расстояние между двумя точками, а не координатами (он рассматривает координаты как десятичные числа, а не координаты). Я не мог найти ничего до сих пор, как решить эту проблему. Любая помощь приветствуется. Другими словами, следует ли мне преобразовывать мои координаты? Вот пример кода:Найти эвклидовое расстояние между координатами в python

p1=[39.1653, -86.5264] 
    p2=[39.704166670000049, -86.399444439999826] 
    X=[p1[0],p2[0]] 
    Y=[p1[1],p2[1]] 
    spdist.pdist(zip(X,Y), 'euclidean') 

В результате это дает мне это 0.55361991 миль, но когда я ставлю координаты на карте Google, он дает мне 42 миль.

Благодаря

+1

вы можете разместить свой код, так как вы, кажется, написали? –

+0

Очень неясно, что вы пытаетесь сделать, опубликуйте какой-то код о том, что вы пытались сделать, некоторые примеры ... – Zafi

+0

Спасибо. добавлен код в исходный вопрос. – Fairy

ответ

0

Вы можете рассчитать расстояние от десятичных координат, если вы знаете формулу, которая участвует. Есть один для rectangular coordinate systems; другой для spherical coordinate systems.

Если встроенная функция Python принимает параметры точки, почему бы не обернуть ваши десятичные значения в виде точек перед вызовом функции?

+0

Спасибо за комментарий, но я точно не понимаю, что вы имели в виду. Я добавил код на вопрос. Не могли бы вы рассказать мне немного намека на это? – Fairy

+0

Они выглядят как значения lat/lon. Они не вычисляются в евклидовом пространстве; они находятся в сферической системе координат Земли с радиусом 3995 миль. – duffymo

+0

В таком случае, должен ли я делать какие-либо преобразования, чтобы я мог использовать эвклидовое расстояние в python? – Fairy

 Смежные вопросы

  • Нет связанных вопросов^_^