Kotlinで2つの場所間の距離を取得する方法


  1. Google Maps APIを利用する方法: Google Maps APIは、地理的位置に関連する機能を提供する強力なツールです。以下の手順に従って、APIを使用して2つの場所間の距離を計算します。

    1.1. Google Cloud Platform (GCP) コンソールにアクセスし、新しいプロジェクトを作成します。 1.2. プロジェクトの設定画面で、Google Maps APIを有効化します。 1.3. APIキーを生成し、アプリに組み込みます。

    2つの場所の緯度経度を取得した後、以下のコードを使用して距離を計算します。

    import android.location.Location
    fun calculateDistance(lat1: Double, lon1: Double, lat2: Double, lon2: Double): Float {
       val location1 = Location("")
       location1.latitude = lat1
       location1.longitude = lon1
       val location2 = Location("")
       location2.latitude = lat2
       location2.longitude = lon2
       return location1.distanceTo(location2)
    }
  2. Haversine式を使用する方法: Haversine式は、球面上の2つの点間の距離を計算するための数学的な式です。以下のコード例では、Haversine式を使用して2つの場所間の距離を計算します。

    import kotlin.math.*
    fun calculateDistance(lat1: Double, lon1: Double, lat2: Double, lon2: Double): Double {
       val r = 6371.0 // 地球の半径(km)
       val latDistance = Math.toRadians(lat2 - lat1)
       val lonDistance = Math.toRadians(lon2 - lon1)
       val a = sin(latDistance / 2) * sin(latDistance / 2) +
               cos(Math.toRadians(lat1)) * cos(Math.toRadians(lat2)) *
               sin(lonDistance / 2) * sin(lonDistance / 2)
       val c = 2 * atan2(sqrt(a), sqrt(1 - a))
       return r * c
    }

上記のコード例では、2つの場所の緯度経度を引数として取り、距離を返します。計算された距離は、メートルまたはキロメートルで表されます(Google Maps APIの場合はメートル、Haversine式の場合はキロメートル)。