




已阅读5页,还剩133页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精选,GIS应用开发DevelopingGISApplicationswithArcObjectsusingC#.NET主讲:兰小机GIS博士、教授Email:landcom8835QQ:305333315课件:4/,精选,兰小机简历,主要经历1988年7月毕业于南方冶金学院工程测量专业,获学士学位,并留校任教1994年6月毕业于武汉测绘科技大学工程测量专业,获硕士学位,回校任教2005年6月毕业于南京师范大学地图学与地理信息系统专业,获理学博士学位,回校任教主要研究方向GIS应用开发分布式并行计算环境下空间数据的存储管理空间数据库理论与GMLGISGML空间数据挖掘空间数据集成与共享,精选,科研项目,国家自然科学基金项目-面向GML的时空关联规则及序列模式挖掘研究(编号:40971234),35万元,主持国家自然科学基金项目-本原GML空间数据库理论及GMLGIS与传统GIS集成研究(编号:40761017),16万元,主持国家自然科学基金项目-GML空间数据存储索引机制研究(编号:40401045),26万元,排名第二地理信息科学江苏省重点实验室开发基金项目-面向对象的GML空间数据库及其应用研究(编号:JK20050302),5万元主持江西省教育厅科技项目GML空间数据库理论及GMLGIS研究,1万元,主持萍乡市基础地理信息系统研究与开发,22万元,主持城市公众地理信息服务系统研究与开发,10万元,主持,精选,教学目标,GIS应用开发课程是GIS研究生重要的专业课程,通过课程的学习,了解ArcGIS软件体系结构及ArcObjects(ArcGISEngine)组件构成,并能熟练使用ArcObjects(ArcGISEngine)进行应用型GIS开发;掌握应用型GIS开发的基本思路、技术方法.,精选,Chap.6空间数据的可视化表达(4学时),本章内容:Color对象Symbol对象符号样式库与符号化控件制作专题图制图表现地图标注,精选,ArcMap中空间数据符号化方法,普通的符号化方法单一符号(SingleSymbol)分类符号(CategorySymbol)UniqueValuesRenderer分级符号(GraduatedSymbol)分级色彩(GraduatedColor)比例符号(ProportionalSymbol)点值符号(Dotdensity)组合符号(MultivariateSymbol)统计图形(StatisticalCharts)制图表现(Representation)(9.2新增功能),精选,空间数据符号化主要元素符号(对象)色彩(对象)着色(对象)符号(对象)着色(对象)IGeoFeatureLayer.Renderer用于要素图层的符号化,符号化信息保存在要素图层中。制图表现(Representation)符号化信息保存在要素类(FeatureClass)中。,精选,6.1颜色对象,颜色(Color)是所有符号和地图元素的基本属性之一。ArcObjects提供了多种颜色模型:RGB(红色、绿色、蓝色)颜色模型:RGBColorHSV(色调、饱和度、亮度)颜色模型:HSVColorCMYK(青色、洋红色、黄色、黑色)颜色模型:CmykColor灰度颜色:GrayColorCIELAB颜色(在ArcObjects中使用,与设备无关)色带(ColorRamp),精选,RGB模型,精选,CMYK模型,精选,HSV模型,hue:0-360saturation:0-100value:0-100,精选,6.1.1Color对象,Color对象是一个抽象类,它有5个颜色子类,即CmykColor、RGBColor、HSVColor、HLSColor和GrayColor,它们可以使用IColor接口定义的方法设置颜色对象的基本属性。,IColor.RGB属性会返回一个LONG数值,而不是RGB模型需要的R、G、B上的三个值,如白色的RGB属性返回值为16777215,而不是用户需要的255、255、255三个值。如果采用ArcObjects的颜色选择对话框选取一个颜色后使用,程序员就必须使用RGB值的写法。,精选,下面是两种数值方式互相转换的函数。RGB值转换为LONG值privatelongRGBToLong(intRed,intGreen,intBlue)returnRed+(0 x100*Green)+(0 x10000*Blue);LONG值转换为RGB值privateshortLongtoRGB(longRGBlong)shortpbyte=newshort3;pbyte0=(short)(RGBlong%0 x100);pbyte1=(short)(RGBlong/0 x100)%0 x100);pbyte2=(short)(RGBlong/0 x10000)%0 x100);returnpbyte;,精选,IRgbColor,ICmykColor,IHsvColor,IHlsColor,和IGrayColor接口继承自IColor接口。,精选,HSV模型颜色构造器,privateIHsvColorHSVColor(inthue,intsaturation,intval)/定义一个IHSVColor类型对象IHsvColorpHsvColor=newHsvColorClass();/设置它的值pHsvColor.Hue=hue;pHsvColor.Saturation=saturation;pHsvColor.Value=val;returnpHsvColor;,精选,RGB颜色构造器,privateIRgbColorgetRGB(intr,intg,intb)IRgbColorpColor=newRgbColorClass();pColor.Red=r;pColor.Green=g;pColor.Blue=b;returnpColor;,精选,6.1.2颜色对话框,ArcObjects中提供了几种颜色对话框供程序员使用:颜色板(Colorpalatte)对象、颜色选择器(ColorSelector)对象和颜色浏览器(ColorBrowser)对象。AvailablewithArcGISDesktop,精选,颜色板对象Colorpalatte,ColorPalette颜色板对象一共排列了120种颜色供用户使用,如图所示。ColorPalette类实现了两个接口:IColorPalette和ICustomColorPalette。,精选,IColorPalette接口定义了Color属性和TrackPopupMenu方法,使用这个接口可以从对话框中获得一个颜色对象。下面是使用调色板对象取出一个颜色的例子:IColorpColor=newRgbColorClass();pColor.RGB=255;/新建一个颜色板对象IColorPalettepPalette=newColorPaletteClass();/定义一个范围结构tagRECTpRect=newtagRECT();pRect.left=10;pRect.top=10;pPalette.TrackPopupMenu(refpRect,pColor,false,0);/获得新的颜色pColor=pPalette.Color;,publicboolTrackPopupMenu(reftagRECTrect,refIColorcurrentColor,refboolorientation,refinthParentWnd);,精选,颜色选择器对象,颜色选择器(ColorSelector)对象提供了一种更精确选择颜色的方法。用户可以点击对话框上方右边的小箭头,选择RGB、CMYK、HSV多种颜色模型,通过拖曳颜色带或者直接输入具体颜色值的方法返回颜色对象,如图所示。,精选,下面是一个使用颜色选择器对象获取颜色对象的代码段:/SettheinitialcolortobediaplyedwhenthedialogopensIColorpColor=newRgbColorClass();pColor.RGB=255;IColorSelectorpSelector=newColorSelectorClass();pSelector.Color=pColor;/Displaythedialogif(pSelector.DoModal(0)IColorpOutColor=pSelector.Color;,精选,颜色浏览器对象,颜色浏览器(ColorBrowser)对象提供了多种颜色模型(RGB,CMYK,HSV,HLS,orgray)供用户选择颜色对象,如图所示。,精选,下面是一个使用颜色浏览器对象对象获取颜色对象的代码段:IRgbColorpNewColor;IRgbColorpInitColor=newRgbColorClass();/thedialogwillopenwithredasadefault.pInitColor.Red=255;IColorBrowserpColorBrowser=newColorBrowserClass();pColorBrowser.Color=pInitColor;boolbColorSet=pColorBrowser.DoModal(0);if(bColorSet)pNewColor=(IRgbColor)pColorBrowser.Color;,精选,6.1.3ColorRamp对象,制作地图专题图的过程中,需要的颜色常常不是一种,而是随机或有序产生的一个颜色带。如果某个着色对象需要100种颜色,程序员肯定不能逐个产生出来,而是可以使用ArcObjects提供的颜色带(ColorRamp)对象。ColorRamp类的对象可以产生颜色带,这个类实现了IColorRamp,定义了一系列颜色带的公共方法,如Size(产生多少种颜色),Colors(颜色带IEnumColor)。,精选,下表是四种颜色带模型的例子。,AvailablewithArcGISEngine,ArcGISDesktop,andArcGISServer.,精选,AlgorithmicColorRamp颜色带,AlgorithmicColorRamp是通过起止颜色来确定多个在这两个颜色之间的色带。AlgorithmicColorRamp类实现了两个接口:IColorRamp和IAlgorithmicColorRamp,两个接口之间是接口继承关系,后者包含了前者所有的方法和属性。,精选,RandomColorRamp颜色带,RandomColorRamp对象供程序员产生随机颜色带,RandomColorRamp也需要设定一个范围,但是这个范围是HSV颜色模型的,颜色将在这个范围内随机出现。,精选,6.2Symbol对象,ArcObjects主要使用MarkerSymbol、LineSymbol和FillSymbol三种符号来绘制地理要素或图形元素的几何形状。此外还有两种特殊的符号:一种是TextSymbol用于文字标注;另一种是3DChartSymbol,用于显示饼图等三维对象。所有的符号类都实现了ISymbol和IMapLevel接口,前者定义了一个符号对象的基本属性和方法;后者定义的MapLevel属性可以确定符号的显示顺序。,精选,6.2.1MarkerSymbol对象,MarkerSymbol对象是用于修饰点对象的符号,它拥有五个子类,其中不同的子类可以产生不同类型的点符号。所有的MarkerSymbol类都实现了IMarkerSymbol接口,这个接口定义了点状符号的公共方法和属性,如角度、颜色、大小和XY偏移量等。点状符号还可以用于构建线、面符号。,精选,SimpleMarkerSymbol实例,ISimpleMarkerSymbolpMarkerSymbol=newSimpleMarkerSymbolClass();pMarkerSymbol.Style=esriSimpleMarkerStyle.esriSMSCross;pMarkerSymbol.Color=getRGB(60,100,50);pMarkerSymbol.Angle=60;pMarkerSymbol.Size=6;pMarkerSymbol.Outline=true;pMarkerSymbol.OutlineSize=2;pMarkerSymbol.OutlineColor=getRGB(166,122,166);IPointpPoint=pMapControl.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X,Y);objectoMarkerSymbol=pMarkerSymbol;pMapControl.DrawShape(pPoint,refoMarkerSymbol);,精选,CharacterMarkerSymbol实例MultiLayerMarkerSymbol实例,精选,6.2.2LineSymbol对象,LineSymbol对象是用于修饰线型几何对象的符号,ILineSymbol定义了两个公共属性,即Color和Width。LineSymbol的子类有:,精选,MarkerLineSymbol实例,privatevoidDrawSelectedFeature(IPolylinepolyline)IArrowMarkerSymbolarrowMarker=newArrowMarkerSymbolClass();arrowMarker.Color=getRGB(255,255,255);arrowMarker.Length=10;arrowMarker.Width=8;arrowMarker.Style=esriArrowMarkerStyle.esriAMSPlain;IMarkerLineSymbolmarkerLine=newMarkerLineSymbolClass();markerLine.MarkerSymbol=arrowMarker;markerLine.Color=getRGB(0,255,255);,精选,ILinePropertieslineProperties=markerLineasILineProperties;ITemplatetemplate=newTemplateClass();template.AddPatternElement(30,10);/Apatternelementisamarkandagapvalue,whichisspecifiedinpoints(approx1/72inch).template.Interval=10;/Intervalisthemultiplierthatdeterminesthewidthofthemarksandgapsinapatternelement.EachmarkandgapvalueismultipliedbytheIntervalwhenthelinesymbolisdrawn.lineProperties.Template=template;DrawSymbol(markerLineasISymbol,polyline,5,30);,精选,privatevoidDrawSymbol(ISymbolsymbol,IGeometrygeometry,intflashCount,intinterval)IScreenDisplaydisplay=m_activeView.ScreenDisplay;display.StartDrawing(0,(short)esriScreenCache.esriNoScreenCache);display.SetSymbol(symbol);for(inti=0;i0)MatchFieldValue2Symbolsymbol=newMatchFieldValue2Symbol(m_hookHelper);symbol.Show(m_hookHelperasSystem.Windows.Forms.IWin32Window);,精选,MatchFieldValue2Symbol,namespaceSymbologypublicpartialclassMatchFieldValue2Symbol:FormpublicMatchFieldValue2Symbol(IHookHelperhookHelper)InitializeComponent();m_hookHelper=hookHelper;m_activeView=m_hookHelper.ActiveView;m_map=m_hookHelper.FocusMap;,精选,privatevoidMatchFieldValue2Symbol_Load(objectsender,EventArgse)/GettheArcGISinstalllocationstringsInstall=ESRI.ArcGIS.RuntimeManager.ActiveRuntime.Path;stylesPath=sInstall+“Styles;cbxStyles.Items.Clear();cbxStylesAddItems(stylesPath);cbxStyles.Text=defaultStyle;if(m_map.LayerCount!=0)layer2Symbolize=m_map.get_Layer(0)asIFeatureLayer;cbxLayersAddItems();rdoAllLayers.Checked=true;,精选,privatevoidcbxStylesAddItems(stringpath)stringserverstyleFiles=System.IO.Directory.GetFiles(stylesPath,*.serverstyle,SearchOption.AllDirectories);/stringstyleFiles=System.IO.Directory.GetFiles(stylesPath,*.style,SearchOption.AllDirectories);cbxStylesAddItems(serverstyleFiles);/cbxStylesAddItems(styleFiles);privatevoidcbxStylesAddItems(stringfiles)if(files.GetLength(0)=0)return;foreach(stringfileinfiles)cbxStyles.Items.Add(file);if(file.ToLower().Contains(PXFGIS.ServerStyle.ToLower()defaultStyle=file;,精选,IStyleGallerystyleGallery=null;privatevoidcbxStyles_SelectedIndexChanged(objectsender,EventArgse)if(cbxStyles.SelectedItem=null)return;stylesPath=cbxStyles.SelectedItem.ToString();styleFileExt=System.IO.Path.GetExtension(stylesPath).ToLower();if(styleFileExt=.serverstyle)styleGallery=newServerStyleGalleryClass();styleGallery.ImportStyle(stylesPath);if(styleFileExt=.style)styleGallery=newStyleGalleryClass();styleGallery.LoadStyle(stylesPath,);IStyleGalleryStoragestyleStorage=styleGalleryasIStyleGalleryStorage;styleStorage.TargetFile=stylesPath;,精选,privatevoidbtnSymbolize_Click(objectsender,EventArgse)if(processMode=AllLayers)RendererAllLayers();if(processMode=OneLayer)RendererOneLayer(layer2Symbolize);m_activeView.PartialRefresh(esriViewDrawPhase.esriViewGeography,null,m_activeView.Extent);,精选,privatevoidRendererOneLayer(IFeatureLayerfeatureLayer)if(featureLayer=null)return;IGeoFeatureLayerpGeoFeatureL=(IGeoFeatureLayer)featureLayer;IFeatureClassfeatureClass=pGeoFeatureL.FeatureClass;/找出rendererField在字段中的编号intlfieldNumber=featureClass.FindField(strRendererField);if(lfieldNumber=-1)MessageBox.Show(Cantfindfieldcalled+strRendererField);return;IUniqueValueRendererpUniqueValueR=CreateRenderer(featureClass);if(pUniqueValueR=null)return;pGeoFeatureL.Renderer=(IFeatureRenderer)pUniqueValueR;,精选,privateIUniqueValueRendererCreateRenderer(IFeatureClassfeatureClass)intuniqueValuesCount=GetUniqueValuesCount(featureClass,strRendererField);IEnumeratorenumerator=GetUniqueValues(featureClass,strRendererField);if(uniqueValuesCount=0)returnnull;IEnumColorspEnumRamp=GetEnumColorsByRandomColorRamp(uniqueValuesCount)pEnumRamp.Reset();IUniqueValueRendererpUniqueValueR=newUniqueValueRendererClass();pUniqueValueR.FieldCount=1;pUniqueValueR.set_Field(0,strRendererField);IEnumStyleGalleryItemstyleItems=null;IStyleGalleryItemstyleItem=null;IColorpColor=null;ISymbolsymbol=null;enumerator.Reset();,精选,while(enumerator.MoveNext()objectcodeValue=enumerator.Current;stringstrCode=codeValue.ToString();stringmidCode=strCode.Substring(0,2)+00;styleItems=GetStyleItems(featureClass.ShapeType,midCode);styleItems.Reset();styleItem=styleItems.Next();while(styleItem!=null)if(styleItem.Name.Length=8)stringitemName=styleItem.Name.Substring(0,8);if(strCode=itemName)symbol=(ISymbol)styleItem.Item;break;styleItem=styleItems.Next();,精选,if(symbol=null)pColor=pEnumRamp.Next();symbol=CreateSimpleSymbol(featureClass.ShapeType,pColor);pUniqueValueR.AddValue(strCode,strRendererField,symbol);returnpUniqueValueR;,精选,privateSystem.Collections.IEnumeratorGetUniqueValues(IFeatureClassfeatureClass,stringstrField)ICursorcursor=(ICursor)featureClass.Search(null,false);IDataStatisticsdataStatistics=newDataStatisticsClass();dataStatistics.Field=strField;dataStatistics.Cursor=cursor;System.Collections.IEnumeratorenumerator=dataStatistics.UniqueValues;(dataStatistics.UniqueValueCount)returnenumerator;,精选,privateIEnumStyleGalleryItemGetStyleItems(esriGeometryTypegeometryType,stringmidCode)IEnumStyleGalleryItemenumStyleGalleryItem=null;switch(geometryType)caseESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPoint:enumStyleGalleryItem=styleGallery.get_Items(MarkerSymbols,stylesPath,midCode);break;caseESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolyline:enumStyleGalleryItem=styleGallery.get_Items(LineSymbols,stylesPath,midCode);break;caseESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolygon:enumStyleGalleryItem=styleGallery.get_Items(FillSymbols,stylesPath,midCode);break;default:break;returnenumStyleGalleryItem;,精选,privateIEnumColorsGetEnumColorsByRandomColorRamp(intcolorSize)IRandomColorRamppColorRamp=newRandomColorRampClass();pColorRamp.StartHue=0;/0pColorRamp.EndHue=360;/360pColorRamp.MinSaturation=15;/15pColorRamp.MaxSaturation=30;/30pColorRamp.MinValue=99;/99pColorRamp.MaxValue=100;/100pColorRamp.Size=colorSize;boolok=true;pColorRamp.CreateRamp(outok);IEnumColorspEnumRamp=pColorRamp.Colors;pEnumRamp.Reset();returnpEnumRamp;,精选,privateISymbolCreateSimpleSymbol(esriGeometryTypegeometryType,IColorpColor)ISymbolsymbol=null;switch(geometryType)caseesriGeometryType.esriGeometryPoint:ISimpleMarkerSymbolmarkerSymbol=newSimpleMarkerSymbolClass();markerSymbol.Color=pColor;markerSymbol.Size=2;symbol=markerSymbolasIsymbol;break;,精选,CaseesriGeometryType.esriGeometryPolyline:ISimpleLineSymbollineSymbol=newSimpleLineSymbolClass();lineSymbol.Color=pColor;lineSymbol.Width=0.2;symbol=lineSymbolasISymbol;break;casesriGeometryType.esriGeometryPolygon:ISimpleFillSymbolfillSymbol=newSimpleFillSymbolClass();fillSymbol.Color=pColor;symbol=fillSymbolasISymbol;break;Default:break;returnsymbol;,精选,6.3.2SymbolSelector与StyleSelector对象,尽管使用StyleGallery或ServerStyleGallery对象能够选择系统中已经存在的样式符号,但是这种选择并不方便,不具备可视化图形界面让用户选择。因此ArcObjects提供了SymbolSelector、StyleSelector对象及SymbologyControl控件,通过对话框,可以让用户以直观的方式来进行符号、样式的选择。,精选,SymbolSelector符号选择对话框对象,ArcMap里面预存了很多标准符号,使用它可以帮助用户可视化。ArcGIS9.2提供了SymbologyControl,用于符号的选择。,精选,SymbolSelector实现了ISymbolSelector接口,通过它定义的方法可以从对话框中取出一个Symbol对象。publicboolAddSymbol(ISymbolsymbol);AddSymbol方法用于定义SymbolSelector对话框中显示哪种类型的符号。publicboolSelectSymbol(inthWnd);SelectSymbol方法用于显示SymbolSelector对话框,checkthereturnvaluetodetermineiftheuserclickedOK(True)orCancel(False).publicISymbolGetSymbolAt(intindex);GetSymbolAt方法使用索引序号0提取用户选择的符号。,精选,privateISymbolGetSymbolBySymbolSelector(esriGeometryTypegeometryType)ISymbolSelectorpSymbolSelector=newSymbolSelectorClass();ISymbolsymbol=null;switch(geometryType)caseesriGeometryType.esriGeometryPoint:symbol=newSimpleMarkerSymbolClass();break;caseesriGeometryType.esriGeometryPolyline:symbol=newSimpleLineSymbolClass();break;caseesriGeometryType.esriGeometryPolygon:symbol=newSimpleFillSymbolClass();break;default:break;,精选,pSymbolSelector.AddSymbol(symbol);boolresponse=pSymbolSelector.SelectSymbol(0);if(response)symbol=pSymbolSelector.GetSymbolAt(0);returnsymbol;returnnull;,精选,StyleSelector分为两大类型:一种是MapGridselector对象,它是用来设置地图格网的;另一种是用于设置MapSurround的,如BackgroundSelector、BorderSelector、LabelStyleSelector、LegendItemSelector、NorthArrowSelector、ScaleBarSelector和ScaleTextSelector对象。IStyleSelector接口定义的方法让程序员可以使用这些对话框进行选择,IStyleSelector.DoModal方法用于打开对话框,而使用IStyleSelector.Getstyle方法则用于选择具体的样式对象。,精选,privateobjectStyleSelectorScaleBar()IStyleSelectorpStyleSelector=newScaleBarSelectorClass();boolok=pStyleSelector.DoModal(0);if(ok)objectoStyle=pStyleSelector.GetStyle(0);returnoStyle;returnnull;,精选,6.3.3IStyleDialog接口,IStyleDialog接口定义了属性和方法来控制StyleManager和StyleReferences对话框,该接口只提供了一个属性Title和一个方法DoModal,前者用于设置对话框的标题,后者用于打开对话框。实现该接口的类有两个:StyleManagerDialog和StyleReferencesDialog。StyleManagerDialog用于管理Map文档中引用的样式及其中的样式条目(styleitems);StyleReferencesDialog用于管理ArcMap引用的样式文件。,精选,精选,privatevoidmnuStyleManager_Click(objectsender,System.EventArgse)stringpStyleGalPath=C:ProgramFilesArcGISStylesESRI.ServerStyle;IStyleGallerypStyleGallery=newServerStyleGalleryClass();pStyleGallery.ImportStyle(pStyleGalPath);IStyleDialogpStyleDialog=newStyleManagerDialogClass();pStyleDialog.DoModal(pStyleGallery,0);,publicboolDoModal(IStyleGallerystyleGallery,intparent);,精选,publicvoidOpenStyleManagerDialog(IApplicationapplication)if(application=null)return;IMxDocumentmxDocument=(IMxDocument)application.Document;IStyleGallerystyleGallery=mxDocument.StyleGallery;IStyleDialogstyleManagerDialog=newStyleManagerDialogClass();styleManagerDialog.Title=dialogTitle;styleManagerDialog.DoModal(styleGallery,application.hWnd);,精选,publicvoidOpenStyleReferencesDialog(IApplicationapplication)if(application=null)return;IMxDocumentmxDocument=(IMxDocument)application.Document;IStyleGallerystyleGallery=mxDocument.StyleGallery;IStyleDialogstyleReferencesDialog=newStyleReferencesDialogClass();styleReferencesDialog.Title=dialogTitle;styleReferencesDialog.DoModal(styleGallery,application.hWnd);,精选,6.3.4符号化控件-SymbologyControl,SymbologyControl用于显示ServerStyle文件(及Style文件,如果安装了ArcGISDesktop)的内容及自定义符号化。SymbologyControl使得最终用户能够选择单个符号,用于图层的着色或元素的符号。在程序设计阶段,可以通过SymbologyControl的属性页,将ServerStyle文件载入SymbologyControl控件;也可以通过编程,使用LoadStyleFile方法将ServerStyle文件载入SymbologyControl控件,使用RemoveFile方法从控件中移除ServerStyle文件;使用LoadDesktopStyleFile方法将Style文件载入SymbologyControl控件。,精选,精选,ISymbologyControl,精选,SymbologyStyleClassSymbologyControl一次只能显示一个SymbologyStyleClass中的内容(点状符号或线状符号或填充符号等)。使用ISymbologyControl.StyleClass属性可以获取或设置当前的SymbologyStyleClass,ISymbologyControl.GetStyleClass方法返回特定的SymbologyStyleClass.ISymbologyStyleClass接口定义的属性方法用于管理SymbologyStyleClass中的样式条目(StyleGalleryItem)。使用该接口种的RemoveItem、SelectItem、PreviewItem方法可以移除、选择、预览单个的样式条目,使用AddItem方法可以添加定制的符号。SymbologyStyleClass的类别由esriSymbologyStyleClass常量定义,该常量的取值为:esriStyleClassMarkerSymbols、esriStyleClassLineSymbols、esriStyleClassFillSymbols、esriStyleClassNorthArrows、esriStyleClassScaleBars等22个。,精选,esriSymbologyStyleClass,精选,精选,精选,publicIStyleGalleryItemm_styleGalleryItem=null;privatevoidSymbologyForm_Load(objectsender,EventArgse)/GettheArcGISinstalllocationstringsInstall=ESRI.ArcGIS.RuntimeManager.ActiveRuntime.Path;stringdefaultStyle=System.IO.Path.Combine(sInstall,StylesESRI.ServerStyle);if(System.IO.File.Exists(defaultStyle)/LoadtheESRI.ServerStylefileintotheSymbologyControlaxSymbologyControl1.LoadStyleFile(defaultStyle);axSymbologyControl1.StyleClass=esriSymbologyStyleClass.esriStyleClassMarkerSymbols;cbxStyles.Text=defaultStyle;stylesPath=sInstall+Styles;cbxStyles.Items.Clear();cbxStylesAddItems(stylesPath);,精选,privatevoidcbxStyles_SelectedIndexChanged(objectsender,EventArgse)if(cbxStyles.SelectedItem=null)return;axSymbologyControl1.Clear();stylesPath=cbxStyles.SelectedItem.ToString();stringext=System.IO.Path.GetExtension(stylesPath).ToLower();if(ext=.serverstyle)axSymbologyControl1.LoadStyleFile(stylesPath);/if(ext=.style“)axSymbologyControl1.LoadDesktopStyleFile(stylesPath);,精选,privatevoidcbxStyleClass_SelectedIndexChanged(objectsender,EventArgse)if(cbxStyleClass.SelectedItem=null)return;strStyleClass=cbxStyleClass.Selec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 英语单元整合说课课件教学
- 英语作文介绍信课件
- 村级篮球馆管理办法
- 后评价管理办法模式
- 办公区气泡管理办法
- 增值阁发票管理办法
- 失业金审核管理办法
- 家电厂定制管理办法
- 新能源考核管理办法
- 哈尔滨节水管理办法
- 2024年安徽省濉溪县人民医院公开招聘医务工作人员试题带答案详解
- 2025年浙江省宁海县事业单位公开招聘辅警考试题带答案分析
- 消化内科重点专科申报
- 2025年低空经济试题及答案
- 四川省广安市(武胜、岳池、华蓥)2024-2025学年八年级下学期期末考试物理试卷(含答案)
- 脑卒中的饮食护理课件
- 盾构安全培训课件模板
- 食管癌的围手术期护理
- 2025年湖北省中考语文试卷真题(含标准答案及解析)
- 全国省市电子表格
- 指甲-髌骨综合征肾脏病变专题
评论
0/150
提交评论