リーフレットマップペインの階層化順序(z-index)を変更するには?


16

リーフレットは、マップペイン要素にマップに追加されたすべてのレイヤーが含まれていることを維持します。多くのマップペインの違いは、厳密に階層化のz-index順序です。

基本的にはレイヤーであるlvector.CartoDBレイヤーと、overlayPaneGeoIQ Acetate-bgやラベルなどのTileLayerの組み合わせを使用したいと思います。

これは、要素がマップに追加されるときの要素の順序です。

tileLayer1 = new L.TileLayer();
map.add(tileLayer1);  // add first layer to map

cartoDBLayer1 = new lvector.CartoDB();
cartoDBLayer.setMap(map); // add second layer to map

tileLayer2 = new L.TileLayer();
map.add(tileLayer2);  // add third layer to map

返されるのは、次の順序のレイヤーを持つマップです。

tileLayer1,tileLayer2,cartoDBLayer1

tileLayer1tileLayer2に位置しているHTMLElement: TilePanecartoDBLayer1していますHTMLElement: overlayPane

cartoDBLayer1TilePaneでのレンダリングを強制する方法はありますか。マップに追加されたz-indexの順になります。

すなわち

z-index[0]:tileLayer1
z-index[1]:cartoDBLayer1
z-index[2]:tileLayer2 

回答:


17

この問題がLeafLet githubリポジトリの1つを作成したのを見ましたか:

https://github.com/Leaflet/Leaflet/issues/167

使用してみてください

 addLayer(layer,true);

タイルレイヤーを下部に追加します。私はそれがすべてであり、この2番目のオプションの引数が文書化されていないことを恐れています。

2014年9月の更新

LeafletはzIndexの設定をサポートするようになりました。コメントをくれた@knutoleに感謝します。


1
ここに文書化されていない機能について言及し、それを文書化するための+1。:)
フジシンはモニカを復活させます

7
今そこにあるlayer.setZIndex(zIndex)利用できる機能が。
knutole 14

5
ありがとう- layer.setZIndex(99)ベクトルシンボル(ラインフィーチャとポリゴンフィーチャ)で私には動作しないようですlayer.bringToFront()が、トリックを使用しました。
必要なし
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.