Click or drag to resize

GM_ProjectPointToECEF

Projects a point to ECEF (earth-centered earth-fixed) coordinates referenced to some datum (normally WGS84) from coordinates in some projection.

Syntax
GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_ProjectPointToECEF
(
double                  aXIn,       // IN: X coordinate of input point
double                  aYIn,       // IN: Y coordinate of input point
double                  aZIn,       // IN: Z coordinate of input point (meters above ellipsoid), usually 0
double*                 aX,         // OUT: ECEF X coordinate of input
double*                 aY,         // OUT: ECEF Y coordinate of input
double*                 aZ,         // OUT: ECEF Z coordinate of input
DATUM                   aDatum,     // IN: datum for ECEF conversion (normally GM_DATUM_WGS_84)
const GM_Projection_t*  aProjIn     // IN: projection of input point (NULL for current projection)
)
Example
// Convert a sample lat/lon point to ECEF
GM_Projection_t theGeoProj;
::memset( &theGeoProj, 0, sizeof theGeoProj );
theGeoProj.mProjSys = GM_PRJ_GEO;
theGeoProj.mDatum = GM_DATUM_WGS_84;
theGeoProj.mUnit = GM_PRJ_UNIT_ARC_DEGREES;
double theLat = 39.0;
double theLon = -90.0;
double theX, theY, theZ;
GM_Error_t32 theErr = GM_ProjectPointToECEF( theLon, theLat, &theX, &theY, &theZ, GM_DATUM_WGS_84, &theGeoProj );

// Convert back, yielding the same point as you started with
double theRevLat, theRevLon;
theErr = GM_ProjectPointFromECEF( theX, theY, theZ, &theRevLon, &theRevLat, GM_DATUM_WGS_84, &theGeoProj );
-->