|
以WGS84参考系下,经纬度转到墨卡托投影为例。
//相同参考系下的转换
//经纬度转到Transverse Mercator 投影坐标
CSePJParams objePJParams;
objePJParams.m_dCentralMeridian=117;
objePJParams.m_dFalseEasting=500000;
objePJParams.m_dScaleFactor=0.9996;
///设置源投影wgs84
CSePJCoordSys PJCoordSysSrc;
long nProjectionID=43006; // Transverse Mercator 投影方法
double dPriAxis=6378137; //地球长轴半径
double dFlatten=0.0033528107; //地球的扁率0.0033528107
long nUnits=SE_UNITS_METER; //坐标单位
PJCoordSysSrc.Set(nProjectionID,objePJParams,dPriAxis,dFlatten,nUnits);
if (PJCoordSysSrc.IsValid())
{
CArray<CSeDPoint2D, CSeDPoint2D> arrPnts;
//设置点集合
arrPnts.SetSize(1);
arrPnts[0].x=115.88751194;
arrPnts[0].y=28.6980855;
long l= PJCoordSysSrc.Forward(arrPnts.GetData(),arrPnts.GetSize());
double x=0.0, y=0.0;
x = arrPnts[0].x;
y = arrPnts[0].y;
CString strMessage1;
strMessage1.Format(_T("%.6f"), x);
MessageBox(strMessage1,_T("x"));
strMessage1.Format(_T("%.6f"), y);
MessageBox(strMessage1,_T("y"));
} (本文已被浏览 次) | | |