来自同一 table 的 2 个选定点之间的 PostGIS 距离查询

PostGIS distance query between 2 selected points from same table

这可能是一个非常简单的查询,但出于某种原因,我就是想不通.. 我有一个 table 城市(城市),我想得到伦敦(cities.city_name='London')和邓迪之间的距离。这是我的查询:

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

结果在输出的 ST_Distance 字段中,两个城市均为 0。 我知道我错过了什么,但我不知道是什么。我假设我必须为这两个城市设置别名,但我不知道如何。

有人可以帮我解决这个问题吗?

提前致谢!!

您正在比较查询中同一点之间的距离:

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)

希望你能从上面的table中看到我的观点

也许是这样的:

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