Изменяем стили оформления карты Google Map. Также можно настроить отображение маркера, скрыть либо добавить объекты на карту.
Подключение скрипта Google Maps API
Подключаем скрипт добавляющий функционал добавления и редактирования карт на сайте.
Добавление карты — т.е. уже не нужно добавлять карту в виде iframe, мы создаем карту на сайте по координатам.
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&signed_in=true&callback=initMap" async defer></script>
YOUR_API_KEY — сюда нужно скопировать сгенерированный ключ API. Его нужно создать под своей учеткой в Google API Console
В итоге мы получим код ключа, его нужно вставить в скрипт подключения Google Maps API.
Создание карты Google Maps
В верстке у нас должен быть пустой div с id=»map» (можно назначить свой id), должны быть прописаны базовые стили слоя map. !Это обязательно, без этого карта не загрузиться.
#map {width: 100%; height: 400px;}
Инициируем скрипт создания карты
<script> function initMap() { // Метка на карте + координаты var myLatLng = {lat: 47.226517, lng: 39.7316219}; // Настройки карты var map = new google.maps.Map(document.getElementById('map'), { zoom: 16, center: myLatLng, // Координаты и центрирование по метке disableDefaultUI: true, mapTypeControl: true, styles : [{ featureType : "all", stylers : [{ saturation : -100 } ] }, { featureType : "all", stylers : [{ lightness : -20 } ] }, { featureType : "all", stylers : [{ gamma : 0.5 } ] }, { featureType : "road", stylers : [{ gamma : 0.85 } ] }, { featureType : "road.arterial", stylers : [{ gamma : 2.6 } ] }, { featureType : "road.highway", stylers : [{ lightness : 1 } ] }, { featureType : "road.highway", stylers : [{ gamma : 4 } ] } ] }); // Настройки метки var image = new google.maps.MarkerImage( '/img/point.png', new google.maps.Size(130, 130), //размер изображения иконки в пикселях new google.maps.Point(0, 0), //позиционирование иконки new google.maps.Point(65, 65) //центр иконки ); var marker = new google.maps.Marker({ position: myLatLng, icon : image, map: map, title: 'Фитнес клуб PRIME' }); } </script>
lat: 47.226517, lng: 39.7316219 — Широта и долгота объекта на карте. Как узнать координаты необходимой точки — воспользоватся сервисами определения координат:
Смещение центра
При необходимости мы можем немного сместить центр, чтобы метка находилась не по центру. Это может быть необходимо если мы помещаем рядом плашку с адресными данными.
//center: myLatLng, // комментируем центровку по метке center: {lat: 47.226517, lng: 39.7316219}, //немного корректируем данные
lat — смещение +вверх, -вниз
lng — смещение +вправо, -влево
Стили оформления карты и меток
Более подробно про стили, селекторы и метки расписано здесь
Сервис по подбору цветовых схем для карт — snazzymaps.com. После того как подобрали необходимый вариант — копируем стили и заменяем styles от начала и до конца квадратных скобок.
Какие стили за что отвечают:
styles: [ //{elementType: 'geometry', stylers: [{color: '#ebe3cd'}]}, //земля в населенном пункте //{elementType: 'labels.text.fill', stylers: [{color: '#523735'}]}, //подписи в населенном пункте (заливка) //{elementType: 'labels.text.stroke', stylers: [{color: '#f5f1e6'}]}, //подписи в населенном пункте (обводка) { featureType: 'administrative', // административные границы между областями и округами elementType: 'geometry.stroke', stylers: [{color: '#c9b2a6'}] }, { featureType: 'landscape.humanmade', // обводка домов и зданий elementType: 'geometry.fill', stylers: [{color: '#d3be7e'}] }, { featureType: 'landscape.humanmade', // обводка домов и зданий elementType: 'geometry.stroke', stylers: [{color: '#c6b06c'}] }, { featureType: 'administrative.land_parcel', // не понятно elementType: 'geometry.stroke', stylers: [{color: '#dcd2be'}] }, { featureType: 'administrative.land_parcel', // номера домов elementType: 'labels.text.fill', stylers: [{color: '#ae9e90'}] }, { featureType: 'landscape.natural', // земля вне населенных пунктов elementType: 'geometry', stylers: [{color: '#dfd2ae'}] }, { featureType: 'poi', // административные территории и здания (больницы, стадионы, кладбища) elementType: 'geometry', stylers: [{color: '#dfd2ae'}] }, { featureType: 'poi', // подписи к административным территориям и сданиям (больницы, стадионы, кладбища) elementType: 'labels.text.fill', stylers: [{color: '#93817c'}] }, { featureType: 'poi.park', // парки, скверы, газоны (внутри населенных пунктов) elementType: 'geometry.fill', stylers: [{color: '#a5b076'}] }, { featureType: 'poi.park', // подписи к паркам, скверам, газонам (внутри населенных пунктов) elementType: 'labels.text.fill', stylers: [{color: '#447530'}] }, { featureType: 'road', // второстепенные дороги elementType: 'geometry', stylers: [{color: '#f5f1e6'}] }, { featureType: 'road.arterial', // главные дороги elementType: 'geometry', stylers: [{color: '#fdfcf8'}] }, { featureType: 'road.highway', // трассы (может проходить в виде дороги по городу) elementType: 'geometry', stylers: [{color: '#f8c967'}] }, { featureType: 'road.highway', // обводка трасс elementType: 'geometry.stroke', stylers: [{color: '#e9bc62'}] }, { featureType: 'road.highway.controlled_access', // платные трассы elementType: 'geometry', stylers: [{color: '#e98d58'}] }, { featureType: 'road.highway.controlled_access', // обводка платных трасс elementType: 'geometry.stroke', stylers: [{color: '#db8555'}] }, { featureType: 'road.local', // название второстепенных дорог elementType: 'labels.text.fill', stylers: [{color: '#806b63'}] }, { featureType: 'transit.line', // жд пути elementType: 'geometry', stylers: [{color: '#dfd2ae'}] }, { featureType: 'transit.line', // не понятно elementType: 'labels.text.fill', stylers: [{color: '#8f7d77'}] }, { featureType: 'transit.line', // не понятно elementType: 'labels.text.stroke', stylers: [{color: '#ebe3cd'}] }, { featureType: 'transit.station', // аэропорты elementType: 'geometry', stylers: [{color: '#dfd2ae'}] }, { featureType: 'water', // водоемы elementType: 'geometry.fill', stylers: [{color: '#b9d3c2'}] }, { featureType: 'water', // подписи водоемов elementType: 'labels.text.fill', stylers: [{color: '#92998d'}] } ]
А можно в редакторе Google настроить карту и скопировать стили.
Возможные ошибки
Если карта не появляется — нужно обязательно прописать в стилях ее высоту.
Предупреждение SignedInNotSupported. Из скрипта с подключением Google API нужно убрать &signed_in=true (устаревший параметр).
[site-socialshare]