2017-07-12 8 views
0

Ich versuche eine Eingabeadresse mit dem Google Maps API und Javascript zu validieren. Meine Idee war, die Breiten- und Längengrade für die Eingabeadresse zu finden und sie dann auf ein bestimmtes Land (in meinem Fall Frankreich) zu beschränken. Andernfalls wird ein Fehler angezeigt.Google-Karteneinschränkungen funktionieren nicht?

Ich habe den folgenden Code:

function validateInputMeans() { 
    var address = prompt("Please Enter Address"); 
    var options = { 
     componentRestrictions: { country: 'FR' } 
    }; 
    var geocoder = new google.maps.Geocoder(); 
    geocoder.geocode({ 'address': address }, function (results, status,options) { 
     if (status == google.maps.GeocoderStatus.OK) { 
      var latitude = results[0].geometry.location.lat(); 
      var longitude = results[0].geometry.location.lng(); 

      alert("Address Entered is valid French Address."); 
     } 
     else{ 
      alert("Invalid Address. Please Try-Again."); 
     } 
    }); 
} 

Mein Code funktioniert, aber wenn ich eine Adresse eingeben, die außerhalb von Frankreich, es zeigt mir immer noch eine gültige Französisch-Adresse.

Zum Beispiel, wenn ich 26 Leicester Square, London eingeben, zeigt es mir immer noch eine gültige französische Adresse. Dies ist das erste Mal, dass ich mit dem Google Maps-API arbeite und freue mich über jede Hilfe.

Antwort

1

Die Einschränkungen müssen Teil Ihrer Anfrage an die geocode Funktion sein. Kein optionales Argument in der Callback-Funktion.

Wechsel:

var options = { 
    componentRestrictions: { country: 'FR' } 
}; 
var geocoder = new google.maps.Geocoder(); 
geocoder.geocode({ 'address': address }, function (results, status,options) { 

An:

var options = { 
    address: address, 
    componentRestrictions: { country: 'FR' } 
}; 
var geocoder = new google.maps.Geocoder(); 
geocoder.geocode(options, function (results, status) {