Javascript 传单-使用传单Geoman插件选择多个geoJSON多边形特征
我正在创建一个应用程序,它需要从geoJSON文件中选择多个多边形特征并突出显示它们 我已经通过使用传单Geoman插件和附加listener map.on('pm:create',并使用绘制形状的latLngBounds,使用相交从文件中进行选择,成功地实现了这一点 但是,因为我也使用geoJSON要素中的latLngBounds,所以它选择的要素超出了绘制图形的范围。我知道这是因为使用latLngBounds,它使用要素的东北角和西南角创建边界框,而不仅仅是要素本身的几何体 有没有一种方法可以使用pm:create插件做出正确的选择,或者有没有更好的方法 下面是我正在使用的代码片段Javascript 传单-使用传单Geoman插件选择多个geoJSON多边形特征,javascript,leaflet,polygon,geojson,leaflet-geoman,Javascript,Leaflet,Polygon,Geojson,Leaflet Geoman,我正在创建一个应用程序,它需要从geoJSON文件中选择多个多边形特征并突出显示它们 我已经通过使用传单Geoman插件和附加listener map.on('pm:create',并使用绘制形状的latLngBounds,使用相交从文件中进行选择,成功地实现了这一点 但是,因为我也使用geoJSON要素中的latLngBounds,所以它选择的要素超出了绘制图形的范围。我知道这是因为使用latLngBounds,它使用要素的东北角和西南角创建边界框,而不仅仅是要素本身的几何体 有没有一种方法可
您可以使用功能强大的库:
您可以使用功能强大的库:
map.on('pm:create',function (e) {
if(e.shape == 'Rectangle' || e.shape == "Polygon"){
geoJsonSelect = e.layer.toGeoJSON();
var layers = map.pm.getGeomanLayers();
layers = layers.filter(x => x !== e.layer);
layers.forEach((layer)=>{
if(turf.booleanContains(geoJsonSelect,layer.toGeoJSON())){
console.log("Contains")
}
});
e.layer.remove();
}
});