2012-01-20 21 views
2

私は現在、GoogleマップAPIを使用して地図上の場所をジオコードし、通りの住所を返します。Googleマップのジオコードから住所タイプを返す方法は?

私は現在、次のコードでアドレスを返す:

 function codeLatLng(markerPos) { 
      geocoder.geocode({'latLng': markerPos}, function(results, status) { 
       if (status == google.maps.GeocoderStatus.OK) { 
       if (results[1]) { 
       //Set markerAddress variable 
       var markerAddress = results[0].formatted_address; 
alert(markerAddress); 
... 

しかし、私は、アドレスコンポーネントタイプを使用してフォーマットされたアドレスが、より詳細なバージョンを返すようにしたくない場合は、どのように私は、特定のアドレスを返すことができます値は次のとおりです。http://code.google.com/apis/maps/documentation/geocoding/#Types

答えて

3

私はなぜあなたはresults[1]をチェックされ、その後、results[0]を使用して(または、それは私が無視すべきであるだけでタイプミスです)、聞いてもいいですか?

statusOKである限り、少なくともの結果がになります。 statusZERO_RESULTSとなります。

とにかく、あなたはこのようなものを使用することができます。

function codeLatLng(markerPos) { 
    geocoder.geocode({'latLng': markerPos}, function(results, status) { 
    if (status == google.maps.GeocoderStatus.OK) { 
     var markerAddress = results[0].address_components[0].long_name 
      + ' (type: ' + results[0].address_components[0].types[0] + ')'; 
     alert(markerAddress); 

あなたは全体address_components配列との多くを再生することができ、楽しみがあります! :)

のためには、さらに多くの楽しみは、... http://gmaps-samples-v3.googlecode.com/svn/trunk/geocoder/v3-geocoder-tool.html

1

long_nameは、ジオコーダによって返されるアドレスコンポーネントの全文の説明または名前です。

function codeLatLng(markerPos) { 
       geocoder.geocode({'latLng': markerPos}, function(results, status) { 
        if (status == google.maps.GeocoderStatus.OK) { 
        if (results[1]) { 
        //Set markerAddress variable 
        var markerAddress = results[0].long_name; 
    alert(markerAddress); 
... 
+0

HMMでジオコーダツールv3のGoogleマップAPI(のソースコード)を見ている「未定義」は任意の他のアイデアなどのアラート – hairynuggets

関連する問題