mapx 无法编辑已有的图标或路线属性的问题

本文讨论了在使用C++进行地图编辑时遇到的问题:如何正确修改已有地图中的路线名称或图标点名称。通过分析代码,发现直接引用Item的方法导致问题,最终通过替换为CMapXFeature实例解决问题。

    

今天写了个程序,需要修改已有地图中的路线名称或图标点名称

用了如下语句却总是修改无效

// 鼠标点击事件

// 将点击选中的线路更改为新的名称

CString szRoadName = "";

m_cRoadName.GetWindowText(szRoadName);

if ("" == szRoadName) return;


CMapXPoint pnt;
pnt.CreateDispatch(pnt.GetClsid());
double mapx,mapy;
m_CtrlMap.ConvertCoord(&X, &Y, &mapx, &mapy, miScreenToMap);
pnt.Set(mapx, mapy);
CMapXFeatures ftrs = m_CtrlMap.GetLayers().Item(m_szSelRoadLyr).SearchAtPoint(pnt);
if (ftrs.GetCount() > 0)
{
ftrs.Item(1).SetKeyValue(szRoadName);

        ftrs.Item(1).Update();

}


最后发现问题原来是直接引用Item的问题,换成下面的语句问题解决

CMapXFeature ftr = ftrs.Item(1);

ftr.SetKeyValue(szRoadName);

ftr.Update();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值