gps 座標 (緯度、経度) を ENU (est、north、up) 座標に変換したい。
私はこの問題についての理論を知っていますが、それを実装する時間がほとんどないので、それを行うための Java コードが存在するかどうか尋ねます!
ありがとう
この出版物には、トピックに関する多くの情報があります。さらに、Matlab コードもあります。ここから始めるのがよいでしょう。
関連部分 (「GPS 座標 (Φλh) からナビゲーション座標 (ENU) への変換」 by SP Drake):
他の解決策は次のとおりです。
public static double[] fatCoordinates(double lat,double lon){
double phi = Math.toRadians(lat);
double lambda = Math.toRadians(lon);
double e2 = Math.pow(WGS_E,2);
double Rn = WGS_A / Math.sqrt(1 - e2 * Math.pow(Math.sin(phi), 2));
double[] XYZ = new double[3];
XYZ[0] = Rn * Math.cos(phi) * Math.cos(lambda);
XYZ[1] = Rn * Math.cos(phi) * Math.sin(lambda);
XYZ[2] = Rn * (1 - e2) * Math.sin(phi);
return XYZ;
}
と
public static final double WGS_A = 6378137.0;
public static final double WGS_E = 0.0818191908426;
https://josm.openstreetmap.de/browser/josm/trunk/src/org/openstreetmap/josm/data/projection/Ellipsoid.java?rev=4382から取得