2016-08-01 9 views
1

之間我使用進行交叉的turfjs相交多邊形和組合區使用turfjs

enter image description here

拉制層是「多邊形」,而我希望它在一個「的MultiPolygon」層被交叉函數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); 
     }); 

回答

0

首先注意到草坪需要完整的GeoJSON的功能對象作爲參數,而不僅僅是他們geometry

那麼,如果我的理解是正確的,你的第二環是需要傳遞只多邊形turf.intersect,而不是MultiPolygons一個解決方法嗎?

在這種情況下,您首先需要將您的MutiPolygon正確地轉換爲每個具有多邊形幾何的要素的集合或數組。然後你可以循環他們來執行你的交集。

+0

草皮允許Polygon和MultiPolygon相交嗎? –

+0

我不知道,只是試試吧! :-) – ghybs

+0

我試過了,不起作用。我認爲它不能迭代MultiPolygon。 TSSK –