2017-08-17 33 views
0

その場所の緯度と経度から位置の郵便番号を表示します。以下は私のコードです。javascriptの緯度と経度から郵便番号を取得

function markerLocation() { 
    var currentLocation = marker.getPosition(); 
    var geocoder = new google.maps.Geocoder();   
    var location = new google.maps.LatLng(currentLocation.lat(), currentLocation.lng()); 

    geocoder.geocode({ 'latLng': location , function (results, status) { 
    if (status == google.maps.GeocoderStatus.OK) { 
     var add = results[0].address_components[1][1]; 
     document.getElementById('lat').value = add; 
    } 
    }); 

ここでは、緯度で郵便番号を示したいとします。しかし、私はaddress_componentsを使用するとき、それは未定義を示しています。親切にお手伝いください。

+0

どこPHPはここですか? 'results'配列の内容を表示します。 – Script47

+0

https://stackoverflow.com/questions/38669434/reading-json-data-from-google-geocoding-api-with-jqueryこれはあなたを助けるかもしれません。 –

+0

postal_code型のaddress_componentsエントリを見つけるために結果を解析する必要があります。結果は必ずしも 'results [0] .address_components [1] [1]'ではありません。 – geocodezip

答えて

0

これを試してみてください:

<input id="postal_code"/> 
<input id="street"/> 
... 

スクリプト

if (status == google.maps.GeocoderStatus.OK) { 
for(var i in results[0].address_components) { 
    // skip items with no types 
    if(typeof results[0].address_components[i].types == 'undefined') { 
    continue; 
    } 

    if(results[0].address_components[i].types.indexOf('postal_code') > -1) { 
    document.getElementById('postal_code').value = results[0].address_components[i].long_name; 
    } 
    if(results[0].address_components[i].types.indexOf('street') > -1) { 
    document.getElementById('street').value = results[0].address_components[i].long_name; 
    } 
    ... 
} 
} 
関連する問題