我使用turfjs执行塔楼的交叉功能,运行了一个错误

绘制层是“多边形”,而我希望它在"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);
});发布于 2016-08-01 04:09:43
首先要注意的是,Turf需要完整的GeoJSON 对象作为参数,而不仅仅是它们的geometry。
那么,如果我的理解是正确的,您的第二个循环是一个解决方案,只需要将多边形传递给turf.intersect,而不是MultiPolygons?
在这种情况下,您首先需要正确地将您的MutiPolygon转换为具有多边形几何的特性集合或数组。然后你可以在它们上循环来执行你的交集。
https://stackoverflow.com/questions/38690420
复制相似问题