Ставим свой z-index маркерам

09/17/2009, автор admin, категории Google maps

Мой нынешний проект всеми возможными и не возможными способами привязан google map. И вроде все хорошо в google map api, но вот незадача. Казалось бы что нет ничего проще чем самому отрегулировать как будут перекрываться маркеры на карте (который выше который ниже)… По дефолту они как бы создают эффект 3d модели, то есть маркеры ближе к экватору земли становятся выше всех.
Так вот вразумительного ответа как поставить свои z-index маркерам на русском языке я не нашел, зато нашел ответ на зарубежном блоге, к сожалению не помню где именно. Оказалось решение этого вопроса не занимает много времени. Скачиваем скрипт labeledmarker.js к себе и находим такую функцию:LabeledMarker.prototype.redrawLabel_ = function() {
// Calculate the DIV coordinates of two opposite corners of our bounds to
// get the size and position of our rectangle
var p = this.map_.fromLatLngToDivPixel(this.latlng_);
var z = GOverlay.getZIndex(this.latlng_.lat());
// Now position our div based on the div coordinates of our bounds
this.div_.style.left = (p.x + this.labelOffset_.width-7) + "px";
this.div_.style.top = (p.y + this.labelOffset_.height-41) + "px";
this.div_.style.zIndex = z; // in front of the marker
};

и меняем строку ->this.div_.style.zIndex = z;
на
this.div_.style.zIndex = "100";

Теперь маркеры будут выводится в порядке их подачи на вывод. Вобщем меня это устроило, но думаю можно было посмотреть и сделать так чтоб в эту функцию можно было передавать отдельный параметр отвечающий за z-index маркера.

Читать похожие статьи:

Теги:  

Комментарии закрыты.