Как изменить порядок наложения панелей «Листовка» (z-index)?

16

Листовка утверждает, что элементы панели «Карта» содержат все слои, добавленные на карту. Разница между многими панелями Map заключается в строгом порядке наложения по z-index.

Я хотел бы использовать комбинацию слоев lvector.CartoDB, которые по сути являются overlayPaneслоями, с TileLayer, такими как GeoIQ Acetate-bg и метки.

Это порядок элементов при добавлении карты:

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

tileLayer1и tileLayer2расположены в HTMLElement: TilePaneи cartoDBLayer1находится в HTMLElement: overlayPane.

Есть ли способ заставить cartoDBLayer1рендеринг в TilePane, так что он падает в порядке z-index, который добавляется на карту в ...

т.е.

z-index[0]:tileLayer1
z-index[1]:cartoDBLayer1
z-index[2]:tileLayer2 
Майкл Маркиета
источник

Ответы:

17

Вы видели этот выпуск, созданный одним репозиторием LeafLet github:

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

попробуй использовать

 addLayer(layer,true);

добавить слой плитки на дно. Боюсь, это все, что есть, и этот второй необязательный аргумент даже не задокументирован.

Обновление сентябрь 2014

Leaflet теперь поддерживает настройку zIndex . Спасибо @knutole в комментариях за сообщение.

unicoletti
источник
1
+1 за упоминание недокументированной функции здесь, тем самым документируя ее. :)
Фгысин восстановил Монику
7
Теперь layer.setZIndex(zIndex)доступна функция.
Knutole
5
Спасибо - layer.setZIndex(99)кажется, не работает для меня с векторными символами (линиями и полигонами), но с помощью layer.bringToFront()получилось.
ничего лишнего