Die Suche nach einer bestimmten Ebene in einer Broschüre LayerGroup, wo die Ebenen Polygone
Ich versuche, zu definieren, eine Reihe von Broschüre Polygone wie diese :
var poly = new L.Polygon([
[10.1840229, 36.8906981],
[10.1840393, 36.8906669],
[10.1840989, 36.8906868],
[10.1840826, 36.890718],
[10.1840229, 36.8906981]
], {
'id': 'someId'
});
Dann bin ich die Gruppierung die Polygone in einer GroupLayer etwa so :
var group = new L.LayerGroup([poly1, poly2, ..., polyn]);
group.addTo(map);
Finde ich die Polygone, die von Id-group.getLayer() ?
Oder muss ich das definieren der Layer/Polygone anders zu sein in der Lage, dies zu tun ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Merkblatt weist Sie eigene, einzigartige ID für jede Schicht:
Den
getLayer
Methode derL.LayerGroup
,L.FeatureGroup
undL.GeoJSON
diese ID ' s als parameter:Könnte man auch einfach ordnen Sie Ihre eigenen ID ' s:
Und dann Holen Sie so:
Können Sie einfach werfen Sie in eine Funktion, und fügen Sie es in
L.LayerGroup
:EDIT: nicht vor Ort die ID in Ihrem Beispiel, bis die eingerückt Bearbeiten. Zudem können Sie es als eine option, so wie in deinem Beispiel, und erstellen Sie eine benutzerdefinierte get-Funktion zum abrufen der Schicht:
Wenn Sie jemals brauchen werden, um den Typ einer Ebene, so können Sie sich mit instanceof:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/instanceof
Aber denken Sie daran, wenn Sie finden, sich selbst machen gemeinsame Auswahl sollte idealerweise setzen Sie diese Funktionen in separate layer/featuregroups.
Den
getLayer()
- Methode der Layer-Gruppe erwartet eine sehr spezifische ID: die eine, die automatisch zugewiesen werden, durch die Broschüre, wenn "Stempeln" eine Ebene (z.B. mitmyId = L.stamp(myLayer)
).Daher würden Sie nicht in der Lage, verwenden Sie vordefinierte ID.
Wenn Sie die Arbeit mit den ID ' s definiert, die dynamisch (D. H. nicht im Voraus bekannt ist), könnte man leicht zeichnen Sie diese und verwenden Sie zum abrufen Ihrer Schichten (Polygone).
for (i=0; i<group.getLayers().length; i++) { if(group.getLayers()[i].options.id == 'mySpecificId' ) { console.log(group.getLayers()[i]) // the layer that I'm looking for }
Aber ich Frage mich immer noch, ob dies eine gültige Ebene.