Engine跟踪层自定义图标

本文介绍如何利用IPictureMarkerSymbol接口创建自定义图标,并通过IGraphicTracker接口将其应用于地图上。文中提供了具体实现代码及注意事项。

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

用的是IPictureMarkerSymbol接口,例子程序里有了一个很好的函数,我稍微改了下参数,做成了可以改变路径的了。返回值是ISymbol。

       private ISymbol CreateStandardLogoSymbol(string m_logoPath)
       {
           IPictureMarkerSymbol pictureMarkerSymbol = new PictureMarkerSymbolClass();
           pictureMarkerSymbol.CreateMarkerSymbolFromFile(esriIPictureType.esriIPictureBitmap, m_logoPath);
           pictureMarkerSymbol.Size = 100;
           //IColor whiteTransparencyColor = ESRI.ArcGIS.ADF.Connection.Local.Converter.ToRGBColor(Color.FromArgb(255, 255, 255)) as IColor;
           //pictureMarkerSymbol.BitmapTransparencyColor = whiteTransparencyColor;

           return pictureMarkerSymbol as ISymbol;
       }

 

重新读了一下IGraphicTracker的接口说明,发现IGraphicTracker既能够接受图标,又能够创造图标。。添加用的是add,创造的话用的是CreateSymbol...很幸运的是,CreateSymbol的参数就是ISymble接口的。

于是乎,很简单的几句话就搞定了:

 

         ISymbol mysymbol; //定义一个接口

         //调用上面的函数实例化。。

         mysymbol = CreateStandardLogoSymbol(@"E:\PROJECT\MyFirstArcEngine\MyFirstArcEngine\Image\refresh.bmp");

           //用IGraphicTracker创建IGraphicTrackerSymbol

            IGraphicTrackerSymbol gtSymbol1 = m_graphicTracker.CreateSymbol(mysymbol, null);
            m_GTSymbols.Add(0, gtSymbol1);

 

一切就顺理成章了。。不过经过实验,似乎只能支持bmp的图标,png和icon的似乎都不支持。。

转载于:https://www.cnblogs.com/janeaiai/p/4933905.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值