postgresql - 使用带有 postgis 的 ST_Intersection 的错误结果
问题描述
我正在尝试与 postgis 做一个简单的交集,但我得到的结果是错误的。在地图项的开始处缺少约 7 米的线段。
这是我用于交集的 sql 命令:
select ST_Intersection(t2.wkb_geometry,
t1.wkb_geometry), t2.sde_id as s_sde, t2.mtb_id,
ST_Length(ST_Intersection(t1.wkb_geometry,t2.wkb_geometry))
from
public.mountainbike_pavement_temp2 t1 inner join public.mountainbike_strecken_temp2 t2 on
t1.wkb_geometry && t2.wkb_geometry;
结果长度应该是187米左右,但结果长度只有180米左右。我已经尝试了很多,但我找不到任何原因,为什么会发生这种情况,以及如何解决它。
当我在 ArcGis 中进行此交集时,一切都按预期进行。
我用 postgres 9.6.15 和 postgis 2.4 试过这个
并且还与
postgres 12.1 和 postgis 3.0,结果相同。
表格和数据可以在这里找到:
表名:mountainbike_pavement_temp2 public.mountainbike_strecken_temp2
从 mountainbike_pavement_temp2 到 mountainbike_strecken_temp2 的第一个顶点的距离都是 0,用 postgis 中的 ST_Distance 计算(见下面的评论)。所以我会假设,有一个交叉点。
解决方案
推荐阅读
- linker - 何时实际使用 dlopen()?dlopen() 是否意味着动态加载?
- javascript - Python 的 string.encode('UTF-8') 的 Javascript 类似物
- html - 覆盖引导颜色
- javascript - 用变量填充 alpaca 属性
- r - 有什么方法可以先按出生日期排序数据框,然后在 R 中按字母顺序排序?
- python-3.x - 如何在python中的列表中添加新行?
- git - 在 VS Code 中提交 Git 后更新扩展 UI
- angular - 使用带有 NOOP 的 Angular 9 添加 Web 组件构建后,更改检测无法正常工作
- c# - “LinkAssemblies”任务意外失败。xamarinandroidException:错误 XA2006:无法解析引用
- sql - XML Where 子句上的 SQL 查询