jquery-addresspicker - 限制一个国家/地区的自动完成提示

时间:2012-06-19 11:23:29

标签: php jquery jquery-ui jquery-autocomplete

我在使用jQuery UI小部件时遇到问题,无法自动填充地址:

https://github.com/sgruhier/jquery-addresspicker

我试图仅限制一个国家/地区的自动完成提示(或者,至少,更喜欢一个国家/地区) - 波兰。

在例子中 - 我正在寻找“克拉科夫”。 [波兰克拉科夫]

我正在打字: “克拉” 并且有以下提示:

  • Krae,Tajlandia(泰国)

  • Kerang Airport(KRA),Kerang Wiktoria 3579,Australia

我必须输入'Krakó'才能得到适当的提示:

  • Kraków,Polska(波兰)

我不需要与泰国,美国,法国等城市进行自动填充 - 我需要来自波兰的城市。

设置区域(http://maps.google.com/maps/api/js?sensor=false&region=pl)或地址/边界仅影响查询结果,而不影响自动完成提示。

你能给我任何建议吗?

2 个答案:

答案 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 分克