2017-07-12 46 views
0

我在嘗試使用Google Maps API和純Javascript來驗證輸入地址。我的想法是找到輸入地址的緯度和經度,然後將其限制在特定的國家(在我的情況下是法國)。否則,顯示一個錯誤。Google地圖限制不起作用?

我有以下代碼:

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."); 
     } 
    }); 
} 

我的代碼工作,但如果我輸入這是法國以外的地址,但它仍然顯示我的有效法國地址。

例如,如果我輸入​​,它仍會顯示我一個有效的法語地址。這是我第一次使用Google Maps API,我很感激任何幫助。

回答

1

該限制需要成爲您對geocode功能請求的一部分。在回調函數中不是可選參數。

變化:

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

要:

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