我正在尝试找到一种方法来定位与 CartoDB.com(云托管空间数据库)上的 PostGIS 相交的所有几何图形。
我能够重现这一点的最接近的是:
SELECT * FROM sf_blocks WHERE ST_Contains(the_geom, ST_GeomFromText('POINT(-122.44107 37.750066)'));
不幸的是,此错误显示为“错误:对混合 SRID 几何的操作”。
从与点相交的表中选择几何图形的正确语法是什么?我的表,sf_blocks 都是多边形。
最佳答案
函数 ST_GeomFromText 采用第二个参数 - SRID。因此,如果您的 sf_blocks 层在 Lon/Lat、WGS84 中,则 EPSG 代码为 4326。在这种情况下
SELECT *
FROM sf_blocks
WHERE ST_Contains(
the_geom,
ST_GeomFromText('POINT(-122.44107 37.750066)', 4326)
);
应该这样做。
如果 sf_blocks 图层在其他坐标系中(并且点坐标似乎是 Lon/Lat),那么您需要在 GeomFromText 部分周围使用 ST_Transform。
关于sql - 查找与点相交的所有几何图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10521305/