使用turf.intersect与特定多边形时,我收到以下错误:“拓扑异常”“在LINESTRING (-0.140733 51.505327,-0.141097 51.505689)和LINESTRING(-0.141136 51.505674,-0.141068 51.5057)之间找到非节点交集”
2 回答
紫衣仙女
TA贡献1839条经验 获得超15个赞
以下是我如何设法使其工作:
var options = {tolerance: 0.0001, highQuality: true};
poly = turf.cleanCoords(turf.simplify(poly, options));
我还检查了扭结,如果多边形返回 true,则将其分开:
var kinks = turf.kinks(poly);
if (kinks.features.length){
polys = turf.unkinkPolygon(poly);
...
冉冉说
TA贡献1877条经验 获得超1个赞
基于这个问题的答案
我发现这个 solotion 也是可行的:
let myWorkingPolygon = turf.buffer(errorThrowingPolygon, 0, {units:"meters"});
缓冲区计算给定特征周围的缓冲区(但此处的缓冲区大小为 0),在此处查找详细信息:https://turfjs.org/docs/#buffer
添加回答
举报
0/150
提交
取消