Map Projections > Projecting Data: An Example > The Complete Example
 
The Complete Example
#include <ilviews/maps/projection/mercator.h>
void
showProjection(const IlvProjection& projection)
{
double lambda = IlvMaps::DegreeToRadian(-45.);
double phi = IlvMaps::DegreeToRadian(30.);
IlvCoordinate ll(lambda, phi);
IlvCoordinate xy;
// Forward projection (from long/lat to x/y).
IlvMapsError status = projection.forward(ll, xy);
if (status != IlvMaps::NoError())
IlvPrint("Projection exception for this data : %s",
IlvMaps::GetErrorMessageId(status));
// Printing the result.
IlvPrint("The projection of 45W 30N is \n"
" x = %d m\n"
" y = %d m",
(int) xy.x(),
(int) xy.y());
// Resetting ll.
ll.move(0., 0.);
// Inverse projection (from x/y to long/lat).
status = projection.inverse(xy, ll);
if (status != IlvMaps::NoError())
IlvPrint("Projection exception for this data : %s",
IlvMaps::GetErrorMessageId(status));
// Printing the result.
char buffer1[12];
char buffer2[12];
IlvPrint("The inverse projection is \n"
" %s %s",
IlvMaps::RadianToDMS(buffer1, ll.x(), IlFalse),
IlvMaps::RadianToDMS(buffer2, ll.y(), IlTrue));}
int
main(int , char**)
{
IlvMercatorProjection projection;
showProjection(projection);
return 0;
}

Version 5.7
Copyright © 2013, Rogue Wave Software, Inc. All Rights Reserved.