2010-11-10 2 views
1

J'utilise ipinfodb.com pendant un certain temps pour obtenir le Latitude et Longitude de l'IP de l'utilisateur pour voir le google streetview. Mais récemment, ipinfodb a changé sa base de données, et la plupart des valeurs de latitude/longitude sont modifiées, à cause de cela je ne comprends pas le streetview. J'utilise "Google Maps JavaScript API V3 Services", mais je ne suis pas sûr de savoir comment GoogleStreetview prochaine et la plus proche possible. Pourriez-vous s'il vous plaît suggérer.Next & Google Streetview le plus proche pour un IP donné ou Latitude/Longitude

Cordialement

Répondre

5

L'API a une méthode getPanoramaByLocation dans StreetViewService Class

Voici un exemple de la façon d'obtenir un streetview dans un rayon donné autour de la position latlng donnée, notez que si le rayon est inférieur à 50 mètres le panorama le plus proche sera retourné

var streetViewService = new google.maps.StreetViewService(); 
streetViewService.getPanoramaByLocation(latLng, radius, function(data, status) 
{ 
    if (status == google.maps.StreetViewStatus.OK) 
    { 
     var nearStreetViewLocation = data.location.latLng;    
     //... 
    } 
});   
+0

solution Neat (+1) ;-) – Marcelo

+3

Cela ne veut pas la solution la plus proche:: Donc, si vous avez plusieurs points (certains très proches, quelques-uns vraiment loin) alors je continue à utiliser itération si vous prolongez le rayon (à savoir 2000) Vous n'obtenez pas le point de vue le plus proche. – Tiit

2

rayon ne garantit pas le point de vue de la rue la plus proche. Par exemple: si le point de vue est à 10m mais que vous définissez votre rayon sur 1000, le plus proche n'est pas sélectionné. trouver

var streetViewService = new google.maps.StreetViewService(); 
var radius = 10; 

streetViewService.getPanoramaByLocation(latLng, radius, handler); 

function handler(data, status) { 
    if (status == google.maps.StreetViewStatus.OK) { 
     var nearStreetViewLocation = data.location.latLng;    
     //... 
    } else { 
     radius += 50; 
     streetViewService.getPanoramaByLocation(latLng, radius, handler); 
    } 
}; 
Questions connexes