2013-10-20 6 views
5

मैं pArk ऐप्पल नमूना कोड का अध्ययन कर रहा हूं, और यह कैसे काम करता है। कोई भी जानता है कि अक्षांश और देशांतर को ईसीईएफ निर्देशांक, और कनवर्ट ईसीईएफ को दिए गए अक्षांश पर केन्द्रित एनएनयू निर्देशांक कैसे परिवर्तित करते हैं, लॉन फ़ंक्शन काम करते हैं? मैं सिर्फ यह समझना चाहता हूं कि इस समारोह में क्या चल रहा है!ईसीईएफ समन्वय प्रणाली के अक्षांश और देशांतर को कनवर्ट करें

धन्यवाद।

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; 
} 

उत्तर

8

latLonToEcef विधि एल्गोरिथ्म विकिपीडिया पृष्ठ में उल्लिखित के एक कार्यान्वयन है:

geodetic to ecef

जहां

Φ, अक्षांश है और लैम्ब्डा; देशांतर है, और

n-latitude

इसी तरह ecefToEnu विधि ECEF to ENU एल्गोरिथ्म के एक कार्यान्वयन है:

ECEF to ENU

आप आगे के संदर्भ की जरूरत है, वे कहते हैं कि के निचले भाग में पाया जा सकता है विकिपीडिया पेज। आप World Geodetic System 1984 spec का भी उल्लेख कर सकते हैं।

संबंधित मुद्दे