2010-09-29 5 views
5

Tengo una aplicación web que utiliza Google Maps JavaScript API V3 para mostrar un mapa de Google y StreetView uno al lado del otro. Cuando el mapa cambia de posición, le dice a Street View que lo siga usando StreetViewPanorama.setPosition().Compruebe la disponibilidad de StreetView con Google Maps API de JavaScript V3

Sin embargo, cuando me desplazo por el mapa a un lugar donde StreetView no está disponible, la imagen de Street View permanece atascada en la última ubicación. Su método getPosition() devuelve el mismo LatLng que el mapa maestro.

¿Cómo puedo saber si me he mudado a un lugar donde StreetView no esté disponible?

Respuesta

2

OK, encontré una respuesta, si no es la respuesta.

Después de cada movimiento, use StreetViewService.getPanoramaByLocation() para obtener el panorama más cercano dentro de N metros. En función de eso, puedes quedarte donde estás, moverte o establecer Visible (falso).

He utilizado una bandera y un SetTimer para evitar un montón de llamadas innecesarias a getPanoramaByLocation así:

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); 
}; 
+0

http://code.google.com/apis/maps/documentation/javascript/reference.html# StreetViewService –

+0

Un problema con este enfoque es que cada llamada a getPanoramaByLocation devuelve ~ 2Mb de datos que nunca se descartan por lo que su página web se volverá inestable y se bloqueará rápidamente. Se recomienda encarecidamente limitar las llamadas a getPanoramaByLocation. Sin embargo, no existe un método alternativo para determinar la disponibilidad de panoramas. – user1813319

Cuestiones relacionadas