住所から座標を取得する方法をご紹介します。
環境はAndroidStudio ChipMunk 2021です。
以下のようにボタンなどを配置します。

インポートは以下の通り。
1 2 |
import android.location.Address import android.location.Geocoder |
クエリー文字列に「東京タワー」などを入力すると、配列で緯度と経度などの座標を返す関数を作ります。
1 2 3 4 5 6 |
private fun doGeoCoding(query: String): MutableList<Address> { val gcoder = Geocoder(this, Locale.getDefault()) return gcoder.getFromLocationName(query, 1) } |
クエリー文字列によっては、座標を発見できない場合があるので、返ってきた配列のサイズをチェックして、テキストに入れる文字列を分けるようにしました。
1 2 3 4 5 6 7 8 9 10 |
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}" } } |