2013-01-15 5 views
-1

실제 위치를 알지 못하고 streetview 이미지가있는지도에서 위치의 latlong을 계산해야하는 특이한 문제에 직면하고 있습니다.streetview에서 사용할 가까운 거리 계산

나는 내 사용자의 최종 목적지를 알고 있지만, 거리보기 이미지가 있고 시작 목적지로 사용하는 가까운 위치 (대략 1km 이상 떨어져 있어야 함)의 latlong을 계산해야합니다.

예를 들어 타임스 스퀘어로 가야한다는 것을 알고 있지만 도로로 약 1km 떨어진 출발지를 갖고 싶습니다. 그런 다음 시작 지점이라고 결정하기 전에이 좌표에 대한 거리보기 이미지가 있는지 확인해야합니다.

답변

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

+0

이 정말 우아한 해결책처럼 보인다. 데모 주셔서 감사합니다. 다른 문제를 해결하면 테스트 해 보겠습니다. http://stackoverflow.com/questions/14338256/how-to-update-this-street-view-example-to-maps-api-v3 – Dean