vc+mapx 添加图元属性,只能添加一个,第二个以后的图元属性添加不了
void drawelement(double lon,double lat,int ang)
{
CMapXPoints Pnts; //点集对象
CMapXFeatureFactory FeaFac;
CMapXLayer oLayer;
CMapXFeature Feature,ftr;
CMapXFeatures Ftrs;
CMapXStyle Style;
CMapXDataset ods;
double pi = 3.1415926535;
double centerX,centerY; //得到地图的中心
//centerX=m_pnMapX.GetCenterX();
//centerY=m_pnMapX.GetCenterY();
centerX=lon;
centerY=lat;
Pnts.CreateDispatch(Pnts.GetClsid());
FeaFac=m_pnMapX.GetFeatureFactory();
oLayer = m_pnMapX.GetLayers().Item("temp");//获取图层
//加点
Pnts.AddXY(centerX,centerY);
Pnts.AddXY(centerX+0.00119*sin((ang-30)*pi/180),centerY+0.001*cos((ang-30)*pi/180));
Pnts.AddXY(centerX+0.00119*sin((ang+30)*pi/180),centerY+0.001*cos((ang+30)*pi/180));
Pnts.AddXY(centerX,centerY);
COleVariant vtPoints;
vtPoints.vt=VT_DISPATCH;
vtPoints.pdispVal=Pnts.m_lpDispatch;
vtPoints.pdispVal->AddRef();
Feature=FeaFac.CreateLine(vtPoints); //按照点集画区域
Style=Feature.GetStyle();
Style.SetRegionColor(miColorGreen);
Feature.SetStyle(Style.m_lpDispatch);
oLayer.SetKeyField("first");
Feature.SetKeyValue("123456");//可设置鼠标放上去后显示的值
oLayer.AddFeature(Feature);
// AfxMessageBox(a);
//添加图元属性
COleVariant layerVt;
layerVt.vt = VT_DISPATCH;
layerVt.pdispVal = oLayer.m_lpDispatch;
layerVt.pdispVal->AddRef(); //Dispatch的调用规范
//ods = m_pnMapX.GetDatasets().Add(miDataSetLayer, layerVt);
ods = m_pnMapX.GetDatasets().Add(miDataSetLayer, layerVt,oLayer.GetName());//oLayer.GetName()="temp"
Ftrs = m_pnMapX.GetLayers().Item(oLayer.GetName()).AllFeatures();
ftr=Ftrs.Item(1);
CMapXRowValues rvs;
CMapXRowValue rv;
CString str="你好";
COleVariant vF;
vF.vt = VT_DISPATCH;
vF.pdispVal = ftr.m_lpDispatch;
rvs = ods.GetRowValues(vF);
COleVariant var("123");
rv = rvs.Item("first");
rv.SetValue(var);
COleVariant var2=(long)234;
rv = rvs.Item("second");
rv.SetValue(var2);
COleVariant var3=str;
rv = rvs.Item("third");
rv.SetValue(var3);
ftr.Update(true,rvs);
ods.Refresh();
}
我创建一个图元的时候,可以添加属性,创建第二个图元的时候,添加属性失败,在网上找了好多资料,都找不到什么原因,人大侠知道什么原因吗?