如何查询cities空间表中端点距离最大的城市
城市距离查询SQL实现
场景1:查询所有城市中,两个城市间距离最大的城市对
对应SQL语句如下:
SELECT a.city AS city_1, b.city AS city_2, ST_Distance(a.geom, b.geom) AS max_distance FROM cities a INNER JOIN cities b ON a.city_id < b.city_id -- 避免重复计算同一对城市,排除自身配对的无效数据 ORDER BY max_distance DESC LIMIT 1;
场景2:查询单个城市自身几何形状最远两个端点距离最大的城市
对应SQL语句如下:
SELECT city, ST_Length(ST_LongestLine(geom, geom)) AS city_max_span FROM cities ORDER BY city_max_span DESC LIMIT 1;
- 性能优化提示:如果数据量较大,可提前创建空间索引提升查询效率
CREATE INDEX idx_cities_geom ON cities USING GIST(geom);
说明:表中使用的坐标系26986为NAD83 / Massachusetts Mainland平面坐标系,上述查询返回的距离单位默认为米,可根据需求自行换算为公里等其他单位。
内容的提问来源于stack exchange,提问作者Anaidm
相关产品推荐
相关产品推荐

