POSTGIS:错误:对混合SRID几何图形的操作.试图找到具有两个不同SRIDS/表的重叠地理



POSTGIS_VERSION=2.1;

我有两张桌子,上面有两个不同的SRID。我的目标是显示TABLE_B中的哪些地理图形与TABLE_a中的区域相交。

SELECT tablebname, a.geom FROM TABLE_B as a INNER JOIN (SELECT geom FROM TABLE_A WHERE tableAID = '00001') as b ON ST_Intersects(a.geom, b.geom);

我的表格结构(截断)如下

表_A
text tableAid
几何几何(SRID=3577)

表格_B
文本表格投标
几何几何(SRID=4326)

我尝试过用ST_TRANSFORM(geom,3577)转换geom,但我仍然得到相同的错误"错误:在混合SRID几何体上操作。"

使用以下命令
select distinct(ST_SRID(geom)) as srid, count(*) from tableA group by srid;

我得到以下

srid | count
3566 | 2196
     |   18

我把最后18名改成3577名的尝试是徒劳的。每次我更新SRID时,它都会说它成功了或没有找到任何SRID<>3577.

任何帮助都会得到通知。我可以按要求提供更多详细信息。谢谢

如果不使用子查询、更正表别名并使用转换,这行得通吗?

SELECT b.*, a.*
FROM table_b AS b
INNER JOIN table_a AS a ON
  tableaid = '00001' AND ST_Intersects(ST_Transform(a.geom, 4326), b.geom);

还要注意,在原始查询中,您混淆了TABLE_B as a,这可能解释了使用ST_Transform的尝试失败的原因,因为它没有转换预期的a.geom列。此外,PostGIS 9.1没有这样的版本,所以我猜你有2.x。如果使用typmods(例如geometry(Polygon, 4326))进行设置,这些不能有混合的SRID。

最新更新