我在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%!**; - )**您可以隨時保留 鏈接在您的答案的底部作爲您的材料的來源...。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 –