9

Google Maps API V3 の autocompleteservice を使用して、カスタムのオートコンプリート入力を作成しています。基本的に、この関数を呼び出して都市の提案を取得します。

function getPlaces(st){
    gService.getQueryPredictions({input:st,types:['geocode']},function(predictions,status)      {
        if(status != google.maps.places.PlacesServiceStatus.OK) return false;
        for(var i = 0, prediction; prediction = predictions[i]; i++){
            console.log(prediction);
        }
        return predictions;
    });
}

これはうまく機能していますが、都市に関連付けられた郵便番号を取得したいと考えています。V2 API と同様に、この例を参照してください。

タイプオプションを都市に変更しようとしましたが、結果は同じです。それを行う方法はありますか?

4

3 に答える 3

1

次のコード スニペットを確認してください。

    var geocoder;
var map;
function initialize() {  
  var input = document.getElementById('id_address');
  var options = {
    types: ['address'],
    componentRestrictions: {
      country: 'in'
    }
  };

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

  google.maps.event.addListener(autocomplete, 'place_changed', function() {
    var place = autocomplete.getPlace();
    
    for (var i = 0; i < place.address_components.length; i++) {
      for (var j = 0; j < place.address_components[i].types.length; j++) {
        if (place.address_components[i].types[j] == "postal_code") {
          document.getElementById('postal_code').innerHTML = place.address_components[i].long_name;

        }
      }
    }
  })
}
google.maps.event.addDomListener(window, "load", initialize)
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDxcRPSsACIjdvMWRcfJBMzp4pKQXPJjj0&libraries=places"></script>
<input id="id_address" type="text" value="" />
<div id="postal_code"></div>

于 2016-09-03T09:08:59.860 に答える
0

新しいAPIでは、AutocompleteServiceは、これまでに入力したテキストに一致する推測された文字列のみを検索します。アドレスやその他のデータを含む実際のPlaceオブジェクトにアクセスするには、autocomplete()関数をテキストボックスにアタッチしたときに作成されるAutocompleteオブジェクトを使用する必要があります。こちらのドキュメントをご覧ください:https ://developers.google.com/maps/documentation/javascript/places#getting_place_information

于 2012-12-12T03:01:05.390 に答える