Выбор коробки с помощью листовки путем изменения масштаба окна с пересечением газона - PullRequest
0 голосов
/ 03 мая 2019

Я пытался выбрать несколько полигонов, используя поле выбора. Я изменил масштабирование коробки для этой цели и включил turf.js для функции пересечения. Проблема в том, что если я выбираю определенную область и использую функцию интерсета, она показывает полигоны из другой области. Если я выберу два полигона, он покажет четыре полигона из другой области. Ниже мой код

Пробное постгисное пересечение, границы в листочке пересекаются, газон пересекает все результаты одинаково.

Примечание. Данные геойсона содержат 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)
                 }
          }
     })
}

нужна функция для выбора нескольких полигонов с помощью box-selection

...