2015-04-28 28 views
6

Desidero utilizzare la posizione panoramica personalizzata, ma ho bisogno di un ID panorama per questo. Qualcuno mi può spiegare come per ottenere l'ID panorama dal link seguente:Google Maps Streetview - Come ottenere l'ID Panorama

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

Grazie!

+0

Eventuali duplicati o domanda simile. Ho pubblicato una soluzione qui, http://stackoverflow.com/questions/32523173/google-maps-embed-api-panorama-id/41100453#41100453 –

risposta

9

Google ha cambiato il formato degli ID pano con i loro aggiornamenti in agosto/settembre Simile a prima che l'ID pano possa essere trovato tra! 1s e! 2e. Così, nell'esempio pubblicato da Jason l'ID pano sarebbe (urldecoded):

F:-gVtvWrACv2k/Vnh0Vg8Z8YI/AAAAAAABLWA/a-AT4Wb8MD8

Al fine di farlo funzionare per noi abbiamo dovuto anteporre la F: di fronte ad essa. C'è anche un problema noto, che richiede l'aggiunta di una bandiera non documentato da usare Panos più recenti (vedi https://code.google.com/p/gmaps-api-issues/issues/detail?id=7452#c51):

google.maps.streetViewViewer = 'photosphere'; 
+0

Questo mi ha risparmiato un sacco di mal di testa - grazie. –

1

Al fine di ottenere un ID di panorama (pano), ho sviluppato un po 'di pagina HTML Con il quale è possibile ottenere alcuni dei suoi parametri (zoom/Pov, intonazione e direzione) e ottenere l'URL HTTP di richiesta di Street View Image.

Non dimenticare di sostituire il YOUR_API_KEY con la propria chiave API (ovvio)

divertirsi con 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> 

Istruzioni: creare un file HTML, copiare il codice, sostituire chiave API, file html aperto in del browser, premere il pulsante "farlo".

Ulteriori riferimenti possono essere trovati a Google: https://developers.google.com/maps/documentation/javascript/streetview#StreetViewPanoramas

2

Come detto Justin MacLeod, ma qui è quello che ho fatto esattamente.

È necessario regolare il numero ID. È ancora possibile trovare il numero ID tra! 1s e! 2e ma è necessario aggiornare l'url affinché funzioni.

Add F: to the start of your ID 
Change %2F in the ID to/

Il mio esempio ID Prima:

-3_7tAKLhLLU%2FV0nuKmxj7xI%2FAAAAAAAAdE8%2FHZYhfYoBGqAsQw-63snzF9OkIy7YT051ACLIB 

Dopo:

F:-3_7tAKLhLLU/V0nuKmxj7xI/AAAAAAAAdE8/HZYhfYoBGqAsQw-63snzF9OkIy7YT051ACLIB 
0

Quando sei su google maps, guardando il tuo panorama interno. Basta cliccare sulla bandiera, per segnalare il panorama. Quindi vedrai un parametro nell'URL chiamato 'panoid' con l'ID del panorama al suo interno. Puoi semplicemente copiarlo lì. Non è più da nessuna parte nell'URL sulla vista della pagina panoramica stessa, per quanto posso vedere.

2
  1. Trova il pano su Google Maps
  2. Strumenti Aprire Console per gli sviluppatori
  3. copia/incolla/eseguire il seguente. Il risultato dovrebbe essere il pano id.

"F:".concat(window.location.href.split("!1s")[1].split("!2e")[0]).replace('%2F','/')

Grazie @Rgrauphics

Problemi correlati