AE+C#开发鼠标拖动画点
根据给定的信息,本文将详细解释“AE+C#开发鼠标拖动画点”的核心知识点,包括在MapControl上绘制点的基本原理、所涉及的关键类及其实现过程。 ### 核心知识点解析 #### 1. AE+C#开发环境简介 本案例涉及到的AE+C#开发环境是指在一个基于ArcEngine (AE) 和 C# 的开发环境中进行地图应用开发。ArcEngine 是 Esri 提供的一套桌面 GIS 组件库,开发者可以通过它来构建定制化的地理信息系统应用程序。C# 是一种面向对象的编程语言,广泛应用于 Windows 平台的应用程序开发。 #### 2. MapControlEvents2_OnMouseMoveEvent 事件详解 `MapControlEvents2_OnMouseMoveEvent` 是 ArcEngine 中的一个事件,用于处理鼠标移动事件。当用户在地图上移动鼠标时,此事件会被触发。在示例代码中,此事件用于捕捉鼠标的当前位置坐标,并据此在地图上绘制一个标记。 #### 3. 在MapControl上绘制点 在ArcEngine中,要实现在MapControl上动态绘制点的功能,主要涉及以下几个步骤: - **获取地图对象**:通过 `axMapControl1.Map` 获取当前地图实例。 - **获取活动视图**:地图实例支持 `IActiveView` 接口,该接口提供了对地图视图的操作方法。 - **创建点对象**:利用 `new PointClass()` 创建一个新的点对象,并使用 `PutCoords` 方法设置点的坐标。 - **创建标记元素**:通过 `new MarkerElementClass()` 创建标记元素。 - **设置标记符号**:标记元素需要一个符号来表示,这里使用 `ISimpleMarkerSymbol` 接口创建简单标记符号。 - 设置颜色:`IRgbColor` 类型的颜色对象被创建并赋值给标记符号的 `Color` 属性。 - 设置大小:通过 `Size` 属性设置标记的大小。 - 设置样式:标记符号的样式通过 `Style` 属性指定,如钻石形状 (`esriSMSDiamond`)。 - **添加到地图图形容器**:将创建好的标记元素添加到地图的图形容器 (`IGraphicsContainer`) 中。 #### 4. 代码实现细节 - **获取地图实例**:`pMap = axMapControl1.Map;` - **获取活动视图**:`pActiveView = pMap as IActiveView;` - **创建点对象并设置坐标**:`pPt = new PointClass(); pPt.PutCoords(e.mapX, e.mapY);` - **创建标记元素**:`pMarkerElement = new MarkerElementClass();` - **设置标记符号**: - 创建简单标记符号:`pMarkerSymbol = new SimpleMarkerSymbolClass();` - 设置颜色:`pMarkerSymbol.Color = pColor;` - 设置大小:`pMarkerSymbol.Size = 2;` - 设置样式:`pMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSDiamond;` - **将标记元素添加到地图**: - 将标记元素的几何对象设为之前创建的点:`pElement.Geometry = pPt;` - 添加到地图图形容器:`pGraphicsContainer.AddElement(pMarkerElement as IElement, 0);` - 刷新视图:`pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);` 通过以上步骤,实现了鼠标拖动时在地图上动态绘制标记点的功能。这种方式不仅能够提高用户的交互体验,还能为地图应用提供更加灵活多变的可视化效果。
{
IMap pMap;
IActiveView pActiveView;
//获得控件的Map对象
pMap = axMapControl1.Map;
//QI
pActiveView = pMap as IActiveView;
//新建一个点point
IPoint pPt;
pPt = new PointClass();
pPt.PutCoords(e.mapX,e.mapY);
//产生一个Marker元素
IMarkerElement pMarkerElement;
pMarkerElement = new MarkerElementClass();
//产生修饰Marker元素的symbol
ISimpleMarkerSymbol pMarkerSymbol;
pMarkerSymbol = new SimpleMarkerSymbolClass();
//设置符号颜色
IRgbColor pColor=new RgbColor();
pColor.Red=11;
pColor.Green=200;
pColor.Blue=145;
pMarkerSymbol.Color = pColor;
//设置符号大小
pMarkerSymbol.Size = 2;
//设置符号类型
pMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSDiamond;
IElement pElement;
pElement = pMarkerElement as IElement;
- 蚯蚓哥2012-12-18将就可以参考参考吧
- jinyibocn20082013-10-21还行凑合用吧 感觉不值2积分
- 粉丝: 6
- 资源: 15
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 5G模组升级刷模块救砖以及5G模组资料路由器固件
- C183579-123578-c1235789.jpg
- Qt5.14 绘画板 Qt Creator C++项目
- python实现Excel表格合并
- Java实现读取Excel批量发送邮件.zip
- 【java毕业设计】商城后台管理系统源码(springboot+vue+mysql+说明文档).zip
- 【java毕业设计】开发停车位管理系统(调用百度地图API)源码(springboot+vue+mysql+说明文档).zip
- 星耀软件库(升级版).apk.1
- 基于Django后端和Vue前端的多语言购物车项目设计源码
- 基于Python与Vue的浮光在线教育平台源码设计