Задача была такой: «закрасить на карте гугл в каких странах побывал пользователь сайта». На выполнение этой задачи в действующем проекте потребовалось около недели. Начинал конечно же с изучения самого вопроса, и поиском готовых решений, попадались то на флеше, то просто были прорисованы контуры нескольких стран которые благополучно накладывались на карту, но ни одной с использованием только функций google maps api и работающей на всех масштабах карты.
И уже отчаявшись наткнулся на интересный зарубежный пост наглядно показывающий что решение возможно. читать далее »
Имеем сайт использующий google maps. Нужно прикрутить погоду, чтобы она определялась по широте и долготе центра карты.
Нашел сервис, который выдает xml с подробной информацией о погоде по широте и долготе. Например http://api.wunderground.com/auto/wui/geo/WXCurrentObXML/index.xml?query=55.75200000000000000,37.6160000000000. Остается делать запросы =).
Пишем функцию, которая будет у нас вытаскивать нужные данные из принятого xml. читать далее »
Собстевнно никаких особых танцев с бубном не требуется для получения координат по адресу. Если у вас уже есть на сайте google map и есть api_key то у вас дожны быть прописаны несколько подгружающихся js скриптов.
Что собственно и имеем: <script type="text/javascript" src="http://maps.google.com/maps?file=api&v=2&key=<?=GOOGLE_MAPS_API_KEY?>"></script>
Для поиска используется довольно простая функция читать далее »
<script type="text/javascript" src="http://gmaps-utility-library.googlecode.com/svn/trunk/markermanager/release/src/markermanager.js"></script>
<script src="http://www.google.com/uds/api?file=uds.js&v=1.0&key=" type="text/javascript"></script>
Мой нынешний проект всеми возможными и не возможными способами привязан 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 маркера.