Postgresql 如何删除postgis中的重叠线

Postgresql 如何删除postgis中的重叠线,postgresql,gis,postgis,Postgresql,Gis,Postgis,我有一个典型的数据库,其中有数百万个多边形作为地块,我想将这些多边形拆分为直线,然后删除相互重叠的直线。这些线将仅用于在mapnik/and/or geoserver中渲染,因为此时每个地块边界将渲染两次 我建议将地块多边形拆分为一个新表(“边界线”),然后搜索并删除重叠线。我如何在postgis中删除这些重叠线 使用ST_Equals: 您的SQL语句可能如下所示: SELECT y.id, z.id FROM mytable y, mytable z WHERE ST_Equals(y.

我有一个典型的数据库,其中有数百万个多边形作为地块,我想将这些多边形拆分为直线,然后删除相互重叠的直线。这些线将仅用于在mapnik/and/or geoserver中渲染,因为此时每个地块边界将渲染两次

我建议将地块多边形拆分为一个新表(“边界线”),然后搜索并删除重叠线。我如何在postgis中删除这些重叠线

使用ST_Equals:

您的SQL语句可能如下所示:

SELECT y.id, z.id 
FROM mytable y, mytable z
WHERE ST_Equals(y.the_geom,z.the_geom)
查询将永远运行,但希望您只需执行一次。运行后,获取结果并仔细删除重复的id


请注意,这并不能消除不完全重叠的边界。

在以GIS为中心的站点上,这是一个很好的问题。