Раз уж библиотека создана для ускорения процесса веб-разработки, то и я вас задерживать не буду. Как можно понять из названия, она делает не что иное, как упрощает взаимодействие с API Google Maps. Многие из вас работали с API и, вероятно, каждый раз вам приходилось попотеть, чтобы порыться в документации и реализовать, например, свое собственное описание метки на карте. Или подписаться на событие взаимодействия с картой…
Итак, она пока еще не заимела ни одной мажорной версии, а в текущий момент имеет версию 0.1.12.3. Распространяется под лицензией MIT License и разрабатывается целым сообществом (и вы тоже можете в этом помочь).
Примеры возможностей
Создание карты
1 2 3 4 5 |
<span class="keyword">new</span> GMaps({ div: <span class="string">'#map'</span>, lat: -<span class="number">12.043333</span>, lng: -<span class="number">77.028333</span> }); |
А еще можно добавить опции zoom, width, height. Хотя по стандарту ширина и высотка карты будут подогнаны под контейнер.
События
1 2 3 4 5 6 7 8 9 10 11 12 |
map = <span class="keyword">new</span> GMaps({ div: <span class="string">'#map'</span>, zoom: <span class="number">16</span>, lat: -<span class="number">12.043333</span>, lng: -<span class="number">77.028333</span>, click: <span class="keyword">function</span>(e) { alert(<span class="string">'click'</span>); }, dragend: <span class="keyword">function</span>(e) { alert(<span class="string">'dragend'</span>); } }); |
Поддерживаются все события Maps API.
Геолокация
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
GMaps.geolocate({ success: <span class="keyword">function</span>(position) { map.setCenter(position.coords.latitude, position.coords.longitude); }, error: <span class="keyword">function</span>(error) { alert(<span class="string">'Geolocation failed: '</span>+error.message); }, not_supported: <span class="keyword">function</span>() { alert(<span class="string">"Your browser does not support geolocation"</span>); }, always: <span class="keyword">function</span>() { alert(<span class="string">"Done!"</span>); } }); |
Ну разве не прелесть?
Добавление маркера
1 2 3 4 5 6 7 8 9 10 11 12 |
map.addMarker({ lat: -<span class="number">12.043333</span>, lng: -<span class="number">77.028333</span>, title: <span class="string">'Lima'</span>, click: <span class="keyword">function</span>(e) { alert(<span class="string">'You clicked in this marker'</span>); }, infoWindow: { content: <span class="string">'<p>Home, sweet home...</p>'</span> } } }); |
И всё, всё, всё!
Библиотека поддерживает почти полный функционал 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. Это же счастье!
Занимательная библиотека! Однако, меня интересует вопрос, который я не могу найти в Google Maps API – как можно увидеть спутниковую карту полярного района с центром на полюсе? Наверно,, надо поменять проекцию – возможно ли это сделать в данной библиотеке?