使用turfjs

时间:2016-08-01 03:01:29

标签: javascript leaflet turfjs

我使用执行turfjs

交叉功能的turfjs运行错误

enter image description here

绘制的图层是" 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);
        });

1 个答案:

答案 0 :(得分:1)

首先请注意,Turf需要完整的GeoJSON 功能对象作为参数,而不仅仅是geometry

然后,如果我的理解是正确的,那么您的第二个循环是一个解决方法,只需要将多边形传递给turf.intersect,而不是MultiPolygons?

在这种情况下,首先需要将MutiPolygon正确转换为具有多边形几何的要素集合或数组。然后你可以循环它们来执行你的交集。