Google地图限制不起作用?

时间:2017-07-12 16:28:45

标签: javascript google-maps google-maps-api-3

我正在尝试使用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,感谢您的帮助。

1 个答案:

答案 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) {