AE学习笔记之地图符号化
来源:互联网 发布:mac查询端口占用情况 编辑:程序博客网 时间:2024/05/16 05:17
地图符号化就是对ArcGIS Engine中加载的地图图层进行渲染,地图图层可以分为点、线、面、三种形式。根据每个图层的图层类型可以分别对点、线、面要素,即MarkerSymbol、LineSymbol、和FillSymbol 进行渲染。
1、点对象
MarkerSymbol对于修饰点对象符号拥有五个子类:SimpleMarkerSymbol、ArrowMarkerSymbol、CharacterMarkerSymbol、PictureMarkerSymbol 和 MultilayerMarkerSymbol。一下以SimpleMarkerSymbol为例实现点对象的修饰:
try { //获得点图层 IFeatureLayer layer; layer = axMapControl1.get_Layer(0) as IFeatureLayer; for (int i = 0; i < axMapControl1.Map.LayerCount; ++i) //寻找点图层 { layer = axMapControl1.get_Layer(i) as IFeatureLayer; if (layer.FeatureClass.ShapeType == esriGeometryType.esriGeometryPoint) break; } if (layer.FeatureClass.ShapeType != esriGeometryType.esriGeometryPoint) return; //QI到IGeoFeatureLayer接口 IGeoFeatureLayer geoFeatureLayer = layer as IGeoFeatureLayer; //新建SimpleRendererClass对象 SimpleRenderer simpleRender = new SimpleRendererClass(); ISimpleMarkerSymbol pMarkerSymbol; //创建颜色 IColor color; color = new RgbColorClass(); color.RGB = 225; //创建SimpleMarkerSymbolClass pMarkerSymbol = new SimpleMarkerSymbolClass(); pMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSCircle; pMarkerSymbol.Color = color; pMarkerSymbol.Angle = 60; pMarkerSymbol.Size = 6; //将MarkerSymbol 赋予simpleRender的Symbol simpleRender.Symbol = pMarkerSymbol as ISymbol; geoFeatureLayer.Renderer = simpleRender as IFeatureRenderer; axMapControl1.Refresh(); } catch (Exception ex) { MessageBox.Show(ex.Message); }
具体流程为:首先,新建一个要素图层的接口,并将mapControl中的第一个图层赋予该图层。
然后,将要素图层转化为地理要素图层。
接着,新建一个SimpleRendererClass对象,和ISimpleMarkerSymbol接口。设置SimpleMarkerSymbol 的颜色、类型、尺寸等信息。
//将MarkerSymbol 赋予simpleRender的Symbol
simpleRender.Symbol = pMarkerSymbol as ISymbol;
geoFeatureLayer.Renderer = simpleRender as IFeatureRenderer;
最后,设置地理要素的Render。
2、线要素
线要素与点要素相似,不过线要素的子类有8个,分别是:CartographicLineSymbol、HashLineSymbol、MarkLineSymbol、MultiLayerLineSymbol、SimpleLineSymbol、PictureLineSymbol、SimpleLine3DSymbol和TextureLineSymbol。以SimleLineSymbol为例:
private void simpleLineSymbolToolStripMenuItem_Click(object sender, EventArgs e) { IGeoFeatureLayer geoFeatureLayer; geoFeatureLayer = axMapControl1.get_Layer(0) as IGeoFeatureLayer; ISimpleRenderer simpleRender; simpleRender = new SimpleRendererClass(); IRgbColor HC = new RgbColor(); HC.Red = 225; HC.Green = 0; HC.Blue = 0; ISimpleLineSymbol simpleLineSymbol = new SimpleLineSymbolClass(); simpleLineSymbol.Color = HC; simpleLineSymbol.Width = 5; simpleLineSymbol.Style = esriSimpleLineStyle.esriSLSDashDot; simpleRender.Symbol = simpleLineSymbol as ISymbol; geoFeatureLayer.Renderer = simpleRender as IFeatureRenderer; axMapControl1.Refresh(); axTOCControl1.Update(); }
- AE学习笔记之地图符号化
- AE学习笔记之地图编辑(上)
- AE学习笔记之空间查询
- AE学习笔记
- AE学习笔记之添加ToolbarControl控件命令
- AE学习笔记之右键菜单的添加与实现
- 地图符号化-柱状图
- AE学习笔记(1)
- AE学习笔记(1)
- CDISC SDTM AE domain学习笔记 - 1
- CDISC SDTM AE domain学习笔记 - 2
- Android学习笔记之百度地图基础知识
- Android学习笔记之百度地图Overlay
- Android学习笔记之百度地图基础知识
- android笔记之百度地图学习
- cocos2d js 学习笔记之瓦片地图
- AE学习笔记之距离量测和面积量测
- ae 地图编辑
- MVC---Android App的设计架构:MVC,MVP,MVVM与架构经验谈
- MFC连接access数据库的时候读取date类型遇到的问题
- VS2015使用小技巧 winform编辑窗体(拖拽控件)的的时候,工具箱挡住了窗体,如何解决
- 数据库连接池的原理机制
- bzoj 2669: [cqoi2012]局部极小值(dp+容斥原理)
- AE学习笔记之地图符号化
- 外部解决滑动冲突水平方向和竖直方向滑动冲突实例
- OAuth2.0大致模型介绍
- 剩余的文件数
- 400. Nth Digit
- Leetcode #312 Burst Balloons
- CAP协议字符串签名
- mysql binlog row格式查看
- python 定时任务