Расскажу об одной небольшой (~30kb) JS библиотеке для удобной работы с Google Maps API под названием gmaps.js.
Раз уж библиотека создана для ускорения процесса веб-разработки, то и я вас задерживать не буду. Как можно понять из названия, она делает не что иное, как упрощает взаимодействие с API Google Maps. Многие из вас работали с API и, вероятно, каждый раз вам приходилось попотеть, чтобы порыться в документации и реализовать, например, свое собственное описание метки на карте. Или подписаться на событие взаимодействия с картой…
Итак, она пока еще не заимела ни одной мажорной версии, а в текущий момент имеет версию 0.1.12.3. Распространяется под лицензией MIT License и разрабатывается целым сообществом (и вы тоже можете в этом помочь).
Примеры возможностей
Создание карты
new GMaps({ div: '#map', lat: -12.043333, lng: -77.028333 });
А еще можно добавить опции zoom, width, height. Хотя по стандарту ширина и высотка карты будут подогнаны под контейнер.
События
map = new GMaps({ div: '#map', zoom: 16, lat: -12.043333, lng: -77.028333, click: function(e) { alert('click'); }, dragend: function(e) { alert('dragend'); } });
Поддерживаются все события Maps API.
Геолокация
GMaps.geolocate({ success: function(position) { map.setCenter(position.coords.latitude, position.coords.longitude); }, error: function(error) { alert('Geolocation failed: '+error.message); }, not_supported: function() { alert("Your browser does not support geolocation"); }, always: function() { alert("Done!"); } });
Ну разве не прелесть?
Добавление маркера
map.addMarker({ lat: -12.043333, lng: -77.028333, title: 'Lima', click: function(e) { alert('You clicked in this marker'); }, infoWindow: { content: '<p>Home, sweet home...</p>' } } });
И всё, всё, всё!
Библиотека поддерживает почти полный функционал Maps API, включая вывод статических карт(картинкой), наложение слоев, прокладывание маршрутов, рисование полигонов, рисование своих контролов, GeoRSS и всякое такое остальное…
Прошу ознакомиться с сайтом библиотеки: http://hpneo.github.com/gmaps/ и начинать творить.
И сразу же форкнуть репозиторий на Github: https://github.com/HPNeo/gmaps
UPD: KidsKilla подсказывает, что, в принципе, по Maps API ToS никто не имеет право создавать свои врапперы(оболочки) поверх действующего API, пока не получит официальное разрешение Гугла. (https://developers.google.com/maps/terms, пункт 10.2). На что разработчик (Gustavo Leon) ответил, что сделает две вещи: 1)запросит разрешения у гугла 2)уже открыт тикет по подключению не только Google Maps API, но и OpenStreetMap. Это же счастье!