2017-11-17 7 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지도 자바 스크립트 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>