2010-09-16 5 views
1

Je montre une carte Google basée sur une adresse de rue fournie à partir d'une source extérieure.Puis-je savoir si un emplacement sur Google Maps n'est pas trouvé lors de l'utilisation de cette méthode paresseuse?

Mon JavaScript est très simple, et je construis le lien comme si

var googleMap = 'http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=' + address + '&ie=UTF8'; 

C'est rapide et facile, et les travaux. Mais certaines des adresses entrantes ne sont pas exactement des adresses (elles incluent des trucs qui ne devraient pas être là).

Lorsque Google Maps ne peut pas faire la tête ou la queue du address, il affiche par défaut une carte des États-Unis. Malheureusement, je suis en Australie.

Est-il possible d'utiliser cette méthode paresseux pour savoir si Google Maps ne pouvait pas correspondre à l'adresse, ou puis-je montrer par défaut Australie?

... ou dois-je regarder l'API?

Répondre

1

Qu'en est-il en utilisant maps.google.com.au? Notez que les paramètres peuvent être un peu différents.

http://maps.google.com.au/maps?q=Melbourne

http://maps.google.com.au/maps?q=Something-Garbage-That-Does-Not-Exist

Vous pouvez également utiliser le Maps API, comme vous le suggérez. Quelque chose comme ça serait très facile à faire:

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
    <title>Google Maps Geocoding Default Location</title> 
    <script src="http://maps.google.com/maps/api/js?sensor=false" 
      type="text/javascript"></script> 
</head> 
<body> 
    <div id="map" style="width: 400px; height: 300px;"></div> 

    <script type="text/javascript"> 

    var address = 'Melbourne, Australia'; 

    var map = new google.maps.Map(document.getElementById('map'), { 
     mapTypeId: google.maps.MapTypeId.TERRAIN, 
     center: new google.maps.LatLng(-25.50, 135.00), 
     zoom: 3 
    }); 

    var geocoder = new google.maps.Geocoder(); 

    geocoder.geocode({ 
     'address': address 
    }, 
    function(results, status) { 
     if(status == google.maps.GeocoderStatus.OK) { 
     new google.maps.Marker({ 
      position: results[0].geometry.location, 
      map: map 
     }); 
     map.setCenter(results[0].geometry.location); 
     } 
    }); 

    </script> 
</body> 
</html> 

Screenshot:

Google Maps Geocoding Default Location

Et une autre capture d'écran si vous deviez utiliser address = 'Something Garbage That Does Not Exist':

Google Maps Geocoding Default Location

+0

Merci, cela a fonctionné ! :) – alex

Questions connexes