Postgresql 多边形包容
数据保存在Postgres数据库中(带有PostGIS扩展)。我有一个包含以下列的表:pid、几何体、父项。pID是主键,几何图形是用点描述的地理数据,父列包含此记录父项的pID。 这意味着我们希望表格的顺序如下:Postgresql 多边形包容,postgresql,postgis,Postgresql,Postgis,数据保存在Postgres数据库中(带有PostGIS扩展)。我有一个包含以下列的表:pid、几何体、父项。pID是主键,几何图形是用点描述的地理数据,父列包含此记录父项的pID。 这意味着我们希望表格的顺序如下: A、 正方形(几何学),C B、 正方形(几何学),C C、 多边形(几何),D D、 多边形(几何)\ 我们面临的问题是,如果我们不知道最接近/最小的父多边形的初始顺序,如何找到它们。如果我们先处理C,然后可以添加D作为父级,但是如果我们从a和B开始,D不是正确的父级 如果您
- A、 正方形(几何学),C
- B、 正方形(几何学),C
- C、 多边形(几何),D
- D、 多边形(几何)\
如果您有任何建议,如何解决此问题,我将不胜感激。使用地理区域的额外列,然后在查询中使用
包含
,中的,和&
或其他包含操作。最后,按此新列对desc进行排序,并限制1以获取父级
例如,行必须是:
- A、 正方形(几何体)、C、面积(100)、边界框(正方形)
- B、 正方形(几何体)、C、面积(100)、边界框(正方形)
- C,多边形(几何体),D,面积(2000),边界框(多边形)
st_区域和st_信封函数可以提供帮助
查询的名称必须为
Select id
from Table
Where st_envelope('parameter') @ BoundingBox
ORDER BY Area DESC
LIMIT 1
表格博士后
使用@
你可以制作容器过滤器,这样你就有了所有包含几何体的“父对象”,然后得到其中一个(按区域排序)你能更精确地解释一下吗,我不明白你的想法是什么?
@ — Returns TRUE if A's bounding box is contained by B's.