У меня есть GeoJSON, которые я добавил к featuregroup в моей карте MapBox так:доступа GeoJSON свойство слоя в featuregroup в MapBox
var featureCollection = {
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"properties": {
"id": 1
},
"geometry": {
"type": "Point",
"coordinates": [0, 0]
}
},{
"type": "Feature",
"properties": {
"id": 2
},
"geometry": {
"type": "Point",
"coordinates": [30, 30]
}
},{
"type": "Feature",
"properties": {
"id": 3
},
"geometry": {
"type": "Point",
"coordinates": [-30, -30]
}
}]
};
var geojson = L.geoJson(featureCollection);
var featureGroup = L.featureGroup().addTo(map);
featureGroup.addLayer(geojson);
Теперь я хочу, чтобы получить доступ к свойству идентификатора каждого слоя в то время как цикл через featuregroup, так что я могу передать его как аргумент другой функции. В случае featurelayer, я могу легко получить доступ к нему, используя что-то вроде этого:
var featureLayer = L.mapbox.featureLayer(featureCollection).addTo(map);
featureLayer.eachLayer(function (layer) {
layer.on('click', function (e) {
console.log('Clicked feature ID: ' + e.target.feature.properties.id);
});
});
Но я хочу, чтобы иметь возможность доступа к нему в то время как цикл внутри featuregroup, а также я хочу быть в состоянии сделать это без «клик» или любое подобное событие. Например, в идеале я бы использовал примерно следующее:
featureGroup.eachLayer(function (layer) {
var id = layer.feature.properties.id;
testfunction(id);
});
Я не смог понять, как это сделать. Я пробовал искать в Интернете, но поскольку я новичок в этом, я, вероятно, не использовал правильные ключевые слова в моем поиске.
Можете ли вы опубликовать jsfiddle или другой пример демонстрационного сайта, когда мы увидим это в действии, потому что ваш предложенный цикл должен работать нормально. – snkashis
Это [jsfiddle] (https://jsfiddle.net/r8rd1x3p/1/) того, что я пытаюсь сделать. По какой-то причине карта не отображается. Но в любом случае, когда я пытаюсь это сделать, он просто сообщает мне, что layer.feature не определен. – Raj