Я пытаюсь заставить наложение в api v3 карт Google появляться, прежде всего, маркеры. Но кажется, что API Google всегда помещал мое наложение с самым низким z-индексным приоритетом. Только решение, которое я нашел, состоит в том, чтобы выполнить итерации через дерево DOM и вручную установить z-индекс на более высокое значение. Плохое решение.
Я добавляю мой новое отделение к моему наложению с:
onclick : function (e) {
var index = $(e.target).index(),
lngLatXYposition = $.view.overlay.getProjection().fromLatLngToDivPixel(this.getPosition());
icon = this.getIcon(),
x = lngLatXYposition.x - icon.anchor.x,
y = lngLatXYposition.y - icon.anchor.y
$('<div>test</div>').css({ left: x, position: 'absolute', top: y + 'px', zIndex: 1000 }).appendTo('.overlay');
}
Я попробовал каждое свойство, о котором я мог думать при создании моего наложения. zIndex, zPriority и т.д.
Я добавляю свое наложение с:
$.view.overlay = new GmapOverlay( { map: view.map.gmap });
И GmapOverlay наследовался новому google.maps. OverlayView.
Какие-либо идеи?
.. fredrik
Вы не можете изменить zIndex OverlayView (у него нет такого свойства), но он содержит панели, содержащие узлы DOM. Здесь вы можете использовать свойство z-index:
...
lngLatXYposition = $.view.overlay.getPanes().overlayLayer.style['zIndex'] = 1001;
...
Установка z-index на 104 для слоя overLay кажется "волшебным" числом ", если вы заботитесь о взаимодействии с маркерами (т. Е. Перетаскивании маркеров). Любое значение выше 104, и вы можете не взаимодействовать с маркерами. Интересно, есть ли менее хрупкое решение ...