gmaps.js — самый легкий способ использования Google Maps API

Привет!

Расскажу об одной небольшой (~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. Это же счастье!
Share post

Similar posts

Comments 24

    +8
    Очень интересный проект. Только вот одно но — Google вводит больше ограничений на Google Maps API
      +3
      Очень хорошее возражение. Действительно смахивает на то, что gmaps.js нарушает подпункт ii пункта a в подразделе 10.2 правил пользования гуглокартами.
        +1
        я добавил в пост UPD, к сожалению, так и есть, но выход тоже есть.
          –1
          Только пункта (с), а не (а).
            +1
            Упс, прогнал (
            А свой камент стереть нельзя?
          0
          Не понял. Это они таким широким жестом вообще все врапперы вокруг их апи запретили? Даже внутренние?
            0
            Вопрос в предоставлении своих сервисов на основе гугельмапсов без дополнительного разрешения. Т.е. показать карту проезда на своём сайте можно, а вот, допустим, сделать свой геороутинг на основе их карт уже нельзя.
            Если короче — нельзя улучшать АПИ карт.
            0
            Мои скудные знания английского мешают мне за пунктами а-в понять, является ли подобные обёртки нарушением ToS.
            0
            Интересно.
            А группировка маркеров не реализована случайно?
            И ещё интересно, как они прикрутят туда же OpenStreetMap.
            Но было бы клево, если действительно сделают обещанное.
              –1
              Группировку не сложно прикрутить через markerclusterer, как и osm.
              +5
              На что разработчик (Gustavo Leon) ответил, что сделает две вещи: 1) запросит разрешения у гугла 2) уже открыт тикет по подключению не только Google Maps API, но и OpenStreetMap.

              Может, Гугл против врапперов как раз из-за «врапперов над всем», которые позволяют быстро переходить с одного сервиса на другой? Не уверен я в получении разрешения, ой не уверен…
                +4
                Не понятно почему игнорируется тот факт, что Google Maps для коммерческого использования требует 10000$ в год и еще там могут возникнуть вопросы если страница с картой не доступна без предварительной регистрации или расположена в закрытой сети. А вообще если нужны маркеры, геолокация, точки, полигоны, кривые это OpenLayrs + OpenStreetMap = бесплатное не обремененное лицензиями счастье.
                  +2
                  Дело всегда в том, что некоторые мыши плачут и колются, как в злом анекдоте. Чтобы для них было удобнее колоться, придумана вот эта библиотека.

                  Кстати, на OpenLayers свет клином не сошёлся: на мой-то взгляд Leaflet поудобнее будет в работе с OpenStreetMap, разве что не содержит специального API для геолокации.
                    +1
                    Свет клином на OpenLayrs действительно не сходиться. Вот например статья, которая это отражает ссылка. Там в комментариях, упоминается и ваш пример. Лично я стал работать с OpenLayers из-за большой базы примеров (200 штук). Единственное на что я надеюсь, так это на том, что свет клином не сойдется на коммерческом ГИС, который будет диктовать всем свои условия.
                      0
                      По крайней мере, в российской действительности главные «диктаторы» в области картографических технологий — это гос. конторы и чиновники. А уж на этой благодатной почве — поставщики коммерческих решений. (То есть факт, кто государственные «порталы» делаются на софте ESRI — это следствие, а не причина.)
                      Примеры — это просто отлично, они помогают втянуться в технологию. Но потом неизбежно утыкаешься в ситуацию, которая описана Гоголем: «Если бы губы Никанора Ивановича да приставить к носу Ивана Кузьмича...»
                      0
                      Поправьте, но Leaflet пока относится к библиотекам «попроще». В документации ничего не нашлось про автоматическую кластеризацию, например.
                      Хотя соглашусь — многие другие детали (скажем — настройки стилей всплывающих окошек) выглядят куда приятнее, чем в OL. Так что для вывода данных с небольшой плотностью маркеров — очень даже хорошо.
                        0
                        У Leaflet просто главная идея несколько иная — создать максимально быстрое, простое, удобное, стабильное и гибкое «ядро» с базовыми функциями (карта с тайлами, основные проекции, маркеры, попапы, векторные слои и вся интерактивность), оставив оставив более специфические вещи плагинам. Функции вроде кластеризации намеренно не допускаются в основной код (хотя уже есть как минимум 3 разных сторонних реализации).
                    0
                    Интересно, а имеют они вообще право запрещать врапперы? Ведь, по идее, разработчик враппера сам не пользуется их апи в момент использования враппера. Как если бы я сам написал функцию типа initGMaps(), или взял её готовую с гитхаба/блога и автор кода нёс бы за это ответственность? Как-то тут границы размываются имхо.
                      0
                      Мне кажется, в ToS всё-таки идёт речь о создании сервиса-обёртки, а не библиотеки с кодом. Но точно скажет, наверное, только американский юрист с опытом )
                        0
                        Мне кажется, Викимапия уже полностью вне закона :)
                    +2
                    А есть что-то подобное для Yandex Maps?
                      +1
                      Залогинился чтобы задать тот же самый вопрос. Для России яндекс карты куда актуальнее
                      –1
                      Пускай сначала разрешение от гугла получит — тогда будем смотреть.
                      Еще не хватало чтобы гугл забанил сайт для использования АПИ.
                      Спасибо не надо.

                      Но зная повадки мегакорпораций (а особенно новоиспеченного директора и жадного до денег Ларри Пейджа), у меня мало оптимизма насчет того что разрешение ему дадут.

                      Only users with full accounts can post comments. Log in, please.