postgis : select 一个 table 的点和多边形在另一个 table 的多边形内

postgis : select points and polygons of one table inside polygon of another table

我搜索了论坛并尝试了论坛的解决方案,但没有用。 我尝试使用以下代码 select 一个 table 的点和多边形在另一个 table 的多边形内:

SELECT pt_poly.*, poly2.*
FROM osm_fuel pt_poly
JOIN boundingbox poly2 
ON ST_Intersects(poly2.way, ST_GeometryFromText(pt_poly.geometry,27572));

我也试过 st_contains 但还是一样。 我最终得到 table 行,其中几何只是我重复多次的 poly2 多边形。

我记得设法通过连接和 a 来做到这一点。 ::geometry 但我找不到确切的方法。如果有人可以帮助我,那就太好了。

顺便问一下,postgis中的::是什么意思?

您很可能在某些应用程序(例如 QGIS)中打开了结果,因为在此查询中只有一列的类型为 'geometry'(poly2.way),您会看到所描述的结果。

不要使用 *,明确指定您想要的列,并将 pt_poly 的转换 wkt-geometry 添加到结果列,例如:

    SELECT pt_poly.<column_name1>
         , pt_poly.<column_name2>
         , poly2.<column_name1>
         , poly2.<column_name2>
         , ST_GeometryFromText(pt_poly.geometry,27572)) as geom
      FROM osm_fuel pt_poly
      JOIN boundingbox poly2 
        ON ST_Intersects 
                       ( poly2.way
                       , ST_GeometryFromText(pt_poly.geometry, 27572)
                       )