到空間的東西好表的佈局我很新,所以原諒初學者問題。如果我希望有很多的多邊形,看起來像圖片,是它最好有1臺與一個具有外多邊形和一個具有內部多邊形和類似
POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10),(20 30, 35 35, 30 20, 20 30),(20 30, 35 35, 30 20, 20 30),(20 30, 35 35, 30 20, 20 30),(20 30, 35 35, 30 20, 20 30))
或兩個表定義的列,第一個表中包含的多邊形的ID?
我的用例通常會詢問「這個點是否在外部多邊形?」和「哪個多邊形包含這一點?」。對於後者,如果可能的話,我只想返回最內側的多邊形。
因此,對於我的第一個案例(1表),我想sudo代碼看起來像。
len = SELECT NumInteriorRings(g1)
,然後遍歷每個內部多邊形使用類似
for(i = 1; i < len; ++i){
SELECT ST_CONTAINS(InteriorRingN(poly,i),point)
}
我的第二種情況(2個表)看起來更像
SELECT sub_poly_id, ST_CONTAINS(poly, point) as contains
FROM sub_poly_table WHERE parent_poly_id = 23;
第二種情況似乎更乾淨,但我我只是屠殺我的第一個案件?有沒有更好的方法來完成這一點?
綠色位應該是藍色多邊形的內環還是它們是分開的多邊形? – 2014-09-19 13:18:44
他們是子多邊形。較大的兒童。 – 2014-09-25 21:38:27
我還是不明白。它們是內環還是單獨的多邊形,恰好位於其他多邊形內部,兒童多邊形的概念對我而言是新的。 – 2014-09-26 08:22:41