到空间的东西好表的布局我很新,所以原谅初学者问题。如果我希望有很多的多边形,看起来像图片,是它最好有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