Google maps api 3 计算要在街景中使用的附近街道

Google maps api 3 计算要在街景中使用的附近街道,google-maps-api-3,Google Maps Api 3,我面临一个不寻常的问题,我需要在不知道实际位置的情况下计算街景图像地图上某个位置的latlong 我知道我的用户的最终目的地,但我需要计算附近有街景图像的位置(大约1公里或更少,这应该是可变的)的latlong,并将其用作起始目的地 举个例子,我知道我需要去时代广场,但我想有一个出发点,大约1公里远的公路。然后,我需要验证此坐标是否有街景图像,然后才能确定它是起点。下面的函数递归地将搜索距离加倍(最多10000米),直到找到全景 示例代码: // Global vars var G = goog

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

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


举个例子,我知道我需要去时代广场,但我想有一个出发点,大约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');
            }
        }
    });

}
//全局变量
var G=google.maps;
var streetViewService=新的G.streetViewService();
函数getNearSVP(latlon,maxDist){
streetViewService.getPanoramaByLocation(latlon、maxDist、函数(数据、状态){
if(status==google.maps.StreetViewStatus.OK){
返回data.location.latLng;
}
否则{
如果(最大距离<10000){
maxDist=maxDist*2;
返回getNearSVP(latlon,maxDist);
}
否则{
警报(“此位置“+maxDist+”米范围内的街景不可用”);
}
}
});
}

这看起来是一个非常优雅的解决方案。谢谢你的演示。我将在解决其他问题后对此进行测试: