【问题标题】:Leaflet Delete feature properties from GoeJson with buttonLeaflet 使用按钮从 GoeJson 中删除功能属性
【发布时间】:2020-11-15 12:09:02
【问题描述】:

我有简单的代码,但不知道如何使它工作。想法是按“删除”按钮将 GeoJson 中每个功能中的“面积”值更改为“0”。下面的代码有效,(但自动,没有按钮),这对我来说很清楚:

function onEachFeature(feature, layer) {

feature.properties.area = 'x'; 

};

但是当我想开始使用按钮更改值时(我将函数放在 OnEachFeature 中),该操作仅适用于 geoJson 文件中的最后一个功能..

function onEachFeature(feature, layer) {


function foo(){

feature.properties.area = 'x'; 

}

document.getElementById('delete').onclick = foo;


};

我的问题是如何使其适用于每个功能(按下按钮 -> 更改区域值)? 我将非常感谢您的回答!

GeoJson 文件的以下链接:

https://api.npoint.io/2ba17bdbb50601803cd0

【问题讨论】:

    标签: onclick leaflet geojson getelementbyid layer


    【解决方案1】:

    您可以使用getLayers 获取所有功能,然后更改其区域属性:

    var geojson = L.geoJSON(data, {
        onEachFeature: onEachFeature
    }).addTo(map);
    
    function deleteArea() {
        var layers = geojson.getLayers();
        for (var i = 0; i < layers.length; i++) {
            layers[i].feature.properties.area = 0;
        }
    }
    
    document.getElementById('delete').onclick = deleteArea;
    

    【讨论】:

    • 很棒的提示!非常感谢
    猜你喜欢
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    • 2021-01-13
    • 2021-10-25
    相关资源
    最近更新 更多