Javascript 谷歌地图API没有使用区域提示

Javascript 谷歌地图API没有使用区域提示,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我在告诉GoogleMapsAPI将地理编码服务的结果限制在特定区域时遇到了问题 下面是重现该问题的一个简单示例: JavaScript代码非常简单: $(document).ready(function () { var geocoder = new google.maps.Geocoder(); $("#name").autocomplete({ source: function (request, response) { geocod

我在告诉GoogleMapsAPI将地理编码服务的结果限制在特定区域时遇到了问题

下面是重现该问题的一个简单示例:

JavaScript代码非常简单:

$(document).ready(function () {
    var geocoder = new google.maps.Geocoder();
    $("#name").autocomplete({
        source: function (request, response) {
            geocoder.geocode({ 'address': request.term, 'region': 'it' }, function (results, status) {
                response($.map(results, function (item) {
                    return {
                        value: item.formatted_address
                    }
                }));
            })
        }
    });
});
我还将API URL指定为
http://maps.google.com/maps/api/js?region=it&language=it&sensor=false
除了请求中的
“区域”:“it”

问题是谷歌返回的地址不限于(也不暗示)意大利

例如,如果您搜索
mil
Milano
)我会得到
Circondario di Miltenberg,Germania
Milion,Alemdar Mh.,34122伊斯坦布尔/伊斯坦布尔省,Turchia
reka mil',Sacha Jacuzia,俄罗斯

它返回的结果(也只有三个?)来自世界各地,而意大利却一无所获(即使有多个城市匹配
mil

我做错了什么

作为旁注,是否可以将搜索仅限于城市,而不限于完整地址


提前感谢。

听起来你真的应该使用Google Places自动完成API或Google地图API

地理编码服务不是为自动完成查询而设计的,也不会返回您想要的结果。区域参数是一个提示,就像你说的,但它不是一个限制,所以如果意大利没有合适的“mil”,或者其他地方有更好的匹配,你会得到这些结果


没有办法将结果仅限于城市。

如果您在jQuery UI中使用Google geocoder autocomplete,您可以在UI.geo_autocomplete.js的第46行编辑一行,然后添加您的地区。它不是100%精确,但会减少找到的地址数:

this.options._geocoder.geocode({'address': _address}, function(_results, _status)
替换为:

this.options._geocoder.geocode({'address': _address + ' YOUR_REGION_HERE'}, function(_results, _status)