2017-03-12 22 views
0

私はMapbox Street JSレイヤーを使ってMapbox GL JSを使用しています。白い枠線と透明な塗りつぶしのポリゴンレイヤーを追加しましたが、ポリゴンレイヤーの下にあるベースマップラベルを読みにくいことがわかりました。ラベルは白の境界線で覆われている方法を参照してください:マップボックスGL JS:レイヤーの上にマップラベルを表示しますか?

enter image description here

は、私はラベルがポリゴン層の上にある、あるいは少なくともそれによって隠されていないことを確認することができます方法はありますか?

私のコードは次のようになります。

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' 
     } 
    }); 

答えて

1

this Mapbox exampleを見てくださいとmap.addLayer(layer, [before])the second argumentを使用しています。このレイヤーbeforeが存在する場合、新しいレイヤーはそのレイヤーの前/下に配置されます。私は引数の命名はここで少し混乱していると思います。

最下位ラベルレイヤーの名前は、スタイルによって異なります。ほとんどの場合、あなたはhousenum-labelを探しています。 Mapbox github issuesには、このプロセスを簡単にする方法、たとえばプレースホルダレイヤを導入する方法もあります。

+0

ありがとうございます - 私は例を見ていましたが、あなたが言うように(水の引数がどこから来るのか分かりませんが)例では分かりませんでした。私の例では、一つの層、constituency層しかありません。どういうわけかラベルレイヤに名前を付ける必要がありますか? addLayerに最後の引数として '、 'housenum-label''を追加しようとしましたが、それは助けにはなりませんでした。 – Richard

+0

ああ、馬鹿です - 'addLayer'の最後の引数として' housenum-label''を追加すると実際に問題が解決しました!ありがとう。 – Richard

+0

クリックイベントのために 'housenum-label'を見えないようにする方法を知っているとは思いませんか?これで、その下のレイヤーのクリックイベントに干渉しています。 – Richard

関連する問題