21 февраля 2012 года использовать сервис Street View от Google Maps стало возможно в России.
Были выложены отснятые панарамы Москвы, Санкт-Петербурга, а также и других населенных пунктов: Химки, Мытищи, Подольск, Домодедово, Петергоф, Пушкин, Павловск, Кронштадт и Ломоносов.
В этой заметке я покажу как можно использовать данный сервис на нескольких примерах.
Первый вариант, это использование специального элемента управления (оранжевого человечка).
Сразу после загрузки страницы с примером, мы наблюдаем карту Санкт-Петербурга.
Стандартно, с левой стороны мы видим элементы управления картой.
Над элементом управления масштабом карты расположен рисунок в виде оранжевого человечка.
Если подвести к нему курсор мыши, то он откланяется, нажав левую кнопку мыши мы можем тащить его на карту.
В это время все улицы, для которых существуют панорамы подсвечиваются синим цветом, мы опускаем человечка в нужном месте и наблюдаем панораму данной улицы.
Код файла примера:
<!DOCTYPE html>
<html DIR="LTR" xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Пример Google Maps JavaScript API v3 - слой просмотра улиц (Street View)</title>
<link rel="nofollow" href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>
<script type="text/javascript">
function initialize() {
var moscow = new google.maps.LatLng(59.933836,30.307698);
var mapOptions = {
center: moscow,
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width: 800px; height: 600px"></div>
</body>
</html> |
Второй пример, одновременное отображение двух окон — с картой и панорамой.
Код файла примера:
<!DOCTYPE html>
<html DIR="LTR" xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Пример Google Maps JavaScript API v3 - совместное отображение карты и слоя просмотра улиц (Street View)</title>
<link rel="nofollow" href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>
<script type="text/javascript">
function initialize() {
var moscow = new google.maps.LatLng(59.939448, 30.328264);
var mapOptions = {
center: moscow,
zoom: 16,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(
document.getElementById("map_canvas"), mapOptions);
var panoramaOptions = {
position: moscow,
pov: {
heading: 34,
pitch: 10,
zoom: 1
}
};
var panorama = new google.maps.StreetViewPanorama(document.getElementById("pano"),panoramaOptions);
map.setStreetView(panorama);
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width: 600px; height: 400px; top: 5px;"></div>
<div id="pano" style="position:absolute; left:610px; top: 5px; width: 600px; height: 400px;"></div>
</body>
</html> |
Обратите внимание, как задаются параметры для отображения панорамы.
Координаты определяют только позицию камеры, ее ориентация задается тремя свойствами:
heading (по умолчанию 0) – определяет угол поворота вокруг позиции камеры в градусах относительно истинного севера. Компасные курсы измеряются по часовой стрелке (90 градусов – истинный восток).
pitch (по умолчанию 0) – определяет отклонение угла вверх или вниз от исходного угла наклона камеры по умолчанию, который часто (но не всегда) совершенно горизонтален. (Например, для снимка с возвышенности, скорее всего, будет использоваться угол наклона по умолчанию, который в данном случае отличен от горизонтали.) Углы наклона выражаются отрицательными числами при отклонении вверх (–90 градусов вертикально вверх и под прямым углом к наклону по умолчанию) и положительными числами при отклонении вниз (+90 градусов вертикально вниз и под прямым углом к наклону по умолчанию).
zoom (по умолчанию 1) – определяет уровень масштабирования данного просмотра (эффективно ограничивая поле зрения), где 0 означает полное уменьшение изображения. Большинство местоположений просмотра улиц поддерживают уровни масштабирования от 0 до 3 включительно.
Для нашего примера:
позиция камеры — 59.939448, 30.328264;
heading — 34;
pitch — 10;
zoom — 1
Третий пример, в котором расположение меток, мы задаем в виде массива координат.
При щелчке по метке, открывается информационное окно (балун) с панорамой в данной точке.
Четвертый пример, основное окно — панорама, в правом нижнем углу расположена миникарта для управления местоположением камеры.
Пятый пример, при щелчке на маркере, отображается балун с панорамой и дополнительным элементом управления масштабом панорамы.
Подробнее об использовании сервис Street View можно прочитать в документации
Загрузить архив с файлами примеров
В заключении заметки несколько ссылок на виртуальные прогулки по многим парковым ансамблям и вокруг памятников архитектуры.
Москва и Московская область
- Московский Кремль и Красная площадь
- Государственный музей-заповедник «Царицыно»
- Усадьба Кусково
- Усадьба Коломенское
- Сад «Эрмитаж»
- Центральный парк культуры и отдыха имени Горького
- Музей техники Вадима Задорожного
- Парк на речном вокзале, Cеверный речной порт
- Свято-Троицкая Сергиева Лавра
- Церковь Знамения Пресвятой Богородицы в Дубровицах
- Храм святителя Митрофания Воронежского
- Благовещенский храм
Санкт-Петербург и Ленинградская область
Казань







Спасибо, отличные полезные вещи у вас, постоянно захожу смотреть новые вещи. Порадовали, очень нужная штука!
Спасибо автору! Только вопрос — можно ли это использовать на карте, кот. выводится в описании объекта каталога sobi2 (встроенной)? И если можно, то не могли бы вы пояснить, как? Большое спасибо.
В sobi2 используется карта API Google Maps v2, там со Street View нужно по другому работать, чем в API Google Maps v3.
Вот ссылка на документацию
Здравствуйте, а возможно ли(если да, то как) добавить кнопку для полноэкранного просмотра панорам