我在PostgreSQL/PostGIS中有一个多边形数据表。现在我需要将此Polygon数据转换为相应的线段。任何人都可以告诉我如何使用PostGIS查询进行转换。如何使用PostGIS将多边形数据转换为线段
由于提前
我在PostgreSQL/PostGIS中有一个多边形数据表。现在我需要将此Polygon数据转换为相应的线段。任何人都可以告诉我如何使用PostGIS查询进行转换。如何使用PostGIS将多边形数据转换为线段
由于提前
通常,转换多边形线可以是不直接的,因为there is no one-to-one mapping和多边形映射到不同的线串(外环,内环,等等)的各种元件。
考虑到这一点,你需要拆分每个这样的单独以下可能办法:
SELECT ST_AsText(ST_MakeLine(sp,ep))
FROM
-- extract the endpoints for every 2-point line segment for each linestring
(SELECT
ST_PointN(geom, generate_series(1, ST_NPoints(geom)-1)) as sp,
ST_PointN(geom, generate_series(2, ST_NPoints(geom) )) as ep
FROM
-- extract the individual linestrings
(SELECT (ST_Dump(ST_Boundary(geom))).geom
FROM mypolygontable
) AS linestrings
) AS segments;
取决于什么多边形数据存储在mypolygontable
,你可能要抛售不仅边界(如以上使用ST_Boundary
)还有其他元素。有更详细的介绍上面的代码是从PostGIS的用户列表中的值:Split a polygon to N linestrings
还有一个通用的解决问题的方法在Exploding a linestring or polygon into individual vectors in PostGIS
解释这是先打上谷歌,当你搜索这个问题。我不知道是否有这么多时间已经过去了,但是对于未来的谷歌用户来说,ST_ExteriorRings(geom)非常适合我。 http://postgis.net/docs/ST_ExteriorRing.html
虽然你的答案是100%正确的,它也有可能成为100%无用 如果该链接被移动,更改合并到另一个或主站点 刚好消失... **: - (**因此,请[编辑]您的答案,并将 从链接中的相关步骤复制到您的答案中,从而保证您的答案为本网站整个生命周期的100%!**; - )**您可以随时保留 链接在您的答案的底部作为您的材料的来源...。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 –