Ich habe eine Markierungsebene, zwei Vektorebenen und zwei Rasterebenen. Die Markierungsebene wird von den beiden Rasterebenen abgedeckt.
Gibt es eine Möglichkeit, die Markierungsebene immer nach oben zu verschieben?
Bearbeitet: Die Reihenfolge der Z-Indizes funktioniert in der Vektorebene gut, aber wenn ich der Karte eine weitere WMS-Rasterebene mit einem niedrigeren Z-Index hinzufüge, bedeckt die Rasterebene weiterhin die Vektorebene.
Bearbeitet: Kann jemand auf den Unterschied der Renderreihenfolge in Bezug auf "LayerIndex" und "Z-Index" einer Ebene hinweisen? Ich denke, der Ebenenindex befasst sich mit der Überlagerungsreihenfolge und der Zindex mit der Merkmalsreihenfolge in einer Vektorebene. Stimmt das?
openlayers-2
markers
Gesehen
quelle
quelle
Antworten:
Das Festlegen des Z-Index für jede Ebene sollte helfen: http://www.openlayers.org/dev/examples/ordering.html
BEARBEITET
Das Beispiel, auf das ich ursprünglich verlinkt habe, ist nicht sehr hilfreich. Sie möchten den Layerindex / Z-Index der Layer festlegen, nicht die Maker innerhalb der Layer (wie im Bestellbeispiel gezeigt). Ich habe ein Beispiel (basierend auf diesem Beispiel ) zusammengestellt, das die benutzerdefinierte Ebenenindizierung zeigt. Beachten Sie, dass die Markierungsebene beim Aktivieren des Kanada-Rasters oben bleibt.
Hier ist der relevante Code:
Die Dokumentation zum setLayerIndex-Code finden Sie hier: http://dev.openlayers.org/releases/OpenLayers-2.11/doc/apidocs/files/OpenLayers/Map-js.html#OpenLayers.Map.setLayerIndex
quelle
Sie können es tun, wenn Sie möchten, dass Ihre Vektorebene immer mit einfachem Code oben ist ...
Möge es einfach sein!
quelle
Keines der oben genannten Probleme hat bei mir funktioniert, aber wenn ich eine neue Ebene hinzufüge, ist dies ein Genuss, um meine Marker-Ebene an der Spitze zu halten:
myMarkerLayer.setZIndex (1001);
quelle
Sie können sich vorstellen, der Karte einen Layer hinzuzufügen, indem Sie ein neues Blatt über die vorhandenen legen. Wenn das neue Blatt nicht transparent ist, werden alle darunter liegenden ausgeblendet.
Leider hat OpenLayers keine insertLayerAt- Methode, sodass Sie Ihre Ebenen nach dem Einfügen neu anordnen müssen. Die Lösung besteht darin, die Ebene hinzuzufügen und sie dann auf die gewünschte Tiefe über den Stapel nach unten zu verschieben oder diejenige, die Sie oben haben möchten, wieder nach oben zu verschieben.
Das können Sie wie folgt machen:
quelle