繁体   English   中英

POSTGIS:错误:对混合SRID几何进行操作。 尝试查找具有两个不同的SRIDS /表的重叠几何

[英]POSTGIS: ERROR: Operation on mixed SRID geometries. Trying to find overlapping geoms with two different SRIDS/tables

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);

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

TABLE_A
文字表帮助
几何几何(SRID = 3577)

TABLE_B
文字表格出价
几何几何(SRID = 4326)

我尝试使用ST_TRANSFORM(geom,3577)转换几何,但仍然收到相同的错误“错误:对混合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混淆TABLE_B as a ,这可能解释了您尝试使用ST_Transform失败的原因,因为它没有转换预期的a.geom列。 此外,没有这样的PostGIS 9.1版本,所以我猜您有2.x。 如果使用typmods进行设置(例如geometry(Polygon, 4326) ),则它们不能具有混合SRID。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM