Используем интерактивную карту на сайте: Google Maps API

Есть более простые способы использовать карты Гугл на сайты, но мы рассмотрим этот, как самый гибкий и функциональный.

Подготовка

Для примера создадим в песочнице див:

<div class="map" id="map-canvas"></div>
class="map" - используем для стилизации
id="map-canvas" - для подключение скриптов.

Подключим URL API карт. Кстати, раньше нужно было получать ключь API и эта информация сохранилась в документации (на момент публикации статьи). Теперь всю проще, просто указываете эту строку:

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&amp;sensor=false"></script>

Подключение скриптов мы производим перед </body>.

Зададим в CSS размер и расположение области, в которой будет размещена наша карта:

.map{
width: 80%;
height: 300px;
margin: 50px auto;
background: #888;
}

Инициализируем показ карты с заданными параметрами в JS:

function initialize() {
var mapOptions = {
zoom: 15, // - уровень увеличения карты.
center: new google.maps.LatLng(53.910342, 27.496707)
}; // - нужное координаты.
var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions); // - указывает id дива, к которому привязываемся.
}
google.maps.event.addDomListener(window, 'load', initialize);

Используем свое изображение для метки

var image = 'beachflag.png';
var myLatLng = new google.maps.LatLng(-33.890542, 151.274856);
var beachMarker = new google.maps.Marker({
position: myLatLng,
map: map,
icon: image
});

Информационное окно

Завершим настройку нашей карты добавив информационное окно. Удобно, что окно и данные внутри можно настраивать через CSS.

var contentString = '<div id="content">'+
'<div id="siteNotice">'+
'</div>'+
'<h1 id="firstHeading" class="firstHeading">Толстей с удовольствием!</h1>'+
'<div id="bodyContent">'+
'<p><b>Мак</b> - жизнь слишком коротка, чтобы думать о здоровье.' +
'</p>'+
'<p></p>'+
'</div>'+
'</div>';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
icon: image,
title: 'Uluru (Ayers Rock)'
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.