MapX画点

由于MAPX是以组建的形式提供给我们,要在上面画点,就必须相应鼠标事件:

添加宏

ON_EVENT(CMapView, IDC_MAP, DISPID_MOUSEDOWN /* MouseDown */, OnMouseDownMap, VTS_I2 VTS_I2 VTS_R4 VTS_R4)

以及实现事件的处理函数

void CMapView::OnMouseDownMap(short Button, short Shift, float screenX, float screenY)

{

 double mapX,mapY ;
 CMapXPoints pts ;
 CMapXPoint pt ;
 CMapXLayer layer ;
 pts.CreateDispatch( pts.GetClsid() );           //创建对象
 pt.CreateDispatch( pt.GetClsid() );               //创建对象
 
 screenX = X;
 
 screenY = Y; 
 m_pMap->ConvertCoord(&screenX,&screenY,&mapX,&mapY,miScreenToMap);                     //屏幕坐标装换为地图坐标
 pt.Set( mapX , mapY ) ;
 pts.Add(pt);                   //将点加入点集合

//查找图层是否存在
 if ( !m_pMap->LayerExist("tmpLayer")  ) {
  layer = m_pMap->GetLayers().CreateLayer("tmpLayer");
 }
 else{
  layer = m_pMap->GetLayers().Item("tmpLayer");
 }
 

//获取图元工程对象,用于创建图元
 CMapXFeatureFactory ff = m_pMap->GetFeatureFactory();
 
 COleVariant vtPoints;
 vtPoints.vt = VT_DISPATCH;
 vtPoints.pdispVal = pts.m_lpDispatch;
 vtPoints.pdispVal->AddRef();
  
//创建多点图元,并加到指定的图层中
 CMapXFeature fe = ff.CreateMultipoint( vtPoints );
 layer.AddFeature( fe ) ;



}

这样就实现了画点操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值