Android で 2 点間の距離を計算する方法

Android で 2 点間の距離を計算する方法

岩佐 孝浩
岩佐 孝浩
3 min read
Android GIS Java

はじめに

2 つの地理的な地点間の距離を計算することは、位置情報アプリの開発では特に一般的な要件です。この投稿では、Location クラスを使って計算する手順を解説します。

Location クラスを使用する理由

android.location.Location クラスは、距離を計算するための組み込みユーティリティを提供しており、効率的かつ信頼性の高い選択肢です。このクラスを使うことで、独自の計算を行う必要がなくなり、精度が向上し、エラーの可能性を低減できます。

コード例

以下は、2 つの地点間の距離をメートル単位で計算するメソッドの例です。

/**
 * 2 点間の距離をメートル単位で取得します。
 * @param latitude1 最初の地点の緯度
 * @param longitude1 最初の地点の経度
 * @param latitude2 2 番目の地点の緯度
 * @param longitude2 2 番目の地点の経度
 * @return 2 点間の距離 (メートル単位)
 */
public float getDistanceBetween(
    double latitude1, double longitude1,
    double latitude2, double longitude2) {

    float[] results = new float[3];
    // Location クラスを使用して距離を計算
    Location.distanceBetween(latitude1, longitude1, latitude2, longitude2, results);

    if (results.length < 1) {
        // エラー処理
    }

    if (results.length < 3) {
        // 必要に応じて方位角を処理
    }

    // 距離 (メートル) を返す
    return results[0];
}

主な手順

  1. パラメータ:

    • latitude1 , longitude1: 最初の地点の座標。
    • latitude2 , longitude2: 2 番目の地点の座標。
  2. Location.distanceBetween の使用:

    • このメソッドは、両地点の座標を受け取り、結果を配列に格納します。
    • results 配列の最初の要素には、距離 (メートル単位) が含まれます。
  3. 追加情報の処理:

    • 配列には、方位角などの情報も含まれる場合があります。

まとめ

Android の Location クラスを使うと、2 点間の地理的距離を計算する 簡便かつ正確な 方法を提供します。この機能は、マッピング、トラッキング、またはその他の位置情報サービスを提供するアプリにとって非常に有用です。

Happy Coding! 🚀

岩佐 孝浩

岩佐 孝浩

Software Developer at KAKEHASHI Inc.
AWS を活用したクラウドネイティブ・アプリケーションの要件定義・設計・開発に従事。 株式会社カケハシで、処方箋データ収集の新たな基盤の構築に携わっています。 Japan AWS Top Engineers 2020-2023