请教大家:关于在vc2005 MFC单文档程序的某个对话框上,使用mapx5.0装载地图后,创建临时图层显示GPS车辆,并提示车辆相关信息的问题
开发环境:VC2005 基于MFC的单文档应用程序,其中某个对话框;
mapx5.0控件;
问题:使用mapx5.0装载地图后,创建临时图层显示GPS车辆,并提示车辆相关信息的问题;
现在已经能够装载地图,并在临时图层上显示GPS定位的车辆图元了,
请问怎么显示车辆的相关信息上去???
首先在对话框头文件里定义:
CMapXFeature ftrCar; // 车辆图元
CMapXFeature ftrCarNow; // AddFeature后的车辆图元
CMapXLayers allLayers; // 所有图层
在.cpp里:
------------------------在初始化函数里:------------------------------------------------------
/*dFenbianlv = 300;*/
dFenbianlv = 2;
RECT windRect;
GetClientRect(&windRect); //取得视图区域
//m_change_gis_control.Create(NULL, WS_VISIBLE, windRect, this, IDC_CHANGE_MAP);
//m_change_gis_control.Create(NULL, WS_VISIBLE, CRect(0, 0, 80, 80), this, IDC_CHANGE_MAP);
m_change_gis_control.Create(NULL, WS_VISIBLE, CRect(windRect.left, windRect.top, windRect.right - 110, windRect.bottom), this, IDC_CHANGE_MAP);
// 笔记本地图路径
this->m_change_gis_control.SetGeoSet(_T("F:\\车辆管理\\08全国地图 1G\\08全国合成图 5000\\08全国合成图\\中国(重庆).gst"));
//106.4986, 29.49303
m_change_gis_control.SetCenterX(106.4986); //设置中心坐标
m_change_gis_control.SetCenterY(29.49303);
m_change_gis_control.SetZoom(dFenbianlv); // 地图分辨率
// 台式地图路径
//this->m_change_gis_control.SetGeoSet(_T("F:\\王平\\GS\\GS上位机\\地图文件\\08全国合成图 3G\\08全国合成图\\中国(重庆).gst"));
m_change_gis_control.GetLayers().CreateLayer(_T("tempLayersForGS"),NULL,1); // 创建临时图层
allLayers=m_change_gis_control.GetLayers();
------------------------------------在显示车辆位置按钮时:---------------------------------------------
/*CMapXFeature ftr=m_change_gis_control.GetFeatureFactory().CreateSymbol();*/
ftrCar=m_change_gis_control.GetFeatureFactory().CreateSymbol();
CMapXStyle style=ftrCar.GetStyle();
style.SetSymbolType(miSymbolTypeBitmap);
style.SetSymbolBitmapName(_T("CAUT1-32.BMP"));
style.SetSymbolBitmapSize(16);
style.SetSymbolBitmapTransparent(FALSE);
ftrCar.SetStyle(style);
ftrCar.GetPoint().Set(106.4986,29.49303);
/*CMapXFeature ftrNow = layers.Item(_T("tempLayersForGS")).AddFeature(ftr);*/
ftrCarNow = allLayers.Item(_T("tempLayersForGS")).AddFeature(ftrCar);
ftrCarNow.GetLayer().SetKeyField(_T("sbh:"));
ftrCarNow.SetKeyValue(_T("1号"));
ftrCarNow.Update();
allLayers.Item(_T("tempLayersForGS")).Refresh();
/*ftrNow.GetLayer().SetKeyField(_T("SIM:"));
ftrNow.SetKeyValue(_T("13800138000"));
ftrNow.Update();*/
/*ftr.GetLayer().SetKeyField(_T("通信分组:"));
ftr.SetKeyValue(_T("通信1组"));
ftr.Update();*/
// 下面为显示提示信息,有问题
//CMapXStyle styleForText;
//ftr.SetKeyValue(_T("BMW 730Li"));
//styleForText.GetTextFont().SetName(_T("宋体"));
//styleForText.GetTextFont().SetName(_T("Arial"));
////styleForText.GetTextFont().SetSize(12);
//styleForText.SetTextFontColor(miColorRed); //颜色
//layers.Item(_T("tempLayersForGS")).SetEditable(true);
//layers.Item(_T("tempLayersForGS")).GetLabelProperties().SetStyle(styleForText);
//layers.Item(_T("tempLayersForGS")).GetLabelProperties().SetPosition(miPositionBC); //标注文本在图元相对位置
---------------------移动车辆图元位置----------------------------------
ftrCarNow.GetPoint().Set(109.4966,31.49333);
ftrCarNow.Update();
allLayers.Item(_T("tempLayersForGS")).Refresh();