代码名称:VC+MapX如何通过程序设置坐标系投影

作者:James.Liu/刘毅

开发环境:VC + MapX

代码:

因为这个问题这几天遇得比较多,很多朋友遇到,所以找了以前一段代码单独贴出来,与需要的朋友分享。

//DEMO:设置经纬度WGS 84投影
void CMapxSampleView::OnViewPrjLonLat() 
{
 CMapXDatum datum;
 datum.CreateDispatch(datum.GetClsid());
 datum.SetFromList(104);
 m_ctrlMapX.GetDisplayCoordSys().Set(1, datum, COptionalVariant(), COptionalVariant(), COptionalVariant(), COptionalVariant(), COptionalVariant(), COptionalVariant(), COptionalVariant(), COptionalVariant(), COptionalVariant(), COptionalVariant(), COptionalVariant(), COptionalVariant()); 
}
//demo: 设置非地球投影
void CMapxSampleView::OnViewPrjNonearth() 
{
 //设置合适投影
 CMapXRectangle bound;
 VARIANT vi,vbound;
 bound.CreateDispatch(bound.GetClsid());
 bound.Set(-346.562690,-86.286708,446.137310,420.604172);
 vbound.vt=VT_DISPATCH;
 vbound.pdispVal=bound;
 vi.vt =VT_I2;
 vi.iVal=1;
 m_ctrlMapX.GetDisplayCoordSys().Set(0,COptionalVariant(),vi,COptionalVariant(),COptionalVariant(),COptionalVariant(),COptionalVariant(),COptionalVariant(),COptionalVariant(),COptionalVariant(),COptionalVariant(),COptionalVariant(),vbound,COptionalVariant()); 
}