我一直在尝试使用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)
}
}
})
}
需要通过框选功能选择多个多边形的功能