2015-07-10 2 views
1

У меня 3 слоя на моей карте. Все слои являются imageOverlay типа, чтобы показать большое изображение вместо стиля плитки. Первые два слоя - это базовое изображение, которое я могу переключаться между (радио) и третьим уровнем - это наложение, которое должно отображаться поверх них, если отмечено (флажок).leafletjs слой наложения скрыт

Моя проблема заключается в том, что, когда я выбираю один из базовых слоев, слой наложения (третий слой) скрывается, а не отображается поверх него.

это, как я инициируют слои:

var image1Layer = L.imageOverlay(image1Url, imageBounds); 
var image2Layer = L.imageOverlay(image2Url, imageBounds); 
var image3Layer = L.imageOverlay(image3Url, imageBounds); 

L.control.layers({ 
    'New': image2Layer, 
    'Old': image1Layer 
}, 
{ 
    'Changes': image3Layer 
}, 
{collapsed:false}).addTo(map); 

ответ

1

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

map.on('baselayerchange', function() { 
    if (map.hasLayer(image3Layer)) { 
     image3Layer.bringToFront(); 
    } 
}); 
+0

спасибо! – amitdar

Смежные вопросы