1
非常に短い距離の2つのGPS座標の間の距離を計算しようとしています。私はいくつかの方法を見つけましたが、それらはすべて数学のクラスのメソッドを必要とします。私の目的は、次のようなアルゴリズムを実装することです:cn1の数学クラスの機能
public static double haversine(
double lat1, double lng1, double lat2, double lng2) {
int r = 6371; // average radius of the earth in km
double dLat = Math.toRadians(lat2 - lat1);
double dLon = Math.toRadians(lng2 - lng1);
double a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2))
* Math.sin(dLon/2) * Math.sin(dLon/2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
double d = r * c;
return d;
}
度とラジアンの間の変換方法は分かっています。 cn1でこれを計算する方法はありますか、またはsin cosやtan関数などのMathUtilよりも多くの数学関数を使用する方法があります。
こんにちはチェンはお返事ありがとうございました。私はcn1 APIドキュメントでそのメソッドを見ましたが、メソッドをタイプしたときにNetbeansのメソッドヒントには表示されませんでしたので、何か不足していると思いました。しかし、それは素晴らしい仕事です!また、そのメソッドが数学クラスのメソッドを利用できるのはどういうことでしょうか?私が理解する限り、Mathクラスは、MathUtilほど移植性が高くないため、Mathクラスを使用できませんでした。 – roblin
はい。 com.codename1.utilパッケージに含まれていることに注目してください。 –