2011-06-22 4 views
1

私はGeoCoderとAddressを使用したので、GeoCoderとAddressを使用してAddressオブジェクトを印刷しようとしましたが、次のようになりました。Android:アドレス(GeoCodeから)には固定フォーマットがありますか?

(私は偽のデータを使用しました。私のデバイスで受け取った本物)

アドレス[addressLines = [0: "123 ABC St"、1: "メルボルンVIC 1234"、2: "オーストラリア"]、機能= 123、admin =オーストラリア、hasLatitude = true、latitude = -123.321、hasLongitude = true、longitude = 123.321、phone = null、url = null、admin = null、locality =メルボルン、ABC St、postalCode = 1234、countryCode =エクストラ=ヌル]

今私は疑問に思っていますその:

  1. アドレス行索引0は常に番地ですか?
  2. とは、郊外、州、郵便番号のペアであり、インデックス2は国ですか?
  3. 「機能」は実際に通り番号(つまり123)ですか?
  4. "admin"は状態ですか?

フォーマットが固​​定されていない場合、どのようにアドレス情報を取得できますか? ありがとう!

答えて

1

フォーマットが固​​定されているとは思わないので、配列インデックスに頼るべきではありません。逆 ジオコードの場所の説明に詳細の量

は別の 唯一の都市名が含まれているかもしれないが、例えば1は、最も近い 建物の 完全な住所が含まれている場合があり、異なる場合があります。ドキュメントから郵便番号。 ジオコーダークラスでは、 コアアンドロイドフレームワークに含まれていないバックエンド サービスが必要です。

ジオコーディングサービスは、私が信じているバックグラウンドで動作するGoogle Mapsサービスによって実装されています。 Addressクラスを使用して、必要なアドレスの要素を取得する必要があります。

+0

はい、私は知っている必要があります - このケースでは、あなたは直接

、GoogleのAPIを使用することができますどのメソッド(getThoroughfare()、getFeature()、または何か)が通り番号と名前を返します。ありがとう! – hzxu

+0

私はそれを試行錯誤で見つけなければならないと思います。ジオコーダーによって戻されるアドレス情報は、国/ロケーションによって異なります。米国にとっては、他の国とは異なるものがあるかもしれません。そして、いくつかの場所は通り番号を全く返さない。 – Abhinav

+0

しかし、どうすればいいですか?私はそれをテストするために世界のすべての場所を旅行することはできません。 – hzxu

1

ここには役立つスニペットがあります。

- >ジオコーダは、すべてのAndroidデバイスに実装されていない、覚えておいてくださいジオコーダ

String currentAddress = ""; 

    try { 
     Geocoder geoCoder = new Geocoder(context); 
     List<Address> adds = geoCoder.getFromLocation(
         latitude 
         , longitude 
         , 1); 

     if (adds!=null && adds.size()>0) { 
      Address add = adds.get(0); 
      int max = add.getMaxAddressLineIndex(); 
      if (max!=-1) { 
        for (int i=0; i<max;i++) 
        currentAddress += add.getAddressLine(i) + " "; 
      } 
     } 
} 
catch (Exception ex) { 
    Log.w(TAG, "geocoding_fromAndroid->"+ex.toString()); 
    currentAddress = ""; 
} 


を使用して:|私はAddressクラスを使用しています、私のポスト内の文字列が実際にAddressオブジェクトのtoString()メソッドによって返される>http://code.google.com/apis/maps/documentation/geocoding/

+0

ありがとうございます。しかし、GeoCoderはデバイス上で利用可能ですか? – hzxu

+0

@hzxu GeoCoderの可用性は、2通りの方法で判断できます。
1)あなたは例外
を取得する2)このfuncを使用すると、APIレベル9以降で利用可能 - > [link](http://developer.android.com/reference/android/location/Geocoder.html#isPresent() ) – guleryuz

関連する問題