Android で 2 点間の距離を計算する方法
岩佐 孝浩
3 min read
Android GIS Java
この記事は、公開後3年以上が経過しています。
はじめに
URL Copied!
2 つの地理的な地点間の距離を計算することは、位置情報アプリの開発では特に一般的な要件です。この投稿では、Location
クラスを使って計算する手順を解説します。
Location クラスを使用する理由
URL Copied!
android.location.Location
クラスは、距離を計算するための組み込みユーティリティを提供しており、効率的かつ信頼性の高い選択肢です。このクラスを使うことで、独自の計算を行う必要がなくなり、精度が向上し、エラーの可能性を低減できます。
コード例
URL Copied!
以下は、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];
}
主な手順
URL Copied!
-
パラメータ:
latitude1
,longitude1
: 最初の地点の座標。latitude2
,longitude2
: 2 番目の地点の座標。
-
Location.distanceBetween
の使用:- このメソッドは、両地点の座標を受け取り、結果を配列に格納します。
results
配列の最初の要素には、距離 (メートル単位) が含まれます。
-
追加情報の処理:
- 配列には、方位角などの情報も含まれる場合があります。
まとめ
URL Copied!
Android の Location
クラスを使うと、2 点間の地理的距離を計算する 簡便かつ正確な 方法を提供します。この機能は、マッピング、トラッキング、またはその他の位置情報サービスを提供するアプリにとって非常に有用です。
Happy Coding! 🚀