[解決済み] 緯度経度を使って2点間の距離を計算する?
2022-11-22 07:27:46
質問
これは私のコードの一部です。
final double RADIUS = 6371.01;
double temp = Math.cos(Math.toRadians(latA))
* Math.cos(Math.toRadians(latB))
* Math.cos(Math.toRadians((latB) - (latA)))
+ Math.sin(Math.toRadians(latA))
* Math.sin(Math.toRadians(latB));
return temp * RADIUS * Math.PI / 180;
この式を使って緯度・経度を求めています。
x = Deg + (Min + Sec / 60) / 60)
どのように解決するのですか?
上記のDommerによって与えられたJavaコードはわずかに不正確な結果を与えますが、例えばGPSトラックを処理する場合、小さな誤差が積み重なります。ここでは、2 点間の高さの違いも考慮した Java での Haversine メソッドの実装を紹介します。
/**
* Calculate distance between two points in latitude and longitude taking
* into account height difference. If you are not interested in height
* difference pass 0.0. Uses Haversine method as its base.
*
* lat1, lon1 Start point lat2, lon2 End point el1 Start altitude in meters
* el2 End altitude in meters
* @returns Distance in Meters
*/
public static double distance(double lat1, double lat2, double lon1,
double lon2, double el1, double el2) {
final int R = 6371; // Radius of the earth
double latDistance = Math.toRadians(lat2 - lat1);
double lonDistance = Math.toRadians(lon2 - lon1);
double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2)
+ Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2))
* Math.sin(lonDistance / 2) * Math.sin(lonDistance / 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
double distance = R * c * 1000; // convert to meters
double height = el1 - el2;
distance = Math.pow(distance, 2) + Math.pow(height, 2);
return Math.sqrt(distance);
}
関連
-
XMLファイル操作時のjava.util.NoSuchElementExceptionを解決する方法。
-
Jsoup-Crawlingの動作
-
強制型変換について
-
Javaがエラーで実行される、選択が起動できない、最近起動したものがない
-
Web Project JavaでPropertiesファイルを読み込むと、「指定されたファイルがシステムで見つかりません」というソリューションが表示されます。
-
[解決済み] 2つの緯度経度点間の距離を計算する?(ハバーシンの公式)
-
[解決済み] MySQLデータベースに緯度/経度を格納する際に使用する理想的なデータ型は何ですか?
-
[解決済み] 2つのGPS座標間の距離を計算する
-
[解決済み] 緯度と経度の座標を使用して、ある場所からタイムゾーンを取得する方法は?
-
[解決済み] 2つの緯度経度ジオ座標間の距離の計算
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipseは、ポップアップA Java Exception has occurred.を実行し、エラーException in threadの解決策を報告します。
-
Eclipse問題 アクセス制限。タイプ 'SunJCE' が API でないことを解決し、/jdk ディレクトリにある /jre と jre の違いについて理解を深める。
-
undefined[sonar] sonar:デフォルトのスキャンルール
-
JAVA_HOME環境変数が正しく定義されていない問題を解決する
-
が 'X-Frame-Options' を 'sameorigin' に設定したため、フレーム内に存在する。
-
セミコロン期待値エラー解決
-
ジャバアレイ
-
List list = new ArrayList(); Error: ArrayList は型に解決できません。
-
1分でわかる!恋人の写真をIDEAの背景画像に設定する方法【おすすめ集
-
テストが空であるかどうかを判断するためのオプションの処理