1功能简介
在数据的处理中会出现根据需求进行元素的位置和显示样式的修改,使元素的形状,空间位置得到改变,下面将介绍基于PIE SDK的元素位置和显示样式的修改。
2功能实现说明
2.1.1 实现思路及原理说明
第一步 |
设置元素Geometry的信息 |
第二步 |
获取元素的ID和设置修改后的元素Geometry信息 |
第三步 |
修改显示样式 |
第四步 |
更新元素 |
2.1.2 核心接口与方法
接口/类 |
方法/属性 |
说明 |
IGraphicsContainer |
UpdateElement(string id, IElement element) |
更新元素 |
2.1.3示例代码
项目路径 |
百度云盘地址下/PIE示例程序/08元素绘制/08元素的修改 |
视频路径 |
百度云盘地址下/PIE视频教程/08元素绘制/08元素的修改.avi |
示例代码 |
|
1 /// <summary> 2 /// 修改元素的位置和形状 以面元素为例 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 private void toolStripButton_ModifyElement_Click(object sender, EventArgs e) 7 { 8 //1.设置空间信息 9 IPointCollection polygon = new Polygon(); 10 polygon.AddPoint(100, 100, 0); 11 polygon.AddPoint(100, 200, 0); 12 polygon.AddPoint(200, 200, 0); 13 polygon.AddPoint(200, 100, 0); 14 polygon.AddPoint(100, 100, 0); 15 16 //2.设置面元素信息并在地图控件中显示 17 IPolygonElement polyElement = new PolygonElement(); 18 polyElement.Geometry = polygon as IGeometry; 19 polyElement.Symbol = SystemSymbolSetting.Instance.DefaultFillSymbol; 20 string id = polyElement.GetID(); mapControlMain.ActiveView.GraphicsContainer.AddElement(polyElement); mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll); 21 22 //3.设置修改空间信息 23 IPolygonElement polyElement2 = new PolygonElement(); 24 IPointCollection polygon1 = new Polygon(); 25 polygon1.AddPoint(100, 100, 0); 26 polygon1.AddPoint(100, 300, 0); 27 polygon1.AddPoint(400, 200, 0); 28 polygon1.AddPoint(400, 100, 0); 29 polygon1.AddPoint(100, 100, 0); 30 polyElement2.Geometry = polygon1 as IGeometry; 31 32 //4.设置修改的符号信息 33 ISimpleFillSymbol simpleFillSymbol = new SimpleFillSymbol(); 34 simpleFillSymbol.Style = SimpleFillStyle.SFSDense2Pattern; 35 IFillSymbol fillSybol = simpleFillSymbol as IFillSymbol; 36 fillSybol.Color = Color.Green; 37 polyElement2.Symbol = fillSybol; 38 39 //5修改更新元素 mapControlMain.ActiveView.GraphicsContainer.UpdateElement(id, polyElement2);//更新元素 40 } |
2.1.4示例截图
图一 修改前
图二 修改后