2015-07-03 2 views
4

Я получаю неожиданное значение из запроса расстояния PostGIS, и я не уверен, почему. Я пытаюсь найти расстояние между двумя точками на Земле.Как я могу получить расстояние между двумя точками на Земле от PostGIS?

SELECT ST_Distance(
    ST_Point(50.7678,6.091499)::geography, 
    ST_Point(52.525592,13.369545)::geography 
) as distance; 

... возвращается 827757.672533206, или около 827.7km.

Однако, если я вычислил это расстояние с помощью библиотеки с открытым исходным кодом, которую я использую, или используя любой из нескольких онлайн-калькуляторов, я получаю 538.6km. Что-то явно не так.

Что я делаю неправильно?

+0

Я использую PostGIS 2.1.7 с PostgreSQL 9.4.1 –

+1

Как правило, порядок символов, используемый PostGIS и многими другими программами ГИС, всегда является декартовым (X Y) или (long lat). –

+0

, например. 'SELECT ST_AsLatLonText (ST_Point (50.7678,6.091499));' возвращает 6 ° 5'29.396 "N 50 ° 46'4.080" E –

ответ

4

Результат правильный, вход нет. ST_Point принимает ввод как (lon,lat), пока вы его проверяете как (lat,lon).

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