我使用 turfjs 执行 turfjs 的相交函数时出错
绘制的图层是“多边形”,而我希望它在“多多边形”图层中相交。
这是我的代码片段:
$.getJSON("FloodHazard_CRB_100Year.json", function(baha) {
//addDataToMap(data, map);
console.log(json);
console.log(baha);
//check_intersect(baha,json);
f1 = baha.features;
f2 = json.features;
var conflictlist;
for (var i = 0; i < f1.length; i++) {
var parcel1 = f1[i];
for (var j = 0; j <f2.length; j++) {
var parcel2 = f2[j];
//console.log("Processing",i,j);
var conflict = turf.intersect(parcel1, parcel2);
if (conflict != null) {
conflictlist = conflict;
}
}
}
var intersect_style = {
fillColor: "#ff0000",
color: "#000",
opacity: 1,
weight:0.5,
fillOpacity: 0.8
};
L.geoJson(conflictlist,{
style: intersect_style
}).addTo(map);
console.log(conflictlist);
//check_intersect(json);
});
最佳答案
首先请注意,Turf 需要完整的 GeoJSON Feature 对象作为参数,而不仅仅是它们的几何
。
那么如果我的理解是正确的,您的第二个循环是一种解决方法,只需将多边形传递给turf.intersect
,而不是多多边形?
在这种情况下,您需要首先将 MutiPolygon 正确转换为每个具有多边形几何体的要素集合或数组。然后您可以循环它们以执行交叉操作。
关于javascript - 使用 turfjs 在多边形和多重多边形之间相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38690420/