【android・googlemap】緯度経度から住所を測定する方法

シンプルですが、画像に含まれた緯度経度を読み込んでテキストに表示する方法です。

 

</pre>
<pre>public void getAddress(double latitude,double longitute) {
    StringBuffer strAddr = new StringBuffer();
    Geocoder gcoder = new Geocoder(this, Locale.getDefault());
    try {
        List<Address> lstAddrs = gcoder.getFromLocation(latitude, longitute, 1);
        for (Address addr : lstAddrs) {
            int idx = addr.getMaxAddressLineIndex();
            for (int i = 0; i <= idx; i++) {
                strAddr.append(addr.getAddressLine(i));
                Log.v("addr", addr.getAddressLine(i));
            }
        }
        String newStr = strAddr.toString();
        String[] names = newStr.split(" ");
        dangerText.setText(names[1]);
        Toast.makeText(this, names[1], Toast.LENGTH_LONG).show();
    } catch (IOException e) {
        e.printStackTrace();
    }
}</pre>
<pre>

緯度経度さえ用意できてれば簡単に実装することができます。

5行目のgcoder.getFromLocationで緯度経度が取れているか確認してみます。

ログでこんな感じで取れていれば取得成功です。


[Address[addressLines=[0:"日本、〒432-8002 静岡県浜松市中区富塚町1933−1 佐鳴湖パークタウンサウス 2F"]

中身を見てみると、0番目に国名・郵便番号・住所が入っているのがわかります。

今回取りたいものは0番目の情報なので、簡単なfor文で取り出していきます。

取得には成功しましたが、国名と郵便番号はいらないのでsplitで空白別に配列の中に

切り分けていきます。

0:”日本、〒432-8002と静岡県浜松市中区富塚町1933−1の間に空白が一つあるので

住所「静岡県浜松市中区富塚町1933−1」が入っているのは1番目になります。

これで取り出し・加工作業は終了。

格納場所が分かれば後はsetTextやtoastで好きなように扱うことができます。

 

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG