我使用执行turfjs
交叉功能的turfjs运行错误绘制的图层是" Polygon"虽然我希望它在" MultiPolygon"层
这是我的代码片段:
$.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);
});
答案 0 :(得分:1)
首先请注意,Turf需要完整的GeoJSON 功能对象作为参数,而不仅仅是geometry
。
然后,如果我的理解是正确的,那么您的第二个循环是一个解决方法,只需要将多边形传递给turf.intersect
,而不是MultiPolygons?
在这种情况下,首先需要将MutiPolygon正确转换为具有多边形几何的要素集合或数组。然后你可以循环它们来执行你的交集。