Google Maps Streetview - как получить Panorama ID

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

https://www.google.nl/maps/@52.239981,6.851849,3 a,90y,324.71 h,64.65 t/data=!3m5!1e1!3m3!1sFEpIJhSgOzoAAAQJOQCL3w!2e0!3e11

спасибо!

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';

понял!

https://www.google.nl/maps/@52.239981,6.851849,3 a,90y,324.71 h,64.65 t/data=!3m5!1e1!3m3!1sFEpIJhSgOzoAAAQJOQCL3w!2e0!3e11

после !1S и до !2е-ИД "Панорама", так вот это:

FEpIJhSgOzoAAAQJOQCL3w



  1. найти pano на Google Maps
  2. Откройте консоль инструментов разработчика
  3. Копировать / Вставить / выполнить следующее. Результатом должен быть идентификатор 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-адресе на самой странице панорамы.