ArcGis实现添加MultiLayerMarkerSymbol(多个符号叠加生成新的符号)
实现 生成 添加 多个 符号 ArcGIS 叠加
2023-09-11 14:15:05 时间
private void axMapControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e)
{
//产生一个简单符号
ISimpleMarkerSymbol pMarkerSymbol = new SimpleMarkerSymbolClass();
pMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSCross;
pMarkerSymbol.Color = GetRGBColor(60, 100, 50);
pMarkerSymbol.Angle = 60;
pMarkerSymbol.XOffset = 10;//符号偏移鼠标点击点横坐标的距离
pMarkerSymbol.YOffset = 10;//符号偏移鼠标点击点纵坐标的距离
//产生一个箭头符号
IArrowMarkerSymbol pArrowMarker = new ArrowMarkerSymbolClass();
pArrowMarker.Length = 5;//箭头的顶点到底边的距离
pArrowMarker.Width = 10;//箭头的底边的宽度
pArrowMarker.Color = GetRGBColor(0, 60, 90);
pArrowMarker.XOffset = -10;
pArrowMarker.YOffset = -10;
//产生一个叠加符号并把前面的符号加入
IMultiLayerMarkerSymbol pMulMarker = new MultiLayerMarkerSymbolClass();
pMulMarker.AddLayer(pArrowMarker);
pMulMarker.AddLayer(pMarkerSymbol);
IPoint pPoint = new PointClass();
pPoint.PutCoords(e.mapX, e.mapY);
object o = (object)pMulMarker;
axMapControl1.DrawShape(pPoint, ref o);
}
private IRgbColor GetRGBColor(int red, int green, int blue)
{
IRgbColor pRgbColor = new RgbColorClass();
pRgbColor.Red = red;
pRgbColor.Green = green;
pRgbColor.Blue = blue;
return pRgbColor;
}
{
//产生一个简单符号
ISimpleMarkerSymbol pMarkerSymbol = new SimpleMarkerSymbolClass();
pMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSCross;
pMarkerSymbol.Color = GetRGBColor(60, 100, 50);
pMarkerSymbol.Angle = 60;
pMarkerSymbol.XOffset = 10;//符号偏移鼠标点击点横坐标的距离
pMarkerSymbol.YOffset = 10;//符号偏移鼠标点击点纵坐标的距离
//产生一个箭头符号
IArrowMarkerSymbol pArrowMarker = new ArrowMarkerSymbolClass();
pArrowMarker.Length = 5;//箭头的顶点到底边的距离
pArrowMarker.Width = 10;//箭头的底边的宽度
pArrowMarker.Color = GetRGBColor(0, 60, 90);
pArrowMarker.XOffset = -10;
pArrowMarker.YOffset = -10;
//产生一个叠加符号并把前面的符号加入
IMultiLayerMarkerSymbol pMulMarker = new MultiLayerMarkerSymbolClass();
pMulMarker.AddLayer(pArrowMarker);
pMulMarker.AddLayer(pMarkerSymbol);
IPoint pPoint = new PointClass();
pPoint.PutCoords(e.mapX, e.mapY);
object o = (object)pMulMarker;
axMapControl1.DrawShape(pPoint, ref o);
}
private IRgbColor GetRGBColor(int red, int green, int blue)
{
IRgbColor pRgbColor = new RgbColorClass();
pRgbColor.Red = red;
pRgbColor.Green = green;
pRgbColor.Blue = blue;
return pRgbColor;
}
from:http://blog.sina.com.cn/s/blog_71d88f280100mj5z.html
相关文章
- MD5算法C/C++的实现
- C#反射实现 C# 反射 判断类的延伸类型 使用代码生成工具Database2Sharp快速生成工作流模块控制器和视图代码 C# ADO.NET的SqlDataReader对象,判断是否包含指定字段 页面中添加锚点的几种方式 .net 简单实用Log4net(多个日志配置文件) C# 常用小点
- C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例
- 一个简单的QQ隐藏图生成算法 通过jQuery和C#分别实现对.NET Core Web Api的访问以及文件上传
- 基于 Vue.js 之 iView UI 框架非工程化实践记要 使用 Newtonsoft.Json 操作 JSON 字符串 基于.net core实现项目自动编译、并生成nuget包 webpack + vue 在dev和production模式下的小小区别 这样入门asp.net core 之 静态文件 这样入门asp.net core,如何
- ASP.NET Boilerplate 学习 AspNet Core2 浏览器缓存使用 c#基础,单线程,跨线程访问和线程带参数 wpf 禁用启用webbroswer右键菜单 EF Core 2.0使用MsSql/MySql实现DB First和Code First ASP.NET Core部署到Windows IIS QRCode.js:使用 JavaScript 生成
- PHP array_rand() 函数的特点,我们可以使用它来实现生成随机验证码的功能
- ElasticSearch_dsl实现多字段查询去重过滤详解(script)
- 德国研究 LED灯泡替代WiFi实现高速无线传输
- 定制并发类(四)实现ThreadFactory接口生成自定义的线程
- 使用Roslyn的C#语言服务实现UML类图的自动生成
- Windows下Nginx配置SSL实现Https访问(包含证书生成)
- 如何使用 Scaffold Widget 和 Drawer 属性在 Flutter 中实现导航抽屉
- Delphi中accesss实现树形结构查询系统(一次性生成比较方便)
- Vue3+elementplus搭建通用管理系统实例十二:使用通用表格、表单实现对应功能
- 数据结构 | 第二章 线性表 WD课后算法编程题合集【C++ / 可实现】
- java 语言实现的随机数生成算法
- 【Unity3D日常开发】Unity3D中实现向Web服务器上传图片以及下载图片功能
- 使用product_user_profile来实现用户权限的设定
- android shape实现阴影或模糊边效果
- 【数据库学习】——Python实现mysql数据库SQL文件生成和导入
- C++实现INI文件读写