sql - 查找与点相交的所有几何图形

标签 sql gis postgis

我正在尝试找到一种方法来定位与 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/

相关文章:

r - 在单个3D图中混合表面和散点图

数组上的 MongoDB 地理空间索引(多键 + 地理空间)

postgis - 最好的postgis距离查询

python - 使用 Django 选择不在另一个表中的值

SQL:两个没有重复的聚合函数

sql - 如何处理原始可空类型的 Spark UDF 输入/输出

mysql - 模式匹配如 Select Query

gis - 如何从 OpenStreetMap 方式中去除水?

postgresql - 将时间戳字段添加到 ogr2ogr 导入 Postgis 中

python - Django 测试——无法删除并重新创建测试数据库