geopy.distance.vincenty дает разные результаты для радиан и градусов - PullRequest
1 голос
/ 04 октября 2019

Я запускаю функцию geopy.distance.vincenty() Python в тех же координатах, один раз в градусах, а затем в радианах, и я получаю совершенно разные результаты.

print(geopy.distance.vincenty((0.88802*180.0 / math.pi, 0.0780654*180.0 / math.pi),
                              (0.888019*180.0 / math.pi, 0.0780669*180.0 /math.pi )).m)

Я получаю 8.787072619249342

и когда я делаю это в радианах

print(geopy.distance.vincenty((0.88802, 0.0780654), (0.888019, 0.0780669)).m)

, я получаю 0.2002536292651726.

1 Ответ

1 голос
/ 04 октября 2019

Функция ожидает значения в градусах, поэтому первый результат верен. Вы получите тот же ответ, если преобразуете второй набор координат в градусы, например, с помощью math.degrees() или np.degrees():

import numpy as np
geopy.distance.vincenty((np.degrees((0.88802, 0.0780654)),
                         np.degrees((0.888019, 0.0780669)).m
                        )

Я смотрю на пример в документации, а также на код . (Кстати, обратите внимание, что там написано, что vincenty() устарело.)

...