2015-11-09 1 views
0

Это, наверное, очень простой запрос, но по какой-то причине я просто не могу понять это. У меня есть таблица с городами (городами), и я хочу получить расстояние между Лондоном (города.city_name = 'Лондон') и Данди. Это мой вопрос:Запрос расстояния PostGIS между двумя выбранными точками из той же таблицы

SELECT 
cities.city_name, ST_Distance(cities.the_geom,cities.the_geom) 
from cities 
WHERE cities.city_name in ('London','Dundee') 

Результат: в поле ST_Distance выходного значения 0 для обоих городов. Я знаю, что чего-то не хватает, но я не знаю, что. Я предполагаю, что мне нужно установить псевдонимы для 2 городов, но я не знаю, как это сделать.

Может ли кто-нибудь помочь мне с этим?

Спасибо за тонну!

ответ

1

Вы сравниваете расстояние между одной и теми же точками в запросе:

ST_Distance(cities.the_geom,cities.the_geom) --compares the same column in the list of the two cities: 

CITY | GEOM | DISTANCE 
----------------------------------- 
London | GEOM1 | DISTANCE (GEOM1, GEOM1) 
Dundee | GEOM2 | DISTANCE(GEOM2, GEOM2) 

Надеется, что вы можете увидеть мою точку из таблицы выше

Могут что-то вроде этого:

SELECT ST_Distance(
    (SELECT the_geom FROM cities WHERE city_name ='London'), 
    (SELECT the_geom FROM cities WHERE city_name ='Dundee') 
) 
+0

Удивительного !! Большое вам спасибо, что решил! – derBrain

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