资源描述:
《使用mapx开发目标轨迹显示核心代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、参考部分原创:使用Mapx开发目标轨迹显示核心代码(VC++)0申明变量 CMapXm_ctrlMapX; CMapXLayerm_objLayer;//运动目标图层 CMapXLayerm_traceLayer;//目标轨迹层 CMapXLayerm_scaleBarLayer;//比例尺图层 CMapXFeaturem_objFt; doublem_lfCenterLon;//地图中心经度 doublem_lfCenterLat;//地图中心纬度 CMapXFeaturem_objTrackFt[MAXNUMINEMAP];1创建地图控件
2、 CRectrc; GetClientRect(&rc); m_ctrlMapX.Create(NULL,WS_VISIBLE,rc,this,IDC_MAP); m_ctrlMapX.SetCurrentTool(miPanTool); charGEOName[MAX_PATH]; GetCurrentDirectory(MAX_PATH,GEOName); strcat(GEOName,"\map\asia.gst"); m_ctrlMapX.SetGeoSet(GEOName);//设置地图名字 m_ctrlMapX.SetTitleT
3、ext(""); m_ctrlMapX.SetMapUnit(miUnitKilometer);//设置地图单位 m_ctrlMapX.SetPaperUnit(miPaperUnitKilometer); m_scaleBarLayer=m_ctrlMapX.GetLayers().AddUserDrawLayer("比例尺",1);//添加用户显示图层 m_ctrlMapX.SetAutoRedraw(TRUE);2创建目标轨迹层 m_objLayer=m_ctrlMapX.GetLayers().CreateLayer("目标",NULL,
4、1,32); m_ctrlMapX.GetLayers().SetAnimationLayer(m_objLayer);//设置该层为动画图层 m_objLayer.SetSelectable(FALSE);//设置该层目标为不可选择 m_objLayer.SetAutoLabel(TRUE);//设置该层目标为自动标注 m_objLayer.GetLabel().SetLineType(miLineTypeNone);//设置标注线形 m_objLayer.GetLabel().SetPosition(miPositionTR);//设置标注位
5、置 m_objLayer.GetLabel().SetOffset(2);//设置标注偏移量 m_objLayer.SetOverrideStyle(TRUE);//该层中所有Feature使用相同的style,***关键点,使用不同的style时,参数为FALSE*** m_objLayer.GetLabel().GetStyle().SetTextFontColor(miColorRed);//设置标注颜色 m_objLayer.GetLabel().SetOverlap(TRUE);//允许标注覆盖 m_objLayer.GetStyle(
6、).GetSymbolFont().SetName("MapinfoSymbols");//设置符号feature使用的字体 m_objLayer.GetStyle().SetSymbolCharacter(53);//设置符号feature使用的字符 m_objLayer.GetStyle().SetSymbolFontColor(RGB(255,0,0));//设置符号feature使用的颜色 m_objLayer.GetStyle().SetLineWidth(1);//设置线形feature的线宽 m_objLayer.SetDrawLa
7、belsAfter(TRUE);//在所有图层绘制完后再绘制标注3创建目标轨迹层 m_traceLayer=m_ctrlMapX.GetLayers().CreateLayer("轨迹",NULL,2,32); m_ctrlMapX.GetLayers().SetAnimationLayer(m_traceLayer); m_traceLayer.SetSelectable(FALSE); m_traceLayer.SetDrawLabelsAfter(TRUE);//影响标注刷新的关键4响应OnDrawUserLayer绘制比例尺图层5定时器中
8、改变目标位置6刷新电子地图 m_objLayer.BeginAccess(miAccessReadWrite);//大大减少CPU开销