来自同一 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')
)
这可能是一个非常简单的查询,但出于某种原因,我就是想不通.. 我有一个 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')
)