20

リーフレットのマップに追加された新しいレイヤーを強制的にベースマップの最初にするにはどうすればよいですか?

非常に基本的な GIS 機能であるレイヤーの順序を簡単に変更する方法が見つかりませんでした。何か不足していますか?

4

5 に答える 5

13

リーフレット マップは、ビューの順序が z-index を使用して制御される「ペイン」のコレクションで構成されます。各ペインにはレイヤーのコレクションが含まれています。デフォルトのペイン表示順序は、タイル -> シャドウ -> オーバーレイ -> マーカー -> ポップアップです。Etienne が説明したように、bringToFront()またはを呼び出して、オーバーレイ ペイン内のパスの表示順序を制御できますbringToBack()L.FeatureGroupにもこれらのメソッドがあるため、必要に応じてオーバーレイのグループの順序を一度に変更できます。

ペイン全体の表示順序を変更したい場合は、CSS を使用してペインの z-index を変更するだけです。

新しいマップ ペインを追加したい場合は、まだ方法がわかりません。

http://leafletjs.com/reference.html#map-panes

http://leafletjs.com/reference.html#featuregroup

于 2012-10-22T14:41:53.630 に答える
7

Leaflet API によると、任意のレイヤーでbringToFrontまたはbringToBackを使用して、そのレイヤーをすべてのパス レイヤーの一番上または一番下に移動できます。

エティエンヌ

于 2012-10-12T15:58:45.377 に答える
5

もう少し詳細については、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);
于 2013-09-23T19:44:28.283 に答える