计算附近街道以在街景上使用

时间:2013-01-15 07:57:26

标签: google-maps-api-3

我正面临一个不寻常的问题,我需要在不知道实际位置的情况下计算具有街景图像的地图上的位置的latlong。

我知道我的用户的最终目的地,但我需要计算附近位置(大约1公里或更短,这应该是可变的)的latlong,它具有街景图像并将其用作起始目的地。

一个例子就是我知道我需要去时代广场,但我希望有一个距离公路约1公里的起点。然后我需要在确定它是起点之前验证该坐标是否有街景图像。

1 个答案:

答案 0 :(得分:1)

下面的函数以递归方式将搜索距离加倍(最多10000米),直到找到全景图。

示例代码:

// Global vars
var G = google.maps;
var streetViewService = new G.StreetViewService();

function getNearSVP(latlon,maxDist) {
    streetViewService.getPanoramaByLocation(latlon, maxDist, function(data, status) {
        if (status == google.maps.StreetViewStatus.OK) {
            return data.location.latLng;
        }
        else{
            if (maxDist < 10000){
                maxDist = maxDist * 2;
                return getNearSVP(latlon, maxDist);
            }
            else {
                alert('StreetView is not available within '+maxDist+' meters of this location');
            }
        }
    });

}

Live demo here