2017-11-17 4 views
0

私はパノラマIDのリストを方向に保つ必要があります。私はでそれを得ることができますの方法でリンク。しかし、私はこのエラーを持っている:パノラマIDのリスト(StreetView)

variablele "Links" is undefined enter image description here

私のコードは次のとおりです。

var panorama = new google.maps.StreetViewPanorama(document.getElementById('pano'),{ 
      position: {lat: 37.869, lng: -122.255}, 
      pov: { 
      heading: 270, 
      pitch: 0 
      }, 
      visible: true 
      }); 
.. 
panorama.setPano('SomePAnoCode45994hf9hf'); 
var Links = panorama.getLinks(); 

私が間違って何をしているのですか? 私はリンクが次のパノラマを得ると願っています:

Links[0].getPano(); 
+0

[MCVE]悪魔を入力してください問題を引き起こす。 – geocodezip

答えて

2

をGoogleマップのJavaScript API v3には、イベントベースです。パノラマの "status_changed"イベントが発生するのを待ってからgetLinks()が結果を返すまで待つ必要があります。

google.maps.event.addListener(panorama, 'status_changed', function() { 
    var status = panorama.getStatus(); 
    if (status == "OK") { 
    var Links = panorama.getLinks(); 
    console.log(Links); 
    } else { 
    alert("panorama status="+panorama.getStatus()); 
    } 
}); 

proof of concept fiddle

screen shot of resulting map

コードスニペット:

var panorama; 
 

 
function initialize() { 
 
    panorama = new google.maps.StreetViewPanorama(
 
    document.getElementById('street-view'), { 
 
     position: { 
 
     lat: 37.869260, 
 
     lng: -122.254811 
 
     }, 
 
     pov: { 
 
     heading: 165, 
 
     pitch: 0 
 
     }, 
 
     zoom: 1 
 
    }); 
 
    var Links = panorama.getLinks(); 
 
    console.log(Links); 
 
    google.maps.event.addListener(panorama, 'status_changed', function() { 
 
    var status = panorama.getStatus(); 
 
    if (status == "OK") { 
 
     var htmlStr = "<b>Links:</b><br>"; 
 
     var Links = panorama.getLinks(); 
 
     console.log(Links); 
 
     for (var i = 0; i < Links.length; i++) { 
 
     htmlStr += Links[i].heading.toFixed(3) + ":" + Links[i].description + "<br>"; 
 
     } 
 
     document.getElementById('links').innerHTML = htmlStr; 
 
    } else { 
 
     alert("panorama status="+panorama.getStatus()); 
 
    } 
 
    }); 
 
}
html, 
 
body { 
 
    height: 100%; 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 

 
#street-view { 
 
    height: 100%; 
 
}
<!-- 
 
modified from: 
 
https://developers.google.com/maps/documentation/javascript/examples/streetview-embed 
 
--> 
 
<div id="links"></div> 
 
<div id="street-view"></div> 
 
<script async defer src="https://maps.googleapis.com/maps/api/js?callback=initialize"></script>

関連する問題