【问题标题】:How to check leaflet map has any polygon?如何检查传单地图是否有多边形?
【发布时间】:2020-06-14 18:19:17
【问题描述】:

我正在使用可以包含多边形的传单地图。 我想检查地图是否有任何多边形,如果有,我想找到那个多边形的坐标?

【问题讨论】:

    标签: angular typescript leaflet leaflet-draw


    【解决方案1】:
    map.eachLayer(function(layer){
        if(layer instanceof L.Polygon && !(layer instanceof L.Rectangle) ){
            console.log(layer.getLatLngs());
        }
    });
    

    【讨论】:

    • 感谢它的工作。你能再告诉我一件事吗?我也可以在地图上绘制多边形。我已经通过 clearLayers() 函数删除了它,但它仍然显示在地图层中。我怎样才能从地图中删除它?
    • 能否请您添加将多边形添加到地图的代码以及如何调用 clearLayers。因为 clearLayers 不能在 map 上调用,所以你使用的是 layergroup。
    • // 初始化 FeatureGroup 以存储可编辑层 this.editableLayers = new L.FeatureGroup(); this.map.addLayer(this.editableLayers); ///在绘制时添加图层 this.map.on('draw:created', function(e) { var type = e.layerType, layer = e.layer; if (type === 'marker') { layer. bindPopup('A popup!'); } layer.on("click", function(e) { console.log(" Points: " + e.target.getLatLngs()); }); that.editableLayers.addLayer(层); }); ///删除函数 public RemoveDrawPolygon(){ this.editableLayers.clearLayers(); }
    • 它对我有用......我认为这是因为传单绘制已经将图层添加到地图/组中,然后您将其再次添加到另一个组中。当你删除它时,你是从 editableLayers 组中删除它,而不是从 leaflet-draw 组中删除
    猜你喜欢
    • 2011-06-17
    • 1970-01-01
    • 2014-11-12
    • 2014-01-24
    • 2012-01-29
    • 1970-01-01
    • 2013-07-20
    • 2011-08-18
    • 2016-03-26
    相关资源
    最近更新 更多