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

asaba 著者:asaba

【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で好きなように扱うことができます。

 

  • この記事いいね! (0)

著者について

asaba

asaba author

好きなもの:RPG、チョコミント 少しずつ頑張ります。