Example (C#)
This code creates a geography coordinate system envelope that is approximately 30 km on the diagonal and transforms that envelope into its equivalent in a projected coordinate system.
using OSGeo.MapGuide;
private MgCoordinateSystemTransform coordSysTransformGeogToProj;
private MgCoordinateSystemTransform coordSysTransformProjToGeog;
private double geogCSX = -160.101421317;
private double geogCSY = 22.0234263273;
private MgEnvelope geogCSEnv;
private MgEnvelope projCSEnv;
private double urX = geogCSX + 0.2;
private double urY = geogCSY + 0.2;
double expectedProjLLX = 386323.976322775;
double expectedProjLLY = 2435694.36972722;
double expectedProjURX = 407098.230068439;
double expectedProjURY = 2457970.15998103;
double tolerance = 0.001;
Boolean lowerLeftIsEquivalent;
Boolean upperRightIsEquivalent;
geogCSEnv = new MgEnvelope(geogCSX, geogCSY, urX, urY);
projCSEnv = coordSysTransformGeogToProj.Transform(geogCSEnv);
lowerLeftIsEquivalent = Math.Abs(expectedProjLLX - projCSEnv.GetLowerLeftCoordinate().GetX()) < tolerance && Math.Abs(expectedProjLLY - projCSEnv.GetLowerLeftCoordinate().GetY()) < tolerance;
upperRightIsEquivalent = Math.Abs(expectedProjURX - projCSEnv.GetUpperRightCoordinate().GetX()) < tolerance && Math.Abs(expectedProjURY - projCSEnv.GetUpperRightCoordinate().GetY()) < tolerance;