緯度と経度のリストを含むデータベースがあります
-DeviceName
-Latitude
-Longitude
現在のデバイスの緯度と経度を考慮して、データベースリスト内のすべてのデバイスをXキロメートルの距離/近接で取得したいと思います。
自分の場所と他の場所の近さを計算するにはどうすればよいですか?
緯度と経度のリストを含むデータベースがあります
-DeviceName
-Latitude
-Longitude
現在のデバイスの緯度と経度を考慮して、データベースリスト内のすべてのデバイスをXキロメートルの距離/近接で取得したいと思います。
自分の場所と他の場所の近さを計算するにはどうすればよいですか?
生のコードを探しているなら、これはあなたを助けるはずです:
private static Double rad2deg(Double rad) {
return (rad / Math.PI * 180.0);
}
private static Double deg2rad(Double deg) {
return (deg * Math.PI / 180.0);
}
private const Double kEarthRadiusKms = 6376.5;
private static Double CalculateDistance(Double latitude1, Double longitude1, Double latitude2, Double longitude2) {
double theta = longitude1 - longitude2;
double dist = Math.Sin(deg2rad(latitude1)) * Math.Sin(deg2rad(latitude2)) + Math.Cos(deg2rad(latitude1)) * Math.Cos(deg2rad(latitude2)) * Math.Cos(deg2rad(theta));
dist = Math.Acos(dist);
dist = rad2deg(dist);
dist = dist * 60 * 1.1515;
dist = dist * 1.609344;
return (dist);
}
この素晴らしいプレゼンテーションをのぞいてみたいと思います。曲率を考慮して地球の表面上の距離を計算するためのhasersine 式の使用方法と、データベース クエリなどでよくある間違いを回避する方法を説明します。彼のデータセットはほぼ正確です。あなたのものは - アイテム、経度と緯度です。