2016-04-11 9 views
0

addressComponentsの初期化と更新では、国名と州名を完全に取得できません。私は短い名前を取得していますが、私は州と国のlong_nameを解析して検索したいと思います。GoogleマップのaddressComponentsの解析

JS

function updateControls(addressComponents) { 

    $('#ustate').val(addressComponents.stateOrProvince); 

    $('#ucountry').val(addressComponents.country); 
} 

$('#mapz').locationpicker({ 
    location: { 
     latitude: 45.91886765642549, 
     longitude: -77.57585875078735 
    }, 
    radius: 300, 

    inputBinding: { 
     locationNameInput: $('#pac-input'), 
    }, 
    enableAutocomplete: true, 
    onchanged: function(currentLocation, radius, isMarkerDropped) { 
     var addressComponents = $(this).locationpicker('map').location.addressComponents; 
     updateControls(addressComponents); 
    }, 
    oninitialized: function(component) { 
     var addressComponents = $(component).locationpicker('map').location.addressComponents; 
     updateControls(addressComponents); 
    } 
}); 

HTML:

<div style="width: 900px !important; height:300px !important" id="mapz"></div> 

<input autocomplete="off" placeholder="Search Box" id="pac-input" class="text_field" type="text"> 

<input type="text" name="ucountry" id="ucountry" size="45" value="" class="text_field" /> 

<input type="text" name="ustate" id="ustate" maxlength="75" class="text_field" /> 

答えて

0

あなたは以下のコードから国を得ることができます。

function getState(addrComponents) { 
      for (var i = 0; i < addrComponents.length; i++) { 
       if (addrComponents[i].types[0] === "administrative_area_level_1") { 
        console.log(addrComponents[i].long_name); 
        return addrComponents[i].long_name; 
       } 
      } 
     } 
:状態については

function getCountry(addrComponents) { 
     for (var i = 0; i < addrComponents.length; i++) { 
      if (addrComponents[i].types[0] === "country") { 
       console.log(addrComponents[i].long_name); 
       return addrComponents[i].long_name; 
      } 
      if (addrComponents[i].types.length === 2) { 
       if (addrComponents[i].types[0] === "political") 
       { 
        console.log(addrComponents[i].long_name); 
        return addrComponents[i].long_name; 
       } 
      } 
     } 
    } 

以下の機能を使用します

+0

仲間はいません。console.logの代わりに警告を出しました。また、グローバル変数に長い名前を保存しようとしましたが、何も取得できません。可能であれば私のコードを編集することができます –

+0

フィドルを作成し、私はそれを参照してください – ihimv

+0

私はフィドルを作成したが、マップを表示することができません。 https://jsfiddle.net/kishorejv/md1L2285/1/#&togetherjs=Kcx0lHtCv7 –

関連する問題