2015-08-11 9 views
6

ich eine Polygon-Layer in meinem Faltblatt Karte haben (eine GeoJSON Schicht):Prospekt divIcons hinter Polygon gesetzt verfügt

var PolygonLayer = L.geoJson(json, { 
style: polygon_style}); 

Mit dieser Schicht habe ich DivIcon Etiketten auf grundlegenden Attribute aktiviert basiert:

var label = L.marker(polygonCenter, { 
      icon: L.divIcon({ 
       className: 'label', 
       html: '<div>' + label + '</div>' 
      }), 
     }).addTo(map); 

Ich habe auch einige Highlight-Styling für Mouseover und Klick-Events.
Wenn möglich, würde ich gerne diese divIcon Etiketten hinter die Polygone haben, so dass mouseover und Zeigefunktionen nicht gesperrt werden.
Ich habe versucht, die zIndexOffset der Markierung und die Größe der DivIcon auf [0,0], aber nichts hat funktioniert. Gibt es eine Möglichkeit, die Polygone vor den Etiketten zu setzen?

Antwort

0

In der Broschüre wird der Z-Index der Fenster automatisch gesetzt.

Ich glaube es ist:

  • Popup Scheibe
  • Markierungsscheibe
  • Overlay Scheibe
  • Fliesenscheibe

von oben nach unten

die Overlay-Scheibe ist wo ist dein Polygon-Layer? Wenn Sie den Z-Index des Markierungsfensters so anpassen, dass er sich hinter dem Überlagerungsfenster befindet, sollten Ihre Markierungen hinter Ihren Polygonen angezeigt werden.

siehe dieses Codepen für ein Beispiel.

http://codepen.io/anon/pen/MKvZZa

css:

#map{width:400px;height:400px;} 
.label{background-color:white;} 
.leaflet-marker-pane{ 
    z-index:2 
} 

javascript:

var map = L.map('map').setView([51.505, -0.09], 13); 
var accessToken='insert your mapbox access token here'; 
var mapboxTiles = L.tileLayer('https://api.mapbox.com/v4/mapbox.streets/{z}/{x}/{y}.png?access_token=' + accessToken, { 
    attribution: '<a href="http://www.mapbox.com/about/maps/" target="_blank">Terms &amp; Feedback</a>' 
}); 

mapboxTiles.addTo(map); 
var circle = L.circle([51.508, -0.11], 500, { 
    color: 'red', 
    fillColor: '#f03', 
    fillOpacity: 0.5 
}).addTo(map) 

var myIcon = L.divIcon({ 
    iconSize: [70, 20], 
    iconAnchor: [35, 10], 
    className: 'label', 
    html: '<div>' + 'test label' + '</div>' 
}) 

L.marker([51.508, -0.11], { 
    icon: myIcon 
}).addTo(map); 
+0

Jede GeoJSON Schicht I auf der Karte hinzufügen können nachbestellt werden. Kann ich der Geojons-Ebene irgendwie Punkte hinzufügen? Auf der Suche nach einer Antwort auf diese (genauere) Frage: http://stackoverflow.com/q/34791059/482425 – Hoopes

+0

Ich kann Ihre andere Frage separat betrachten. Brauchen Sie eine Klärung meiner Antwort auf diese Frage? Ich bin mir nicht sicher, ob es in Ihrem Kommentar um diese Frage oder die von Ihnen verknüpfte Frage geht. – Ryan

+0

Nein, Sir - Sie scheinen das beantwortet zu haben, wenn Sie auch eine Antwort auf diese andere haben, wäre ich super verpflichtet. – Hoopes