我正在尝试使用Google Maps API和普通Javascript验证输入地址。我的想法是找到输入地址的纬度和经度,然后将其限制在特定国家(在我的情况下,法国)。否则,显示错误。
我有以下代码:
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.");
}
});
}
我的代码正在运行,但如果我输入的地址不在法国境内,它仍然会显示一个有效的法语地址。
例如,如果我输入26 Leicester Square, London
,它仍会显示有效的法语地址。这是我第一次使用Google Maps API,感谢您的帮助。
答案 0 :(得分: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) {