【Kotlin】住所から座標を取得するGeocoderの使い方

住所から座標を取得する方法をご紹介します。

環境はAndroidStudio ChipMunk 2021です。

以下のようにボタンなどを配置します。

インポートは以下の通り。

import android.location.Address
import android.location.Geocoder

クエリー文字列に「東京タワー」などを入力すると、配列で緯度と経度などの座標を返す関数を作ります。

    private fun doGeoCoding(query: String): MutableList<Address> {

        val gcoder = Geocoder(this, Locale.getDefault())

        return gcoder.getFromLocationName(query, 1)
    }

クエリー文字列によっては、座標を発見できない場合があるので、返ってきた配列のサイズをチェックして、テキストに入れる文字列を分けるようにしました。

        query_btn.setOnClickListener {
            val addr = doGeoCoding(addressEdit.text.toString())
            if (addr.size == 0){
                tv_result.text = "見つけられませんでした。"
            }else {
                lat = addr[0].latitude
                lng = addr[0].longitude
                tv_result.text = "Lat:${lat}, Long:${lng}"
            }
        }

 

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog