postgis-ST_Intersects不起作用,其他测量系统

时间:2019-03-28 21:01:33

标签: postgis

我有2个桌子,包裹和单位。包裹单位为米,单位为英尺

我正在尝试以下操作:

SELECT p.pin, ST_AsGeoJSON(ST_Transform(p.geom,4326)) as geojson
  FROM susquehanna_parcels p, units_pa u
  WHERE ST_Intersects(p.geom, u.the_geom)
    AND u.unit_name='Traver E North 07-081'

我没有得到任何结果,因为测量系统已关闭。您会看到我正在尝试将小数度数化(在其他查询中也可以使用),但是由于数据没有任何交集,因此没有结果。

如何将p.geom转换为英尺,或者将u.the_geom转换为米,以便ST_Intersects可以正常工作?

1 个答案:

答案 0 :(得分:0)

如果parcels以米为单位,而units以英尺为单位,则只要测量单位取决于SRID,它们就不在同一SRID中。如果要检查两个几何是否相交,则应确保两个几何都在同一SRID中。

SELECT p.pin, ST_AsGeoJSON(ST_Transform(p.geom,4326)) as geojson
  FROM susquehanna_parcels p, units_pa u
  WHERE ST_Intersects(ST_Transform(p.geom, 4326), ST_Transform(u.the_geom, 4326))
    AND u.unit_name='Traver E North 07-081'

我在这里使用EPSG 4326是因为您以前使用过EPSG 4326,但是只要ST_Intersects内的两个几何图形都相同,其他任何方法都应该没问题