欢迎来到天天文库
浏览记录
ID:37708284
大小:207.80 KB
页数:25页
时间:2019-05-29
《ArcGIS Engine + C# 图层符号选择器的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ArcGISEngine+C#图层符号选择器的实现图1在AE开发中,符号选择器有两种实现方式。一是在程序中直接调用ArcMap中的符号选择器,如下所示:图2二是自定义符号选择器,如图1所示。由于第一种方式前提是必须安装ArcGISDesktop,其界面还是英文的,而对二次开发来说,大部分用户希望应该是中文界面。因此开发人员通常选择第二种方式,本讲也着重讲解第二种方式。直接调用ArcMap中的符号选择器(1)添加ESRI.ArcGIS.DisplayUI的引用。分别在解决方案管理器和代码中添加引用。(2)添加TOCControl的Double_
2、Click事件。(3)实现TOCControl的Double_Click事件。因为种方法不是本讲的重点,故不对代码进行分析,有兴趣的读者请自行理解或结合后面的内容理解。代码如下:privatevoidaxTOCControl1_OnDoubleClick(objectsender,ITOCControlEvents_OnDoubleClickEvente){esriTOCControlItemtoccItem=esriTOCControlItem.esriTOCControlItemNone;ILayeriLayer=null;IBasicM
3、apiBasicMap=null;objectunk=null;objectdata=null;if(e.button==1){axTOCControl1.HitTest(e.x,e.y,reftoccItem,refiBasicMap,refiLayer,refunk,refdata);System.Drawing.Pointpos=newSystem.Drawing.Point(e.x,e.y);if(toccItem==esriTOCControlItem.esriTOCControlItemLegendClass){ESRI.ArcG
4、IS.Carto.ILegendClasspLC=newLegendClassClass();ESRI.ArcGIS.Carto.ILegendGrouppLG=newLegendGroupClass();if(unkisILegendGroup){pLG=(ILegendGroup)unk;}pLC=pLG.get_Class((int)data);ISymbolpSym;pSym=pLC.Symbol;ESRI.ArcGIS.DisplayUI.ISymbolSelectorpSS=newESRI.ArcGIS.DisplayUI.Sym
5、bolSelectorClass();boolbOK=false;pSS.AddSymbol(pSym);bOK=pSS.SelectSymbol(0);if(bOK){pLC.Symbol=pSS.GetSymbolAt(0);}this.axMapControl1.ActiveView.Refresh();this.axTOCControl1.Refresh();}}}(4)编译运行即可。自定义符号选择器AE9.2提供了SymbologyControl控件,极大的方便了图层符号选择器的制作。本讲实现的符号选择器有如下功能。用户双击TOCC
6、ontrol控件中图层的符号时,弹出选择符号对话框,对话框能够根据图层类型自动加载相应的符号,如点、线、面。用户可以调整符号的颜色、线宽、角度等参数。还可以打开自定义的符号文件(*.ServerStyle),加载更多的符号。新建符号选择器窗体新建Winodws窗体,命名为SymbolSelectorFrm,修改窗体的Text属性为“选择符号”。并添加SymboloryControl、PictureBox、Button、Label、NumericUpDown、GroupBox、ColorDialog、OpenFileDialog、Context
7、MenuStrip控件。控件布局如下所示:设置控件属性设置相应控件的相关属性,如下表所示(空则不用修改):控件Name属性Text属性其它SymbologyControlaxSymbologyControlPictureBoxptbPreviewLabellblColor颜色LabellblSize大小LabellblWidth线宽LabellblAngle角度LabellblOutlineColor外框颜色NumericUpDownnudSizeNumericUpDownnudWidthNumericUpDownnudAngleButton
8、btnColor(设置为空)ButtonbtnOutlineColor(设置为空)ButtonbtnMoreSymbols更多符号ButtonbtnOK确定Dial
此文档下载收益归作者所有