リーフレットのマップに追加された新しいレイヤーを強制的にベースマップの最初にするにはどうすればよいですか?
非常に基本的な GIS 機能であるレイヤーの順序を簡単に変更する方法が見つかりませんでした。何か不足していますか?
リーフレット マップは、ビューの順序が z-index を使用して制御される「ペイン」のコレクションで構成されます。各ペインにはレイヤーのコレクションが含まれています。デフォルトのペイン表示順序は、タイル -> シャドウ -> オーバーレイ -> マーカー -> ポップアップです。Etienne が説明したように、bringToFront()
またはを呼び出して、オーバーレイ ペイン内のパスの表示順序を制御できますbringToBack()
。 L.FeatureGroup
にもこれらのメソッドがあるため、必要に応じてオーバーレイのグループの順序を一度に変更できます。
ペイン全体の表示順序を変更したい場合は、CSS を使用してペインの z-index を変更するだけです。
新しいマップ ペインを追加したい場合は、まだ方法がわかりません。
Leaflet API によると、任意のレイヤーでbringToFront
またはbringToBack
を使用して、そのレイヤーをすべてのパス レイヤーの一番上または一番下に移動できます。
エティエンヌ
もう少し詳細については、Bobby Sudekum が、ペインの z-index の操作を示す素晴らしいデモをまとめました。私はいつもそれを出発点として使用しています。
キーコードは次のとおりです。
var topPane = L.DomUtil.create('div', 'leaflet-top-pane', map.getPanes().mapPane);
var topLayer = L.mapbox.tileLayer('bobbysud.map-3inxc2p4').addTo(map);
topPane.appendChild(topLayer.getContainer());
topLayer.setZIndex(7);