当前位置: 首页 > 知识库问答 >
问题:

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

陶富
2023-03-14

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
文本表辅助
几何几何(SRID=3577)

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

我已经尝试使用ST_TRANSFORM(geom,3577)转换几何图形,但仍然收到相同的错误“error:Operation on mixed SRID geometry”

使用以下命令< br > < code > select distinct(ST _ SRID(geom))as srid,count(*)from table a group by srid;

我得到以下内容

srid | count
3566 | 2196
     |   18

我试图把最后一个18改成3577是徒劳的。每次我更新SRID时,它都说成功了或者没有找到任何SRID

任何帮助都将得到赞赏。我可以在必填中提供更多详细信息。谢谢。

共有1个答案

戚翼
2023-03-14

在没有子查询的情况下,更正表别名并使用转换,这是否有效?

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混淆为,这可能解释了您尝试ST_Transform失败的原因,因为它没有转换预期的a.geom列。此外,PostGIS 9.1没有这样的版本,所以我猜您有2. x。如果使用类型模组(例如,几何(Polygon,4326))进行设置,这些不能具有混合SRID。

 类似资料:
  • 我执行以下查询: 寻找距离:39.478400,-0.374930米左右的房屋 我收到以下错误: 这里出了什么问题? <code>“Coordinates”的类型为:geometry“coordinats”,限制为:{:srid=

  • 我在 PostGIS 中有多边形几何几何,我想用一个点“POINT(77.2135569,28.6248447)”来检查它是否相交。 从 public.tablename 中选择 ST_Intersects('POINT(28.6248447 77.2135569)'::geometry, geom) 这里,geom是数据类型为Geometry的列名。 获取以下错误: 错误:ST_Intersec

  • 问题内容: 因此,我向空间表中添加了几何列,并使用了某些msdn引用,最终将SRID指定为0,如下所示: 但是,我认为这是一个错误,但是在必须更新列之前,0实际是默认值= 4326吗?只要我在查询上将SRID指定为0,该查询就可以使用,但是与我所拥有的地理位置字段相比,我得到的结果很奇怪… sys.spatial_reference_systems中不存在SRID 0,并且我无法搜集有关的任何信息

  • 因此,我将几何列添加到空间表中,并使用一些msdn参考资料,最终将SRID指定为0,如下所示: 但是,我认为这是一个错误,但是在必须更新列之前,0实际上是默认值= 4326吗?只要我在查询中将SRID指定为0,查询就可以工作,但是与我拥有的地理字段相比,我得到了奇怪的结果...SRID 0在sys.spatial_reference_systems中不存在,我无法挖掘出有关它的任何信息。任何帮助将

  • 我正在尝试在一系列大部分同心等距多多边形上使用 PostGIS 函数...... . . .使用清晰的几何类型和 SRID 定义(虽然它们可能不完全有效,但仍然足够有效,可以在 QGIS 中呈现,如上所示): 不幸的是,当我使用函数创建新表时,它同时剥离了SRID和几何类型: 。。。并且< code>ST_SetSRID()无法通过创建新表来解决它: …或通过嵌套函数: . . .甚至使用大家最喜

  • 或者使用SRID 26986······