Javascript 谷歌地图API没有使用区域提示
我在告诉GoogleMapsAPI将地理编码服务的结果限制在特定区域时遇到了问题 下面是重现该问题的一个简单示例: JavaScript代码非常简单: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
$(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)