1

我正在努力

set97 <- gIntersection(setbp,d97)

并收到错误消息:

Error in RGEOSBinTopoFunc(spgeom1, spgeom2, byid, id, "rgeos_intersection") : 
  TopologyException: found non-noded intersection between LINESTRING (533036 -314770, 533036 -314770) and LINESTRING (533036 -314780, 533036 -314770) at 533035.88110651996 -314769.97350772272

(setbp 是一个县的一个部门 - 用于人口普查 - d97 是截至 1997 年巴西亚马逊地区的森林砍伐。)当我这样做时

gIsValid(d97)
gIsValid(setbp)
gIntersects(setbp,d97)

这三个问题我都答对了。那么,怎么了?我将尝试宽度为 0 的 gBuffer(它解决了其中一些问题),但我想了解发生了什么。

编辑: gBuffer 没有工作。@mdsumner 建议我逐行执行 gIntersection,但到目前为止(在尝试了 3 种不同的方法之后),它也不起作用(查看评论)。更奇怪的是,TopologyException 是由 gIsValid 未检测到的奇怪几何“条带”引起的,更糟糕​​的是,距离相交多边形有几公里(上面的 setbp,注释中的 setbpi)。我会试试这里显示的函数,虽然它似乎不是一个四舍五入的问题。

4

0 回答 0