Статьи

Создавайте Google Карты с помощью gmaps.js

Как использовать GMaps.js

GMaps — это плагин javascript, который делает использование карт Google действительно простым для отображения карты для вашего пользователя. Есть несколько вариантов, которые позволяют легко добавлять указатели на карту, направления, информационные поля и многое другое.

Этот плагин очень большой, есть множество вариантов для прохождения, в этом уроке я не собираюсь проходить через все из них. Я просто собираюсь просмотреть варианты, которые вы, скорее всего, будете использовать.

Если вы хотите увидеть все опции для этого плагина, вы можете просмотреть документацию по Github Repository.

Документация

Чтобы начать использовать GMap.js, вам нужно скачать последнюю версию с Github.

Скачать GMap

Теперь, когда у вас есть последняя версия, включите файл Javascript и jQuery на свою страницу внутри

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script src="gmaps.js"></script>
</head>
<body>
</body>
</html>

При добавлении gmap.js на страницу он
создаст объект Javascript с именем GMaps, который вы будете использовать для
создания своих
карт .

$(document).ready(function(){
 var map = new GMaps({
    el: '#map',
    lat: 51.5073346,
    lng: -0.1276831,
  });
});

Основная карта

В этом примере это просто будет базовая карта внутри div. Это самый простой способ использования GMaps.js, все, что вам нужно, это немного Javascript и div на странице.

Сначала мы добавляем файл GMap Javascript на страницу, как описано выше, и создаем HTML-код div.

<div id="basic_map"></div>

Теперь мы можем создать Javascript для добавления базовой карты на страницу, для этой карты мы собираемся установить центр карты, чтобы показать Лондон.

Мы можем назначить различные параметры, включая элементы управления масштабированием, просмотр улиц, настройки наложения и т. Д.

/**
  * Basic Map
  */
$(document).ready(function(){
 var map = new GMaps({
    el: '#basic_map',
    lat: 51.5073346,
    lng: -0.1276831,
    zoom: 12,
    zoomControl : true,
    zoomControlOpt: {
        style : 'SMALL',
        position: 'TOP_LEFT'
    },
    panControl : false,
  });
});

Демонстрация базовой карты

События мыши на карте

Реакция вашей карты на взаимодействие с пользователем может быть очень полезна в большинстве приложений, поэтому GMap.js включает в себя различные события мыши для вашей карты. В этом примере мы будем использовать событие click и drag, чтобы отобразить предупреждение на экране.

Снова HTML очень прост.

<div id="mouse_event_map"></div>

Для этого мы можем использовать ту же карту, что и выше, но у нас есть разные опции для событий щелчка и драгендинга. Затем мы можем назначить функцию для запуска этих различных событий.

/**
 * Mouse Events on Maps
 */
$(document).ready(function(){
 var map = new GMaps({
    el: '#mouse_event_map',
    lat: 51.5073346,
    lng: -0.1276831,
    zoom: 12,
    zoomControl : true,
    zoomControlOpt: {
        style : 'SMALL',
        position: 'TOP_LEFT'
    },
    panControl : false,
    click: function(e){
      alert('Click event');
    },
    dragend: function(e){
      alert('Drag Event');
    }
  });
});

Мышь События Демо

Создать указатель карты с информацией

Следующая функция, которую мы собираемся рассмотреть, — это возможность добавлять указатели к вашему маркеру с точной долготой и широтой.

С GMap это упрощает эту функцию, вы также можете создать информационное окно HTML, которое будет появляться при нажатии на маркеры.

HTML снова просто div с идентификатором.

<div id="pointers_map"></div>

Для этого примера я использую некоторые из самых больших достопримечательностей Лондона в качестве указателей для карты.

Добавить указатель так же просто, как использовать метод addMarker () .

map.addMarker({
        lat: 51.5007396,
        lng: -0.1245299,
        title: 'Big Ben',
        infoWindow: {
          content: '
Big Ben is the nickname for the great bell of the clock at the north end of the Palace of Westminster in London, and often extended to refer to the clock and the clock tower, officially named Elizabeth Tower.
'
        }
      });

Мы используем этот метод для объекта, который возвращается из класса GMap.

/**
 * Map Pointers
 */
$(document).ready(function(){
 var map = new GMaps({
    el: '#pointers_map',
    lat: 51.5073346,
    lng: -0.1276831,
    zoom: 13,
    zoomControl : true,
    zoomControlOpt: {
        style : 'SMALL',
        position: 'TOP_LEFT'
    },
    panControl : false,
  });
map.addMarker({
      lat: 51.503324,
      lng: -0.119543,
      title: 'London Eye',
      infoWindow: {
        content: '
The London Eye is a giant Ferris wheel situated on the banks of the River Thames in London, England. The entire structure is 135 metres (443 ft) tall and the wheel has a diameter of 120 metres (394 ft).
' }
    });
    map.addMarker({
      lat: 51.5007396,
      lng: -0.1245299,
      title: 'Big Ben',
      infoWindow: {
        content: '
Big Ben is the nickname for the great bell of the clock at the north end of the Palace of Westminster in London, and often extended to refer to the clock and the clock tower, officially named Elizabeth Tower.
'
      }
    });
    map.addMarker({
      lat: 51.518856,
      lng: -0.1263371,
      title: 'British Museum',
      infoWindow: {
        content: '
The British Museum is a museum in London dedicated to human history and culture.
'
      }
    });
    map.addMarker({
      lat: 51.5085822,
      lng: -0.1283169,
      title: 'National Gallery',
      infoWindow: {
        content: '
The National Gallery is an art museum on Trafalgar Square, London. Founded in 1824, it houses a collection of over 2,300 paintings dating from the mid-13th century to 1900.
'
      }
    });
    map.addMarker({
      lat: 51.5228316,
      lng: -0.1553503,
      title: 'Madame Tussauds',
      infoWindow: {
        content: '
Madame Tussauds is a wax museum in London with branches in a number of major cities.
'
      }
    });
    map.addMarker({
      lat: 51.5089465,
      lng: -0.0764269,
      title: 'Tower Of London',
      infoWindow: {
        content: '
Her Majesty\'s Royal Palace and Fortress, more commonly known as the Tower of London, is a historic castle on the north bank of the River Thames in central London, England, United Kingdom.
'
      }
    });

Это позволит создать в Google карту , которая выглядит следующим образом .

Демоверсия указателей карты

Использование GeoLocation

Геолокация позволит вашему браузеру определить точную долготу и широту , это действительно полезно для карт на мобильных устройствах . Если вы запрашиваете маршруты с мобильного устройства, вы, скорее всего, будете спрашивать дорогу от вашего текущего местоположения.

С GMap.js мы можем легко использовать другое свойство объекта, чтобы определить ваше местоположение и разместить маркер в вашем точном местоположении.

Сначала создайте свою карту div.

<div id="geolocation_map"></div>

Используйте приведенный ниже Javascript, чтобы создать маркер в вашем текущем местоположении. Это использует метод объекта GMaps, называемый geolocate ().

/**
 * Geolocation
 */
 var map;
$(document).ready(function(){
  var map = new GMaps({
    el: '#geolocation_map',
    lat: 51.5073346,
  lng: -0.1276831,
  });
  GMaps.geolocate({
    success: function(position){
      map.setCenter(position.coords.latitude, position.coords.longitude);
      map.addMarker({
        lat: position.coords.latitude,
        lng: position.coords.longitude,
        title: 'You are here.',
        infoWindow: {
          content: '
You are here!
'
        }
      });
    },
    error: function(error){
      alert('Geolocation failed: '+error.message);
    },
    not_supported: function(){
      alert("Your browser does not support geolocation");
    }
  });
});

Демографическая карта Демо

Направления

В предыдущем примере Geolocation я говорил о том, что использование Geolocation действительно полезно для людей с указаниями направлений, чтобы вы могли получать указания от вашего текущего местоположения.

Используя GMaps.js, получить геолокацию и нарисовать маршрут очень легко. Сначала мы используем метод geolocate для получения текущей позиции пользователя, затем мы используем метод drawRoute для рисования маршрута от вашей текущей позиции до пункта назначения.

/**
 * Directions to London
 */
var map;
$(document).ready(function(){
  var map = new GMaps({
    el: '#directions_map',
    lat: 51.5073346,
    lng: -0.1276831,
    zoom:8
  });
  GMaps.geolocate({
    success: function(position){
      map.setCenter(position.coords.latitude, position.coords.longitude);
       map.drawRoute({
        origin: [position.coords.latitude, position.coords.longitude],
        destination: [51.5073346, -0.1276831],
        travelMode: 'driving',
        strokeColor: '#000',
        strokeOpacity: 0.6,
        strokeWeight: 6
      });
    },
    error: function(error){
      alert('Geolocation failed: '+error.message);
    },
    not_supported: function(){
      alert("Your browser does not support geolocation");
    }
  });
});

Схема проезда Демо

Статические Карты

Иногда, когда вы отображаете карту на странице, вы не хотите, чтобы пользователь взаимодействовал с ней, вы просто хотите отобразить изображение местоположения.

С GMaps.js вы можете заставить плагин отображать изображение в любом месте.

Вы можете установить размер изображения, которое вы хотите использовать, и местоположение, просто предоставьте ему местозаполнитель div и все.

/**
 * Static Maps
 */
$(document).ready(function(){
  var url = GMaps.staticMapURL({
    size: [610, 350],
    lat: -33.858290691930996,
    lng: 151.21517658233643
  });
  $('<img/>').attr('src', url).appendTo('#static_map');
});

Статическая карта Демо

Вывод

Как видно из этого примера кода, на ваших страницах действительно удобно использовать GMap. Это всего лишь несколько примеров использования плагина GMap.js, примеры использования всех опций плагина можно найти в проекте Github.

Примеры GMap

Чтобы скачать последнюю версию gmap.js, вам нужно перейти в репозиторий Github.

Скачать GMap