mapx在指定点画图

本文介绍了一个使用 CMapXFeature 和 CMapXStyle 类在地图上指定位置绘制带有透明效果的固定大小图片的方法。当鼠标在地图上按下时,将在该位置创建一个包含预设图片的特征,并将其添加到名为 'tmp' 的图层中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下代码演示了当鼠标按下时,在按下的点处画一个图片

void CAddBasicResourceTool::OnMouseDownMap(short Button, short Shift, float X, float Y)
{

 CMapXFeature ftr;

 CMapXStyle style;


 
if ( !m_pView ) return ;

 
float screenX,screenY ;
 
double mapX,mapY ;

 screenX 
= X;
 
 screenY 
= Y; 

 CHtMapX 
& m_MapX = m_pView->GetMapX() ;

 
if ( m_MapX.GetCurrentTool() == MAP_ADDBASICRESOURCE_TOOL ) {
  
  
if (ftr.CreateDispatch(ftr.GetClsid())){

   ftr 
= m_MapX.GetFeatureFactory().CreateSymbol() ;

   style 
= ftr.GetStyle() ;

   style.SetSymbolBitmapName(
"CAR1-32.BMP");

   style.SetSymbolBitmapSize( 
32 );

   style.SetSymbolBitmapTransparent( TRUE ) ;

   ftr.SetStyle( style ) ;

   m_MapX.ConvertCoord(
&screenX,&screenY,&mapX,&mapY,miScreenToMap);
  
   ftr.GetPoint().Set( mapX , mapY ) ;

   
if ( !m_MapX.LayerExist("tmp") ) {

    m_MapX.GetLayers().CreateLayer( 
"tmp" , "layertmp" ) ;
   }
   
   m_MapX.GetLayers().Item(
"tmp").AddFeature( ftr ) ;

  }
 } 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值