2017-03-12 2 views
0

Ich verwende Mapbox GL JS mit einer Mapbox Streets-Basisschicht. Ich habe eine Polygon-Ebene mit weißen Rändern und einer transparenten Füllung hinzugefügt, aber es fällt mir schwer, die Grundkarten-Beschriftungen unterhalb der Polygon-Ebene zu lesen. Sehen Sie, wie die Etiketten durch die weißen Ränder abgedeckt:Mapbox GL JS: Kartenbeschriftungen über der Ebene anzeigen?

enter image description here

Gibt es irgendeine Art und Weise kann ich die Etiketten auf der Oberseite der Polygon-Layer stellen Sie sicher, oder zumindest nicht durch sie verdeckt?

Mein Code sieht wie folgt aus:

var map = new mapboxgl.Map({ 
    container: 'map', 
    style: 'mapbox://styles/mapbox/streets-v9', 
    center: [-2.839, 54.579], 
    zoom: 4 
}); 
map.on('load', function() { 
    map.addSource('constituencies', { 
     'type': 'vector', 
     'url': 'mapbox://pcsu.xxx' 
    }); 
    var constituencyLayer = map.addLayer({ 
     'id': 'constituencies', 
     'source': 'constituencies', 
     'source-layer': 'constituencies', 
     'type': 'fill', 
     'paint': { 
      'fill-color': 'rgba(162,181,205,0.6)', 
      'fill-outline-color': 'white' 
     }, 
     'layout': { 
      'visibility': 'visible' 
     } 
    }); 

Antwort

1

einen Blick auf this Mapbox example haben und the second argument von map.addLayer(layer, [before]) verwenden. Wenn diese Ebene before vorhanden ist, wird die neue Ebene davor/darunter platziert. Ich denke, die Argumentation ist hier etwas verwirrend.

Der Name der untersten Etikettenebene hängt vom Stil ab. Die meiste Zeit suchen Sie nach housenum-label. Es gibt auch eine Diskussion in der Mapbox github issues, wie dieser Prozess erleichtert werden kann, z. B. indem Platzhalterschichten eingeführt werden.

+0

Danke - ja ich hatte das Beispiel gesehen, war aber verwirrt, wie du sagst (ich verstehe nicht, woher das 'Wasser'-Argument im Beispiel kommt). In meinem Beispiel gibt es nur eine Schicht, die Wahlkreisschicht. Muss ich die Etikettenebene irgendwie benennen? Ich habe versucht, '' housenum-label'' als letztes Argument für 'addLayer' hinzuzufügen, aber es hat nicht geholfen. – Richard

+0

Ah nein, ich bin ein Idiot - das Hinzufügen von ', 'Hausnum-Label' als letztes Argument zu' addLayer' hat das Problem gelöst! Vielen Dank. – Richard

+0

Ich glaube nicht, dass Sie wissen, wie man 'housenum-label' für Klick-Events unsichtbar macht? Es stört jetzt Klickereignisse auf der Ebene darunter. – Richard