我在使用jQuery UI小部件时遇到问题,无法自动填充地址:
https://github.com/sgruhier/jquery-addresspicker
我试图仅限制一个国家/地区的自动完成提示(或者,至少,更喜欢一个国家/地区) - 波兰。
在例子中 - 我正在寻找“克拉科夫”。 [波兰克拉科夫]
我正在打字: “克拉” 并且有以下提示:
Krae,Tajlandia(泰国)
Kerang Airport(KRA),Kerang Wiktoria 3579,Australia
我必须输入'Krakó'才能得到适当的提示:
我不需要与泰国,美国,法国等城市进行自动填充 - 我需要来自波兰的城市。
设置区域(http://maps.google.com/maps/api/js?sensor=false®ion=pl)或地址/边界仅影响查询结果,而不影响自动完成提示。
你能给我任何建议吗?
答案 0 :(得分:0)
如果有人遇到类似问题 - 我使用Google商家信息自动填充程序解决了我的问题:
https://developers.google.com/maps/documentation/javascript/places?hl=pl#places_autocomplete
var input = document.getElementById('searchTextField');
var options = {
types: ['(cities)'],
componentRestrictions: {country: 'pl'}
};
autocomplete = new google.maps.places.Autocomplete(input, options);
这不是一个好的解决方案,但总比没有好。
答案 1 :(得分:0)
你必须在_geocode函数中过滤结果 你迭代结果对象,以找到type ==“country”& shortname ==您的国家/地区代码,您只接受符合此条件的那个
这是我为法国地址修改的功能,它有点脏但是有效
// Autocomplete source method: fill its suggests with google geocoder results
_geocode: function(request, response) {
var address = request.term, self = this;
this.geocoder.geocode({
'address': address + this.options.appendAddressString,
'region': this.options.regionBias
}, function(results, status) {
var fr_results= [];
if (status == google.maps.GeocoderStatus.OK) {
for (var i = 0; i < results.length; i++) {
results[i].label = results[i].formatted_address;
for (var j = 0; j<results[i].address_components.length; j++)
{
//console.log(results[i]);
if ((results[i].address_components[j].types[0] =="country") && (results[i].address_components[j].short_name =="FR"))
{
//console.log(results[i].address_components[j].short_name);
results[i].label = results[i].formatted_address;
//fr_results[i] = results[i];
fr_results.push(results[i]);
}
}
};
}
//console.log(results);
//console.log(fr_results);
response(fr_results);
})
},
如果有人有最好的方法,我会接受它:)
HF 分克