0

アドレスを自動補完する jQuery UI ウィジェットに問題があります。

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

オートコンプリートのヒントを 1 つの国 (または、少なくとも 1 つの国を優先する) のみに制限しようとしています - ポーランド。

たとえば、「Kraków」を検索しています。【クラクフ、ポーランド】

「Kra」と入力すると、次のようなヒントがあります。

  • クラエ、タランディア(タイ)

  • Kerang Airport (KRA), Kerang Wiktoria 3579, オーストラリア

適切なヒントを得るには、「Krakó」と入力する必要があります。

  • クラクフ、ポルスカ (ポーランド)

タイ、アメリカ、フランスなどの都市でオートコンプリートする必要はありません。ポーランドの都市が必要です。

地域 (http://maps.google.com/maps/api/js?sensor=false®ion=pl) または住所/境界の設定は、オートコンプリート ヒントではなく、クエリ結果にのみ影響します。

何かアドバイスをいただけますか?

4

2 に答える 2

0

type=="country" & shortname==your country code を見つけるために、結果オブジェクトで反復する _geocode 関数で結果をフィルタリングする必要があり、この条件を満たすもののみを取得します

ここにフランスの住所用に変更した関数があります。少し汚れていますが、機能します

// 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 dg

于 2012-07-22T14:20:41.887 に答える
0

誰かが同様の問題を抱えている場合 - Google Places Autocomplete を使用して解決しました:

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);

これは優れた解決策ではありませんが、何もしないよりはましです。

于 2012-07-05T14:44:30.583 に答える