我的代码如下:
CMapXLayers Layers;
CMapXLayer Layer;
CMapXFeature ftr;
CMapXFeatureFactory FeaFac;
Layers=m_CtrlMapX.GetLayers();
BOOL Flag=false;
for (int i=0;i<Layers.GetCount();i++)
{
Layer=Layers.Item(i+1);
if (Layer.GetName()=="linshi")
{
Flag=true;
break;
}
}
if (Flag==false)
{
CMapXLayer Lyr=m_CtrlMapX.GetLayers().CreateLayer("linshi");
m_CtrlMapX.GetLayers().SetAnimationLayer(Lyr);//设置为动态图层
}
CMapXLayers layers = m_CtrlMapX.GetLayers();
try{
if (ftr.CreateDispatch(ftr.GetClsid()))
{
ftr = m_CtrlMapX.GetFeatureFactory().CreateSymbol();
CMapXStyle style = ftr.GetStyle(); //获得图元的风格
//设置图元的风格,显示位图
style.SetSymbolType(miSymbolTypeBitmap);
//指定所要显示位图的存放位置
style.SetSymbolBitmapName("CAR1-32.BMP");
//指定位图大小
style.SetSymbolBitmapSize(32);
//设置为透明
//style.SetSymbolBitmapTransparent(TRUE);
//指定需要显示图元的位置(经纬度位置)
ftr.GetPoint().Set(-100.9926,37.7282);
layers.Item("linshi").AddFeature(ftr);
}
else
{
AfxThrowOleException(CO_E_CLASS_CREATE_FAILED);
}
}
catch (COleDispatchException *e) {
e->ReportError();
e->Delete();
}
catch (COleException *e) {
e->ReportError();
e->Delete();
}
这是网上的一个做法,别人编译通过了功能也实现了 为什么我的显示一个黑斑呢?请各位大牛看一下
------解决方案--------------------
能够显示一个黑点说明代码是正确的,请你确认CAR1-32.BMP这个文件是否存在或者路径是否正确
------解决方案--------------------
1楼看得很准,呵呵