Я пытался выбрать несколько полигонов, используя поле выбора. Я изменил масштабирование коробки для этой цели и включил 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