[英]MySQL: Binary geometry function st_contains given two geometries of different srids: 4326 and 0
[英]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.