找到与点相交的所有几何体

nym*_*nym 5 sql gis postgis

我正在尝试找到一种方法来定位与CartoDB.com上的PostGIS(云托管空间数据库)相交的给定点的所有几何体.

我能够重现的最接近的是:

SELECT * FROM sf_blocks WHERE ST_Contains(the_geom, ST_GeomFromText('POINT(-122.44107 37.750066)'));
Run Code Online (Sandbox Code Playgroud)

不幸的是,错误出现了'错误:混合SRID几何上的操作'.

从与点相交的表中选择几何的正确语法是什么?我的表,sf_blocks都是多边形.

小智 5

函数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)
); 
Run Code Online (Sandbox Code Playgroud)

应该这样做.如果sf_blocks层位于某个其他坐标系中(并且点坐标似乎是Lon/Lat),那么您将需要在GeomFromText部分周围使用ST_Transform.