Поиск расстояния двух мест (широта, долгота) с помощью st_distance postgresql - PullRequest
0 голосов
/ 27 ноября 2018

я пытаюсь получить расстояние две точки (-7.4379722 109.2442663) и (-7.4201487 109.245204)

Я использую этот запрос:

select st_distance(
    st_geomfromtext('POINT(-7.4379722 109.2442663)'), 
    st_geomfromtext('POINT(-7.4201487 109.245204)')
)

и возврат запроса:

0.0178481493029382 meters

и, глядя на Google, это 2,59 KM

https://i.stack.imgur.com/Rahrb.png

что мне делать?

1 Ответ

0 голосов
/ 27 ноября 2018

Координаты должны быть сначала выражены с использованием долготы, а затем широты.

Если вы вычисляете расстояние с использованием геометрии широты и длины, выходные данные будут в градусах (что не является хорошей единицей для расстояний).Вместо этого вы можете использовать тип данных географии, который использует метры

select st_distance(
    st_geogfromtext('POINT( 109.2442663 -7.4379722)'), 
    st_geogfromtext('POINT( 109.245204 -7.4201487)')
);
  st_distance
---------------
 1973.86761798
(1 row)
...