欢迎来到天天文库
浏览记录
ID:40054683
大小:485.50 KB
页数:119页
时间:2019-07-18
《c#制作Symbol选择对话框》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、c#制作Symbol选择对话框现在要实现双击toccontrol中的某一层的symbol调出symbol选择对话框.vb中有示例实现了类似于arcmap中的symbol选择对话框,用到了ISymbolSelector接口.你看的是AO的例子,在ENGINE中是没有这个接口的,不过这个例子转换成C#的代码如下:privatevoidaxTOCCtl_OnDoubleClick(objectsender,ESRI.ArcGIS.TOCControl.ITOCControlEvents_OnDouble
2、ClickEvente) { IBasicMapmap=null; objectpOther=null; objectindex=null; if(e.button==1) { m_TOCControl.HitTest(e.x,e.y,refm_TocItem,refmap,refm_TocLayer,refpOther,refindex); System.Drawing.Pointpos=newSystem.Drawing.Point(e.x,e.y); if(th
3、is.m_TocItem==esriTOCControlItem.esriTOCControlItemLegendClass) { ESRI.ArcGIS.Carto.ILegendClasspLC=newLegendClassClass(); ESRI.ArcGIS.Carto.ILegendGrouppLG=newLegendGroupClass(); if(pOtherisILegendGroup) { pLG=(ILegendGroup)pOther
4、; } pLC=pLG.get_Class((int)index); ISymbolpSym; pSym=pLC.Symbol; ESRI.ArcGIS.DisplayUI.ISymbolSelectorpSS=newESRI.ArcGIS.DisplayUI.SymbolSelectorClass(); boolbOK=false; pSS.AddSymbol(pSym); bOK=pSS.SelectSymbol(0); if(bOK)
5、 { pLC.Symbol=pSS.GetSymbolAt(0); } this.axMapCtl.ActiveView.Refresh(); this.axTOCCtl.Refresh(); } } }那么在c#中怎么实现呢?有相应的接口吗?如何实现在MAP空间里选择一块区域打印如何实现在MAP空间里选择一块区域打印?用ARCENGINE里的对象实现,大家都来说说啊把选择的区域对每一个图层做区域切割进保存为shap文件在本地.在对每一个图层做shap文件保
6、存的时候,同时把保存好的shap文件用本地文件的方式加载到一个MapControl控件(或者其它控件,我是自己用PictureBox来显示地图的).然后通过控件把显示的地图数据打印出来就可以了.其中对图层进行切割的代码如下:'‖================================================='‖TrimFeatureClass2ShpFile: 裁剪到shape文件'‖'‖pFC: 裁剪的实体类'‖pPolygon:
7、 裁剪的范围'‖strShpFileName: 输出的shape文件名'‖bShowProgress: 是否显示进度条'‖pTrimedFeatureClass:输出的FeatureClass'‖返回:输出的FeatureClass,nothing-失败'‖=================================================PublicFunctionTrimFeatureClass2ShpFile(pFCAsesriGeoDatabase.IFea
8、tureClass,pPolygonAsesriGeometry.IPolygon,strShpFileNameAsString,bShowProgressAsBoolean)AsesriGeoDatabase.IFeatureClass OnErrorGoToErrorHandler SetTrimFeatureClass2ShpFile=Nothing DimiAsLong DimposAsLong DimpFeatureCursorAsesriG
此文档下载收益归作者所有