【问题标题】:PostGIS geometry database queryPostGIS 几何数据库查询
【发布时间】:2012-03-07 09:33:54
【问题描述】:

我有几个包含多面体的表。我需要在这些多边形中找到可以在我的 java 测试类中使用的点。我一直在做的是发送一个查询来返回所有的多边形,选择一个顶点作为一个点,而且大多数时候它都可以工作。

但是,这些表格代表风险数据,100 分之一、200 分之一等,因此某些点在表格之间共享(风险较高的多多边形被较低风险封装)。我可以使用什么查询来返回一个点,该点位于 1 个表中的 1 个多面体内,但不在我指定的任何其他多边形内?

这些表是river_100_1k、river_200_1k 和river_1000_1k

【问题讨论】:

    标签: database geometry postgis


    【解决方案1】:

    你可以做一个多重左连接:

    SELECT a.gid, a.the_geom FROM pointsTable a
    LEFT JOIN river_100_1k b 
    ON ST_Intersects(a.the_geom, b.the_geom)
    LEFT JOIN 
    river_200_1k c
    ON NOT ST_Intersects(a.the_geom, c.the_geom) -- Not Intersects
    LEFT JOIN
    river_1000_1k d 
    ON NOT ST_Intersects(a.the_geom, d.the_geom) -- Not Intersects
    WHERE 
    AND c.gid IS NULL AND d.gid IS NULL AND b.gid=2 AND c.gid=2 AND d.gid=2 ; 
    

    我不确定我是否理解正确,但这是您应该采取的方式。

    【讨论】:

      【解决方案2】:

      使用ST_PointOnSurface(polygon) 获取多边形内的一个点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-14
        • 2019-06-18
        • 1970-01-01
        • 2018-08-02
        • 2015-05-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多