Javascript 传单-使用传单Geoman插件选择多个geoJSON多边形特征

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,它使用要素的东北角和西南角创建边界框,而不仅仅是要素本身的几何体 有没有一种方法可

我正在创建一个应用程序,它需要从geoJSON文件中选择多个多边形特征并突出显示它们

我已经通过使用传单Geoman插件和附加listener map.on('pm:create',并使用绘制形状的latLngBounds,使用相交从文件中进行选择,成功地实现了这一点

但是,因为我也使用geoJSON要素中的latLngBounds,所以它选择的要素超出了绘制图形的范围。我知道这是因为使用latLngBounds,它使用要素的东北角和西南角创建边界框,而不仅仅是要素本身的几何体

有没有一种方法可以使用pm:create插件做出正确的选择,或者有没有更好的方法

下面是我正在使用的代码片段


您可以使用功能强大的库:


您可以使用功能强大的库:

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();
    }
});