1

我使用 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);
        });
4

1 回答 1

1

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

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

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

于 2016-08-01T04:09:43.937 回答