Ich habe einen GeoJSON, die ich den featuregroup wie dies in meiner MapBox Karte hinzugefügt:Zugang GeoJSON Eigenschaft einer Schicht in einem featuregroup in 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);
Jetzt mag ich die ID-Eigenschaft jeder Schicht zuzugreifen während ich die Feature-Gruppe durchlaufe, damit ich sie als Argument an eine andere Funktion übergeben kann. Im Fall eines featurelayer, kann ich es einfach so etwas wie dies mit Zugang:
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);
});
});
Aber ich will darauf zugreifen können, während in einem featuregroup Looping und auch mag ich in der Lage sein, es zu tun, ohne ein "Klick" oder ein solches Ereignis. Zum Beispiel, im Idealfall würde ich so etwas wie folgt verwenden:
featureGroup.eachLayer(function (layer) {
var id = layer.feature.properties.id;
testfunction(id);
});
Ich habe nicht in der Lage gewesen, um herauszufinden, wie das zu tun. Ich habe versucht, online zu suchen, aber weil ich neu bin, habe ich wahrscheinlich nicht die richtigen Keywords in meiner Suche verwendet.
Kannst du eine jsfiddle oder eine andere Beispiel-Demo-Seite veröffentlichen, wenn wir das in Aktion sehen können, weil deine vorgeschlagene Schleife gut funktionieren sollte. – snkashis
Dies ist ein [jsfiddle] (https://jsfiddle.net/r8rd1x3p/1/) von dem, was ich versuche zu tun. Aus irgendeinem Grund wird die Karte nicht angezeigt. Aber wenn ich das versuche, sagt es mir einfach, dass layer.feature nicht definiert ist. – Raj