2010-09-29 18 views
5

Ho una webapp che utilizza l'API JavaScript V3 di Google Maps per visualizzare una normale googlemap e una StreetView fianco a fianco. Quando la mappa cambia posizione, indica a Streetview di seguirla utilizzando StreetViewPanorama.setPosition().Verifica disponibilità StreetView con Google Maps API JavaScript V3

Tuttavia, quando si scorre la mappa in un punto in cui StreetView non è disponibile, l'immagine di Streetview rimane bloccata nell'ultima posizione. Il suo metodo getPosition() restituisce lo stesso LatLng della mappa master.

Come posso sapere se mi sono spostato in un luogo in cui StreetView non è disponibile?

risposta

2

OK, ho trovato una risposta, se non la risposta.

Dopo ogni spostamento, utilizzare StreetViewService.getPanoramaByLocation() per ottenere il panorama più vicino entro N metri. Sulla base di ciò puoi rimanere dove sei, muoverti o setVisible (false).

Ho usato una bandiera e un SetTimer per evitare un sacco di chiamate inutili per getPanoramaByLocation in questo modo:

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 questo approccio è che ogni chiamata a getPanoramaByLocation restituisce ~ 2Mb di dati che non vengono mai eliminati così la tua pagina Web diventerà rapidamente instabile e in crash. Limitare le chiamate a getPanoramaByLocation è fortemente incoraggiato. Tuttavia, non esiste un metodo alternativo per determinare la disponibilità di panorami. – user1813319

Problemi correlati