2013-05-17 36 views
5

Lat、Lon、Altの値からECEF(Earth-Centered)のような3Dシステムへの変換については疑問に思っています。次のように経度、緯度、高度から3D-デカルト座標系

これは(https://gist.github.com/1536054)に実装することができます。

/* 
* WGS84 ellipsoid constants Radius 
*/ 
private static final double a = 6378137; 
/* 
* eccentricity 
*/ 
private static final double e = 8.1819190842622e-2; 

private static final double asq = Math.pow(a, 2); 
private static final double esq = Math.pow(e, 2); 

void convert(latitude,longitude,altitude){ 
    double lat = Math.toRadians(latitude); 
    double lon = Math.toRadians(longitude); 
    double alt = altitude; 

    double N = a/Math.sqrt(1 - esq * Math.pow(Math.sin(lat), 2)); 

    x = (N + alt) * Math.cos(lat) * Math.cos(lon); 
    y = (N + alt) * Math.cos(lat) * Math.sin(lon); 
    z = ((1 - esq) * N + alt) * Math.sin(lat); 
} 

何私の意見では非常に奇妙なようだがどこでだろう高度の変化がほとんど、で、x、y、zの影響を与えることを、事実でありますそれがただ一つの軸に影響することを期待してください。たとえば、緯度/経度が同じで高度値が異なる2つのGPS-Pointsがある場合、3つの異なるx、y、z座標が得られます。

誰かがこれの背後にある "アイデア"について説明できますか?これは私には非常に興味があるように見えます...私の高度値を下げる/上げると、値の1つだけが変化する他の3Dシステムはありますか?

ありがとうございます!

答えて

3

あなたはこの絵を見れば:ECEF Coordinate System

、あなたはなぜ参照してください。 ECEFは地球中心の中心にある地球を囲む立方体です。 高度が上がると移動します。 Lat/lonはlat、lonが角度である「角度」座標系です ECEFはcartesian座標系です!

あなたはECELと同様にLatLonのような中心の地球は標高が0ですが、そうではありません。

+0

ああ、これはまさに私が探していたものです;) – Frame91

関連する問題