查找空间 table 中城市之间的距离
Find distance between cities in spatial table
我需要找出 shape_area 大于 1000m^2 的城市之间的最小距离。我正在使用 Postgresql 和 PostGis,我的 table 看起来像这样:
CREATE TABLE "cities" (gid serial,
"city_id" int4,
"city" varchar(21),
"shape_area" numeric);
SELECT AddGeometryColumn('','cities','geom','26986','MULTIPOLYGON',2);
假设EPSG:26986
已经以米为单位,将table与其自身连接起来,使用ST_Area
只过滤面积大于1000sqm的记录。之后使用 min()
和 GROUP BY
只得到最短距离:
SELECT t1.city, t2.city, min(ST_Distance(t1.geom,t2.geom))
FROM cities t1
JOIN cities t2 ON
t1.gid <> t2.gid AND
ST_Area(t1.geom) > 1000 AND
ST_Area(t2.geom) > 1000
GROUP BY 1,2;
我需要找出 shape_area 大于 1000m^2 的城市之间的最小距离。我正在使用 Postgresql 和 PostGis,我的 table 看起来像这样:
CREATE TABLE "cities" (gid serial,
"city_id" int4,
"city" varchar(21),
"shape_area" numeric);
SELECT AddGeometryColumn('','cities','geom','26986','MULTIPOLYGON',2);
假设EPSG:26986
已经以米为单位,将table与其自身连接起来,使用ST_Area
只过滤面积大于1000sqm的记录。之后使用 min()
和 GROUP BY
只得到最短距离:
SELECT t1.city, t2.city, min(ST_Distance(t1.geom,t2.geom))
FROM cities t1
JOIN cities t2 ON
t1.gid <> t2.gid AND
ST_Area(t1.geom) > 1000 AND
ST_Area(t2.geom) > 1000
GROUP BY 1,2;