Як змінити порядок нашарування шарів (z-індекс) панелей "Листова карта"?


16

Листовка стверджує, що елементи панелей Map містять усі шари, додані до карти. Різниця між багатьма панелями Map - це строго порядок шарування z-індексу.

Я хотів би використовувати комбінацію шарів lvector.CartoDB, які по суті є overlayPaneшарами, з TileLayer, наприклад GeoIQ Acetate-bg та labels.

Це впорядкування елементів під час додавання карти:

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-індексу, який він додається до карти в ...

тобто

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

Відповіді:


17

Чи бачили ви, щоб ця проблема створила один рефіз LeafLet github:

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

спробуйте використовувати

 addLayer(layer,true);

щоб додати шар плитки на дно. Я боюся, що це все, і цей другий факультативний аргумент навіть не задокументований.

Оновлення вересня 2014 року

Тепер листівка підтримує налаштування zIndex . Дякую @knutole в коментарях за те, що повідомив мені.


1
+1, щоб згадати тут недокументовану функцію, таким чином її документуючи. :)
fgysin відновила Моніку

7
Зараз layer.setZIndex(zIndex)доступна функція.
кнутоле

5
Дякую - layer.setZIndex(99)начебто для мене не працює векторна символіка (функції ліній та багатокутників), але, використовуючи layer.bringToFront()трюк
нічогонеобхідного
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.