2010-09-29 45 views
5

我有一個使用Google Maps JavaScript API V3的web應用程序可以並排顯示普通的googlemap和StreetView。當地圖改變位置時,它會告訴街景使用StreetViewPanorama.setPosition()跟蹤它。使用Google Maps JavaScript API V3檢查StreetView的可用性

但是,當我將地圖滾動到某個StreetView不可用的位置時,街景圖像仍停留在最後一個位置。它的getPosition()方法返回與主映射相同的LatLng。

如何判斷我是否已移動到StreetView不可用的地方?

回答

2

好的,我找到了答案,如果不是的答案。

每次移動後,使用StreetViewService.getPanoramaByLocation()獲取N米內最近的全景圖。基於此,您可以留在原地,移動或setVisible(false)。

我用了一個標誌和SetTimer的,以防止不必要的很多電話來getPanoramaByLocation這樣的:

var check_availability_lock = false; 
var check_availability = function() { 
    if (check_availability_lock) { 
     return; 
    } 
    check_availability_lock = true; 
    var availability_cb = function(data, status) { 
     check_availability_lock = false; 
     // console.log("status = ", status); 
     if (status !== 'OK') { 
      map.setVisible(false); 
     } 
     else { 
      map.setVisible(true); 
     } 
    } 
    setTimeout(function(){ 
     var latlng = map.getPosition(); 
     svc.getPanoramaByLocation(latlng, 50, availability_cb); 
    }, 2000); 
}; 
+0

http://code.google.com/apis/maps/documentation/javascript/reference.html# StreetViewService – 2010-09-30 14:50:06

+0

這種方法的一個問題是,每次調用getPanoramaByLocation都會返回〜2Mb的數據,這些數據永遠不會丟失,因此您的網頁將很快變得不穩定並且崩潰。強烈建議將調用限制爲getPanoramaByLocation。但是,沒有其他方法可以確定全景圖的可用性。 – user1813319 2012-11-09 20:20:31

相關問題