使用Google Maps JavaScript API V3查看StreetView可用性

时间:2010-09-29 12:49:59

标签: google-maps-api-3

我有一个使用Google Maps JavaScript API V3的webapp并排显示常规googlemap和StreetView。当地图改变位置时,它会告诉街景使用StreetViewPanorama.setPosition()跟随它。

但是,当我将地图滚动到没有StreetView的地方时,街景图像会停留在最后一个位置。它的getPosition()方法返回与主映射相同的LatLng。

如何判断我是否已搬到街景无法使用的地方?

1 个答案:

答案 0 :(得分: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);
};