通过使用草皮相交修改框缩放来使用传单选择框

时间:2019-05-03 11:46:32

标签: leaflet turfjs

我一直在尝试使用box select选择多个多边形。为此,我已经修改了框缩放,并包含了turf.js用于相交功能。问题是如果我选择一个特定区域并使用插值功能,它将显示来自不同区域的多边形。如果我选择两个多边形,它将显示另一个区域中的四个多边形。下面是我的代码

尝试过Postgis相交,边界在传单中相交,草皮相交所有结果。

注意-geojson数据包含7000个多边形。

 $(function() {
        L.Map.BoxZoom.prototype._onMouseUp = function (e) {
            this._finish();

            if (!this._moved) { return; }

             var nw = this._map.layerPointToLatLng(this._startLayerPoint);
            var se = this._map.layerPointToLatLng(this._map.mouseEventToContainerPoint(e));
            var bounds = new L.LatLngBounds(nw,se);
            getparcels(bounds);
        }
    })

function getparcels(bounds) {
       var geodata = L.rectangle(bounds).toGeoJSON();
       geojsonlayer = L.geoJson(Data, {
          onEachFeature: function (feature, layer) {
              try{
                if(turf.intersect(geodata,feature)){
                   layer.setStyle({
                      fillColor: 'black',
                      fillOpacity: 0.3
                   })
                   map.addLayer(layer)
                 }
                }catch (e) {
                   console.log(e)
                 }
          }
     })
}

需要通过框选功能选择多个多边形的功能

0 个答案:

没有答案