Google Maps Streetview - как получить Panorama ID
Я хочу использовать пользовательскую позицию панорамы, но для этого мне нужен идентификатор панорамы. Может кто-нибудь объяснить мне, как получить идентификатор панорамы из следующей ссылки:
спасибо!
7 ответов
Google изменил формат идентификаторов pano с их обновлениями в августе / сентябре. Подобно тому, как перед pano ID можно найти между !1S и !2е. Так в Примере написал Джейсон идентификатор пано будет (urldecoded):
F:-gVtvWrACv2k/Vnh0Vg8Z8YI/AAAAAAABLWA/a-AT4Wb8MD8
чтобы заставить его работать на нас, мы должны были добавить F: перед ним. Существует также известная ошибка, которая требует добавления недокументированного флага для использования новых panos (см. https://code.google.com/p/gmaps-api-issues/issues/detail?id=7452#c51):
google.maps.streetViewViewer = 'photosphere';
- найти pano на Google Maps
- Откройте консоль инструментов разработчика
- Копировать / Вставить / выполнить следующее. Результатом должен быть идентификатор pano.
"F:".concat(window.location.href.split("!1s")[1].split("!2e")[0]).replace('%2F','/')
Спасибо @Rgrauphics
как упоминал Джастин Маклауд, но вот что я сделал точно.
вам нужно отрегулировать идентификационный номер. Вы все еще можете найти идентификационный номер между !1S и !2e но вам нужно обновить url-адрес, чтобы он работал.
Add F: to the start of your ID
Change %2F in the ID to /
мой пример ID Раньше:
-3_7tAKLhLLU%2FV0nuKmxj7xI%2FAAAAAAAAdE8%2FHZYhfYoBGqAsQw-63snzF9OkIy7YT051ACLIB
после:
F:-3_7tAKLhLLU/V0nuKmxj7xI/AAAAAAAAdE8/HZYhfYoBGqAsQw-63snzF9OkIy7YT051ACLIB
чтобы получить идентификатор панорамы (pano), я разработал небольшую HTML-страницу, на которой вы можете получить некоторые из ее параметров (масштабирование/Pov, шаг и заголовок) и получить HTTP-URL запроса изображения Street View.
не забудьте заменить YOUR_API_KEY С вашим собственным ключом API (очевидно)
получайте удовольствие от google maps!!
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
html,
body {
height: 95%;
margin: 0;
padding: 0;
}
#map,
#pano {
float: left;
height: 95%;
width: 45%;
}
</style>
</head>
<body>
<div id="tray">
<button id="doer" onclick="doThings()">do it</button>
<span id="resulting"></span>
</div>
<div id="map"></div>
<div id="pano"></div>
<script>
var panorama, map;
var APIkey= "YOUR_API_KEY"
function initialize() {
var fenway = {
lat: 42.345573,
lng: -71.098326
};
var agbar = new google.maps.LatLng(41.4035482, 2.1894355);
map = new google.maps.Map(document.getElementById('map'), {
center: agbar,
zoom: 14
});
panorama = new google.maps.StreetViewPanorama(
document.getElementById('pano'), {
position: agbar,
pov: {
heading: 34,
pitch: 10
}
});
map.setStreetView(panorama);
}
function doThings() {
console.log("doing things");
document.getElementById("resulting").innerHTML = "https://maps.googleapis.com/maps/api/streetview?size=640x640" +"&pano=" + panorama.getPano() + "&heading=" + panorama.getPov().heading + "&pitch=" + panorama.getPov().pitch + "&fov="+ (180/ (Math.pow(2, panorama.getZoom()?panorama.getZoom():1)))+ "&key=" + APIkey;
//use the next line to open in a new tab the resulting image at max size (640x640)
window.open("https://maps.googleapis.com/maps/api/streetview?size=640x640" + "&pano=" + panorama.getPano() + "&heading=" + panorama.getPov().heading + "&pitch=" + panorama.getPov().pitch + "&fov="+ (180/ (Math.pow(2, panorama.getZoom())))+ "&key=" +APIkey)
}
</script>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initialize">
</script>
</body>
</html>
инструкции: создайте файл html, скопируйте код, замените ключ API, раскройте файл html внутри браузер, нажмите кнопку" сделать это".
больше ссылок можно найти в Google: https://developers.google.com/maps/documentation/javascript/streetview#StreetViewPanoramas
когда вы находитесь на картах google, глядя на вашу внутреннюю панораму. Просто нажмите на флаг, чтобы сообщить панораму. Затем вы увидите параметр в URL-адресе под названием "panoid" с идентификатором панорамы в нем. Вы можете просто скопировать его туда. Насколько я вижу, его нет нигде в URL-адресе на самой странице панорамы.