Всеми любимый гугл не перестает удивлять меня своими возможностями. Я и раньше видел карту с гугля на посторонних сайтах, думал, что гугл предоставляет некий сервис по размещению этой карты на своем сайте, и угадал. Это же огромный плюс гуглу перед Яндексом.
И вот наступил момент, когда мне дали заказ на создание серсива, предполагающего плотное использование карты. Казалось, все просто. Бери карту и используй, ведь документация по Google Maps API довольно объемная. Но моя слабое знание английского и JavaScrpit дало о себе знать в первый же день полета.
Сначала я начал шерстить рунет на наличие статей или мануалов от тех, кто уже работал с Google Maps API. Ребята, я на??ел только пару качественных материалов! Причем обе статьи были на сайтах печатных изданий! Остальное было мусором в стиле: разобрался, сделал, а код и прочие подробности опущены!
В двух словах, как это все работает.
Как известно из школьного курса географии, в системе координат Земли используют широту и долготу в градусах. Если этой точности не достаточно, а ее впринципе никогда не достаточно для более-менее конкретного определения точки, то в ход уже идут минуты и секунды. Гугл же решил упростить систему и ограничился дробными числами, максимальная точность - 14 знаков после запятой) По моим наблюдениям, достаточно 5-6 знаков.
Открываем http://code.google.com/apis/maps/, предварительно залогинившись, а дальше уже регимся/смотрим примеры/смотрим faq. На каждый URL выдается свой ключ(key), который используется при вызове JS-скрипта с сервера гугла. Гугл отказывается работать, если URL сайта, с которого открываем страницу с картой, и URL, на который был получен ключ, разные. По неизвестным мне пока причинам, я почему-то решил, что на локальном сервере карта у меня не заработает, и всю отладку производил на удаленном сервере, каждый раз закачивая измененный скрипт. Я был сильно удивлен, когда я получил ключ для URLa типа http://map/ и карта заработала! К сожалению, сайт уже был сделан)
Маркеры(метки на карте) можно расставлять прямо JS-скриптом, либо из MySQL базы, как я и сделал, основываяся на примере http://code.google.com/support/bin/answer.py?answer=65622&topic=11364. Имеется возможность вместо стандарнтых иконок использовать свои. Система настолько гибка и продумана, что вы это поймете после непродолжительной работы с нею. Но тут пришлось поплатиться скоростью работы - загрузка большого количества маркеров отнимает приличное количество времени.
Изначально я решил думал выложить конкретные примеры, но потом отказался от этого. Впринципе, мануал на сервере гугла самодостаточный. Имея знания JS и элементарного английского, разобраться в нем не составит труда. Дам только пару ссылок на те статьи, что мне очень помогли в свое время.
Полезные линки:
http://www.computerra.ru/gid/rtfm/internet/290369/
http://www.pcmag.ru/solutions/detail.php?ID=10869
Держайте, товарищи!
Google Maps API открывает новые возможности, за что им отдельное спасибо!
Немного отступления.
К сожалению, Opera не захотела отображать карту, но IE и Mozilla справились без проблем.
В процессе работы я заметил одно различие в отображении страниц между IE и Mozilla. Создаем плавающий фрем(iframe) и пишем в аттрибутах scrolling=”no”. Интернет Эксплорер вместо “отключенной” полосы прокрутки отображал белую полосу. Писал для тега body аттрибут margin=”0″, не помогло ни разу. М из-за какой-то ничтожной полосы прокрутки мне пришлось разбираться с ajax’ом, который впоследствии мне понравился, хотя тоже потрепал нервы достаточно.
Поздравляю…