Convertir la latitude et la longitude de ECEF système de coordonnées
Je suis étudiant parc Apple exemple de code, et comment il fonctionne.
quelqu'un sait comment convertir la latitude et la longitude de ECEF coordonnées,
et Secrètes, ECEF à ENU coordonnées centré à lat, lon fonctions de travail?
Je veux juste comprendre ce qui se passe dans cette fonction!
grâce.
void latLonToEcef(double lat, double lon, double alt, double *x, double *y, double *z)
{
double clat = cos(lat * DEGREES_TO_RADIANS);
double slat = sin(lat * DEGREES_TO_RADIANS);
double clon = cos(lon * DEGREES_TO_RADIANS);
double slon = sin(lon * DEGREES_TO_RADIANS);
double N = WGS84_A / sqrt(1.0 - WGS84_E * WGS84_E * slat * slat);
*x = (N + alt) * clat * clon;
*y = (N + alt) * clat * slon;
*z = (N * (1.0 - WGS84_E * WGS84_E) + alt) * slat;
}
//Coverts ECEF to ENU coordinates centered at given lat, lon
void ecefToEnu(double lat, double lon, double x, double y, double z, double xr, double yr, double zr, double *e, double *n, double *u)
{
double clat = cos(lat * DEGREES_TO_RADIANS);
double slat = sin(lat * DEGREES_TO_RADIANS);
double clon = cos(lon * DEGREES_TO_RADIANS);
double slon = sin(lon * DEGREES_TO_RADIANS);
double dx = x - xr;
double dy = y - yr;
double dz = z - zr;
*e = -slon*dx + clon*dy;
*n = -slat*clon*dx - slat*slon*dy + clat*dz;
*u = clat*clon*dx + clat*slon*dy + slat*dz;
}
OriginalL'auteur Crazy | 2013-10-20
Vous devez vous connecter pour publier un commentaire.
La
latLonToEcef
méthode est une implémentation de l'algorithme décrit dans la Coordonnées géographique De conversion - du géodésique de ECEF coordonnées page wikipedia:où
Φ est la latitude, la λ est de la longitude, et
De même, le
ecefToEnu
méthode est une méthode de mise en œuvre de la ECEF à ENU algorithme:Si vous avez besoin de plus de références, ils peuvent être trouvé au bas de cette page de Wikipedia. Vous pouvez également vous reporter à la Système Géodésique Mondial 1984 spec.
OriginalL'auteur Rob