谷歌地图API V3 - 最近的街景视图

13

当某个位置没有街景时,我希望找到最近可能的具有街景的位置?

我能想到的唯一方法是:

radius = 0;
noOfPoints = 3;

while(radius < 10 miles){

    radius = radius + 0.2 miles
    points = calculate 4 * noOfPoints at this radius

    loop(points)
    {
       if(streetview visibile for point)
          bingo, break;
    }

    break if bingo;

    noOfPOints = noOfPoints+1;

}

但是,即使我想在10英里的范围内找到街景,并且希望能够在其中一个点上找到街景,这样做的成本也是非常昂贵的。换句话说,我可能会错过一个真正具有街景的点。

请问是否有更好的方法?

1个回答

12
您可以尝试使用StreetViewService来帮助您找到最近的街景视图:
var astorPlace = new google.maps.LatLng(40.729884, -73.990988);
var webService = new google.maps.StreetViewService();  
/**Check in a perimeter of 50 meters**/ 
var checkaround = 50;
/** checkNearestStreetView is a valid callback function **/

webService.getPanoramaByLocation(astorPlace,checkaround ,checkNearestStreetView);

function checkNearestStreetView(panoData){
    if(panoData){

         if(panoData.location){

            if(panoData.location.latLng){
                /**Well done you can use a nearest existing street view coordinates**/
            }
        }
    }
    /** Else do something... **/
}

2
这并不会给出最接近该点的地方 :( 如果您定义了半径,例如1000,则会得到一个比可能更远的点.. - Tiit
1
它不提供最近的街景。半径越大,获得的街景就越不准确。 - Lwin Htoo Ko
@Iwinhtooko,你要怎么获取最近的呢? - gkdm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接