谁会用CMapXRowValue类?

qtgm 2005-02-06 12:27:19
我用这个类没有办法在添加feature的时候同时也为TAB文件添加记录,不知道怎么弄啊,郁闷
...全文
140 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qtgm 2005-02-06
  • 打赏
  • 举报
回复
CMapXRowValue rv;
rv.CreateDispatch(rv.GetClsid());
rv.SetDataset(ly.GetDatasets().Item(1));
rv.SetField(ds.GetFields().Item(2));
COleVariant value;
value.fltVal = 119.f;
rv.SetValue(value);
CMapXRowValues rvs;
rvs.CreateDispatch(rvs.GetClsid());
rvs.Add(rv);

这个是代码,但是添加是失败的,图元有了,记录是空的(默认值)
ft = m_ctrlMapX.GetFeatureFactory().CreateSymbol(ptv);
ly.AddFeature(ft,rvs);
kewudemao 2005-02-06
  • 打赏
  • 举报
回复
上面的代码,我在本地用一个点图成测试了一下,图员和记录都有加成功。你可以把相应的图层的名字改成你实际的图层名字进行测试。
kewudemao 2005-02-06
  • 打赏
  • 举报
回复
double MapX;
double MapY;
CMapXFeature tmpFtr;
CMapXDataset ds;
COleVariant layerVt;
CMapXLayer MexLayer;

MexLayer = m_CtrlMapX.GetLayers().Item("point");

layerVt.vt = VT_DISPATCH;
layerVt.pdispVal = MexLayer.m_lpDispatch;
layerVt.pdispVal->AddRef();

ds = m_CtrlMapX.GetDatasets().Add(miDataSetLayer, layerVt);

CMapXRowValues rvs;
CMapXRowValue rv;

rvs.CreateDispatch(rvs.GetClsid() );
rv.CreateDispatch(rv.GetClsid());

rv.SetDataset(ds);
rv.SetField(ds.GetFields().Item("Name"));

VARIANT val;
val.vt= VT_BSTR ;
val.bstrVal =SysAllocString(L"PointD");

rv.SetValue(val);
rvs.Add(rv);


tmpFtr.CreateDispatch(tmpFtr.GetClsid());
tmpFtr.Attach(this->m_CtrlMapX.GetDispatch());
tmpFtr.Offset(MapX,MapY);
tmpFtr=m_CtrlMapX.GetLayers().Item("Point").AddFeature(tmpFtr,rvs);

2,142

社区成员

发帖
与我相关
我的任务
社区描述
它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。
社区管理员
  • 地理信息系统
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧