【问题标题】:Can I check whether a multipolygon contains point in PostGIS?我可以检查多面体是否包含 PostGIS 中的点吗?
【发布时间】:2012-11-29 04:12:10
【问题描述】:

我得到一列 (latlon),它是 ST_MultiPolygon。

另一个几何图形是一个点,我只想检查它是否在我的 MultiPolygon 中。

我试过了:

SELECT ST_CONTAINS(latlon, ST_GeometryFromText('POINT(48.208417 16.372472)')
FROM districts

它总是返回 false;为什么我不能用ST_Contains检查一个点是否在一个多多边形内?

【问题讨论】:

    标签: postgis


    【解决方案1】:

    它是这样工作的:

    SELECT name, st_contains(latlon, ST_GeomFromText('POINT(16.391944 48.218056)', 4326))  FROM bezirks
    

    【讨论】:

    • 另外,您可以使用子查询来指定 B 几何。 SELECT name,ST_Contains(latLon,(SELECT geom FROM b WHERE id = 3)) FROM bezirks
    【解决方案2】:

    st_contains 适用于多种几何形状。 您必须确保该点位于多边形几何的同一坐标系上。

    您还必须知道,如果该点落入多面体的边界,则不会被视为包含该点。在这种情况下,它将返回 false,因为多边形几何内部没有点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-07
      • 1970-01-01
      • 2019-08-14
      • 2011-07-15
      • 1970-01-01
      • 2021-05-09
      相关资源
      最近更新 更多