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

对象在100 m距离,错误:混合SRID几何操作

杨星纬
2023-03-14

我执行以下查询:

SELECT * FROM "houses" WHERE (ST_Distance(coordinates, 'POINT(-0.374930 39.478400)'::geometry) < 100)

寻找距离:39.478400,-0.374930米左右的房屋

我收到以下错误:

PG::InternalError: ERROR: Operation on mixed SRID geometries

这里出了什么问题?

<code>“Coordinates”的类型为:geometry“coordinats”,限制为:{:srid=

共有1个答案

巫健柏
2023-03-14

几何文字'POINT(-0.374930 39.478400)'::几何没有SRID,而houses.coordinates中的几何具有4326的SRID。您需要传递具有相同SRID的几何,即使用ST_GeomFromText:

...
WHERE ST_Distance(coordinates, ST_GeomFromText('POINT(-0.374930 39.478400)', 4326)) < 100

但请记住,距离是以SRID为单位返回的,SRID 4326的单位是度,而不是米。要检索以米为单位的距离,可以使用ST_DistanceSphere。

 类似资料:
  • POSTGIS_VERSION=2.1; 我有两个表,有两个不同的 SRID。我的目标是显示哪些几何TABLE_B与TABLE_A的区域相交。 我的表结构(截断)如下 表_A 文本表辅助 几何几何(SRID=3577) TABLE_B 文本表格投标 几何几何体(SRID=4326) 我已经尝试使用ST_TRANSFORM(geom,3577)转换几何图形,但仍然收到相同的错误“error:Oper

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

  • 关于混合对象 可以混合对象以创建形状,并在两个对象之间平均分布形状。也可以在两个开放路径之间进行混合,在对象之间创建平滑的过渡;或组合颜色和对象的混合,在特定对象形状中创建颜色过渡。 注:混合对象与将混合模式或透明度应用于对象不同。有关混合模式和透明度的信息,请参阅第 158 页的 “关于混合模式 ”。在对象之间创建了混合之后,就会将混合对象作为一个对象看待。如果您移动了其中一个原始对象,或编辑了

  • 关于混合对象 可以混合对象以创建形状,并在两个对象之间平均分布形状。也可以在两个开放路径之间进行混合,在对象之间创建平滑的过渡;或组合颜色和对象的混合,在特定对象形状中创建颜色过渡。 注意:混合对象与将混合模式或透明度应用于对象不同。有关混合模式和透明度的信息,请参阅关于混合模式。 在对象之间创建了混合之后,就会将混合对象作为一个对象看待。如果您移动了其中一个原始对象,或编辑了原始对象的锚点,则混

  • 问题内容: 我实现了一个脚本字段,该字段返回的距离如下所示:Elasticsearch结果中的返回距离? Ruby: 但是返回的距离不正确。如果该点很近,则距离会更正确,但是随着距离的增加,它会变得越来越不正确。 似乎无法弄清楚我在做什么。 问题答案: distanceInKm()将距离计算为平面上的点,该速度很快但不太准确。尝试改用arcDistanceInKm()。

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