14

Google Maps API を使用して、都市と国のオートコンプリート リスト (その他の詳細なし) を取得していますが、非常にうまく機能します。

var input = document.getElementById('newAddress');
    var options = {
        types: ['(cities)']
    };

    autocomplete = new google.maps.places.Autocomplete(input, options);

今、私はまったく同じことをしたいのですが、国の名前だけを取得したいのです。...に置き換えるようなtypes: ['(cities)'] もの (試してみたがうまくいかなかったもの)types: ['(countries)']

オートコンプリートに国のみを取得するにはどうすればよいですか?

4

4 に答える 4

24

Google Autocomplete API を少しいじってみましたが、結果を国のみに制限するための最良の解決策は次のとおりです。

var autocomplete = new google.maps.places.Autocomplete(input, options);
var result = autocomplete.getPlace();
console.log(result); // take a look at this result object
console.log(result.address_components); // a result has multiple address components

for(var i = 0; i < result.address_components.length; i += 1) {
  var addressObj = result.address_components[i];
  for(var j = 0; j < addressObj.types.length; j += 1) {
    if (addressObj.types[j] === 'country') {
      console.log(addressObj.types[j]); // confirm that this is 'country'
      console.log(addressObj.long_name); // confirm that this is the country name
    }
  }
}

返された結果オブジェクトを見ると、住所のさまざまな部分を表す複数のオブジェクトを含む address_components 配列があることがわかります。これらの各オブジェクト内には、'types' 配列が含まれ、この 'types' 配列内には、国を含む、住所に関連付けられたさまざまなラベルが表示されます。

于 2014-06-10T15:52:53.130 に答える
11

Google は ['(都市)'] と ['(地域)'] の 2 つのタイプのコレクションしか提供していないため、簡単な解決策はありません。

利用可能な ['(countries)'] はありません。

ドキュメントはこちら: https://developers.google.com/places/documentation/autocomplete#place_types

編集:

別の方法として、次の URL から取得したオートコンプリート プラグインを使用することもできます: http://www.geognos.com/api/en/countries/info/all.json

于 2012-10-16T15:52:05.723 に答える