Mehr

So lassen Sie zu, dass sich die Ereignisse der Broschürenebene auf die darunter liegende Ebene ausbreiten

So lassen Sie zu, dass sich die Ereignisse der Broschürenebene auf die darunter liegende Ebene ausbreiten


Ich arbeite an einer Broschürenkarte mit drei Ebenen: einer Basiskachelebene, einer GeoJson-Ebene und einer Beschriftungskachelebene. Für die Anzeige möchte ich, dass der Label-Layer oben ist, aber für die Interaktion möchte ich Klickereignisse auf der Karte auf den GeoJson-Layer übertragen lassen, um Popups anzuzeigen.

Hier ist eine Adaption des Leaflet-Geojson-Beispiels, das mein Problem veranschaulicht:

http://jsfiddle.net/3h6yytg3/

Gibt es eine Möglichkeit, die GeoJson-Popups mit einem ähnlichen Setup anzuzeigen?


Nur ein kleiner CSS-Workaround wird die Arbeit für Sie erledigen. Sie können das Ergebnis in der folgenden Geige sehen: http://jsfiddle.net/GFarkas/kkwgc1nh/

Ich habe alle Bilder unverantwortlich für Zeigerereignisse gemacht, damit die Klicks durch sie fallen und die Popup-Inhalte des GeoJSON-Layers aktiviert werden. Der CSS-Code lautet:

img.leaflet-tile{ Zeiger-Ereignisse: keine; }

Ursprünglicher Kredit: https://stackoverflow.com/questions/1401658/html-overlay-which-allows-clicks-to-fall-through-to-elements-behind-it

Sie können die Browserversionsbeschränkungen auch hier einsehen: http://caniuse.com/#feat=pointer-events.


Eine andere und vielleicht bessere Möglichkeit, den Code des Prospekts direkt zu verwenden, besteht darin, das interaktive Flag zu verwenden.

L.geoJson(gisData, { pane: 'apane', onEachFeature: someFunction, interactive: false }).addTo(something);