地图表达讲课材料_第1页
地图表达讲课材料_第2页
地图表达讲课材料_第3页
地图表达讲课材料_第4页
地图表达讲课材料_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学习图层符号化地图符号不仅具有确定的空间位置以及空间地物的性质:例如在一个城市管线系统中不同的线符号表示不同类型的管线,不同的点符号表示不同类型的设备等等,而且地图符号也可以表达与空间位置相关的丰富信息:例如人口密度符号可以直观的表示人口数量的空间分布情况。所以地图数据的符号化决定着地图以何种“面目”展现给地图的使用者,自此空间数据的符号化对GIS开发有非常重要的意义。ArcGISEngine9.3提供了丰富的控件和组件库来实现图层符号化的相关功能。ArcGIS Engine9.3提供了SymbologyControl控件用于显示ArcGIS符号库中的符号(关于ArcGIS符号请查找相关文档)

2、,而组件库中的组件对象分为Color ,Symbol, Renderer(渲染)三大系列,图层符号化就是通过多个组件对象来合作完成。4.1目标 1.熟悉ArcGIS Engine符号化之Color(颜色)体系2.熟悉ArcGIS Engine符号化之Symbol(符号)体系3.熟悉ArcGIS Engine符号化之Renderer( 渲染)体系4.利用ESRI自带的符号库进行符号化图层4.2准备工作 1.IDE:Visual Studio 2005/2008(集成开发环境,简称IDE Integrated Develop Environment )2.ArcGIS Engine Develop

3、er kit 9.33.自造一份用于唯一值符号化的点数据(文章内有说明)4.3符号化Color(颜色)体系4.3.1 ArcGIS颜色模型 ArcGIS提供Color(颜色)的模型有多种分别是:· RGB颜色模型:最常用,所有颜色都是通过红色(Red)、绿色(Green)、蓝色(Blue)这三原色的混合来显示。· CMY颜色模型:青(Cyan)、洋红(Magenta)和黄(Yellow)三种颜色的简写,是相减混色模式,用这种方法产生的颜色之所以称为相减色,主要用于印刷中。· HSV颜色模型:色彩(H-hue),纯度(S-saturation饱和度),明度(V-va

4、lue纯度)。· Gray模型:没有彩色的,灰度图像由位信息组成,并使用256级的灰色来模拟颜色层次。· HLS模型: Hue(色相)、Luminance(亮度)、Saturation(饱和度)。 图      如上图所示Color对象是一个抽象类,它包括个子类:它有5个颜色子类,即CmykColor(k-黑)、RGBColor、HSVColor、HLSColor和GrayColor,它们可以使用IColor接口定义的方法设置颜色对象的基本属性。在ArcGIS engine中最常使用的两种颜色模型是RGB和HSV,RGB类实现IRgb

5、Color接口,而HSV类则实现IHsvColor接口,两个接口分别定义了设置一个RGBColor对象和RGBColor对象需传递的值。接下来以一个函数来通过R,G,B值来构建一个RGBColor对象private IRgbColor GetRGB(int r,int g,int b)IRgbColor pRgbColor= new RgbColorClass();/构建一个RgbColorClasspRgbColor.Red = r;/设置Red属性pRgbColor.Green = g;/设置Green属性pRgbColor.Blue = b;/设置Blue属性return pRgbCol

6、or;4.3.2 ColorRamp对象在地图符号化的过程中,需要的颜色常常不是一种,而是随机或有序产生的一组颜色。如果对某一个图层进行符号化需要上百种颜色,如图所示,程序开发者肯定不能逐个产生出来。ArcGIS Engine提供了ColorRamp对象:图ColorRamp类的对象可以产生颜色带,这个类实现了IColorRamp接口,它定义了一系列颜色带的属性,如 Size(产生多少种颜色),Colors(颜色带 IEnumColor)。ColorRamp类是一个抽象类,它包括4个子类分别是:RandomColorRamp(随机颜色带)、PresetColorRamp(预设颜色带)、Algo

7、rithmicColorRamp(起止颜色带)(Algorithmic算法的规则系统的algorithm梯度,斜坡)、MultiPartColorRamp(叠加颜色带),它们的说明如表一所示。表一RandomColorRamp 使用HSV颜色模型来确定一串颜色 PresetColorRamp 预设的颜色模式,可存储13种颜色 AlgorithmicColorRamp 用起始颜色、终止颜色确定一个颜色带,起始、终止颜色使用HSV模型 MultiPartColorRamp 叠加产生颜色带 在GIS应用开发中用到比较多得是RandomColorRamp(随机颜色带)和AlgorithmicColor

8、Ramp(起止颜色带)接下来详细介绍一下这两个颜色带。AlgorithmicColorRamp是通过起止颜色来确定多个在这两个颜色之间的色带。AlgorithmicColorRamp类实现了两个接口:IColorRamp和IAlgorithmicColorRamp,两个接口之间是接口继承关系,后者包含了前者所有的方法和属性。4.3.3生成颜色带实例   接下来制作一个实例演示AlgorithmicColorRamp(起止颜色带)的Demo:.创建一个窗体,在窗体上添加5个Picturebox用于分别显示产生的包含5个颜色的起始颜色带中的颜色,如图3所示图32.在“生成颜色带

9、”Button的Click事件中生成颜色带,代码片段如下所示:private void button1_Click(object sender, EventArgs e)/创建一个新AlgorithmicColorRampClass对象IAlgorithmicColorRamp algColorRamp = new AlgorithmicColorRampClass();/创建起始颜色对象IRgbColor startColor = new RgbColor();startColor.Red = 255;startColor.Green = 0;startColor.Blue = 0;/创建终

10、止颜色对象IRgbColor endColor = new RgbColor();endColor.Red = 0;endColor.Green = 255;endColor.Blue = 0;/设置AlgorithmicColorRampClass的起止颜色属性algColorRamp.ToColor = startColor;algColorRamp.FromColor = endColor;(ToColor-the last color;FromColor-the first color 代码中位置是否颠倒?)/设置梯度类型algColorRamp.Algorithm = esriCol

11、orRampAlgorithm.esriCIELabAlgorithm;以下补充内容,用来指定运算法则Algorithm的类型( esriColorRampAlgorithm ConstantsConstantValueDescriptionesriHSVAlgorithm0Use the HSV colorramp algorithm.esriCIELabAlgorithm1Use the CIE Lab colorramp algorithm.CIE Lab标准色彩值esriLabLChAlgorithm2Use the LabLCh colorramp algorithm.)/设置颜色带

12、颜色数量algColorRamp.Size = 5;/创建颜色带bool bture = true;algColorRamp.CreateRamp(out bture);关于out 与ref的区别:两种参数类型的设计思想不同,ref的目的在于将值类型参数当作引用型参数传递到函数,是函数的输入参数,并且在函数内部的任何改变也都将影响函数外部该参数的值;而out的目的在于获取函数的返回值,是输出参数,由函数内部计算得到的值再回传到函数外部,因此必须在函数内部对该参数赋值,这将冲掉函数外部的任何赋值,使得函数外部赋值毫无意义。表现为: 1、out必须在函数体内初始化,这使得在外面初始化变得没意义。也

13、就是说,out型的参数在函数体内不能得到外面传进来的初始值。2、ref必须在函数体外初始化。3、两者在函数体内的任何修改都将影响到函数体外面。/使用IEnumColors获取颜色带IEnumColors pEnumColors = null;pEnumColors = algColorRamp.Colors;/设置个picturebox的背景色为产生颜色带的个颜色this.pictureBox1.BackColor = ColorTranslator.FromOle(pEnumColors.Next().RGB);this.pictureBox2.BackColor = ColorTransl

14、ator.FromOle(pEnumColors.Next().RGB);this.pictureBox3.BackColor = ColorTranslator.FromOle(pEnumColors.Next().RGB);this.pictureBox4.BackColor = ColorTranslator.FromOle(pEnumColors.Next().RGB);this.pictureBox5.BackColor = ColorTranslator.FromOle(pEnumColors.Next().RGB);ColorTranslator :Translates an O

15、LE color value to a GDI+ Color structure.Object Linking and Embedding,对象连接与嵌入,简称OLE技术运行点击Button 结果如图4所示:图4RandomColorRamp对象产生随机颜色带,RandomColorRamp也需要设定一个范围,但是这个范围是HSV颜色模型的,颜色将在这个范围内随机出现。 RandomColorRamp类实现了IRandomColorRamp接口以下是生成RandomColorRamp的代码片段IRandomColorRamp pRandomColorRamp = new RandomColor

16、RampClass(); /* 制作一系列介于橘黄色和蓝绿色之间的随机颜色pRandomColorRamp.StartHue = 40;int 0-360pRandomColorRamp.EndHue = 120;pRandomColorRamp.MinValue = 65; int 0-100pRandomColorRamp.MaxValue = 90;pRandomColorRamp.MinSaturation = 25; int 0-100pRandomColorRamp.MaxSaturation = 45;pRandomColorRamp.Size = 20; The number

17、of colors that will be generated by the CreateRamp method.pRandomColorRamp.Seed = 23; The seed of the random number generator.随机数的种子bool bture = true;pRandomColorRamp.CreateRamp(out bture); Generates a color ramp with length determined by Size value.IEnumColors pEnumColors = pRandomColorRamp.Colors

18、/* 对pEnumColors进行操作4.4符号化Symbol(符号)体系ArcGIS Engine9.3为开发人员提供了32种符号,主要分为三大类符号MarkerSymbol(点符号)、 LineSymbol(线符号)和FillSymbol(填充符号)来绘制地理要素的几何图形。此外还有两种特殊类型的符号:一种是TextSymbol用于文字标注;另一种是3D Chart符号,用于显示饼图等三维对象,如需详细了解请查找帮助文档。MarkerSymbol用于修饰点对象的符号,它拥有十三个子类如表所示,其中不同的子类可以产生不同类型的点符号。所有的MarkerSymbol类都实现了IMarkerSy

19、mbol接口,这个接口定义了标记符号的公共方法和属性,如角度、颜色、大小和X,Y偏移量等。表二点符号类型描 述ArrowMarkerSymbol预定义的箭头符号BarChartSymbol柱状图符号CharacterMarker3DSymbol三维字体符号CharacterMarkerSymbol字体符号Marker3DSymbol3D 符号MultiLayerMarkerSymbol多个符号叠加产生新点符号PictureMarkerSymbol图片符号(bmp或emf)PiechartSymbol饼图符号SimpleMarker3DSymbol简单3D符号SimpleMarkerSymbol

20、简单符号StackedChartSymbol堆叠符号TextMarkerSymbol文字符号用来符号化点  常用的有以下5种 类型:图如何创建MarkerSymbol?接下来以SimpleMarkerSymbol构建为例演示如何创建一个点符号:/创建SimpleMarkerSymbolClass对象ISimpleMarkerSymbol pSimpleMarkerSymbol = new SimpleMarkerSymbolClass();/创建RgbColorClass对象为pSimpleMarkerSymbol设置颜色IRgbColor pRgbColor = new

21、RgbColorClass();pRgbColor.Red = 255;pSimpleMarkerSymbol.Color = pRgbColor as IColor;有必要吗?/设置pSimpleMarkerSymbol对象的符号类型,选择钻石pSimpleMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSDiamond;/设置pSimpleMarkerSymbol对象大小,设置为pSimpleMarkerSymbol.Size = 5;/显示外框线pSimpleMarkerSymbol.Outline = true;/为外框线设置颜色IRg

22、bColor pLineRgbColor = new RgbColorClass();pLineRgbColor.Green = 255;pSimpleMarkerSymbol.OutlineColor = pLineRgbColor as IColor;/设置外框线的宽度pSimpleMarkerSymbol.OutlineSize = 1; 如何使用这个符号,在接下来介绍Renderer对象的时候将为大家演示如何用创建的点符号去符号化一个图层。x is the X coordinate, in pixels, where the mouse button was pressed refer

23、enced against the origin (0, 0) of the MapControl (the top left hand corner). y is the Y coordinate, in pixels, where the mouse button was pressed referenced against the origin (0, 0) of the MapControl (the top left hand corner).mapX is the X coordinate, in map units, where the mouse button was

24、 pressed referenced against the origin (bottom left hand corner) of the IMapControl2:Map. The values returned are in IMapControl2:MapUnits.mapY is the Y coordinate, in map units, where the mouse button was pressed referenced against the origin (bottom left hand corner) of the IMapControl2:

25、Map. The values returned are in IMapControl2:MapUnitsLineSymbol对象是用于修饰线型几何对象的符号,它拥有八个子类如表所示,其中不同的子类可以产生不同类型的线符号,所有的LineSymbol类都实现了ILineSymbol接口, ILineSymbol定义了两个公共属性:Color和Width。表三线符号类型描述CartographicLineSymbol实心或者虚线线符号HashLineSymbol离散线符号MarkerLineSymbol点线符号MultiLayerLineSymbol多符号叠加产生新线符号PictureLineS

26、ymbol图片线符号SimpleLine3DSymbol 3D 线符号SimpleLineSymbol预定义风格的线符号TextureLineSymbol (3DAnalyst)纹理贴图线符号常用的LineSymbol如下图所示:                                          

27、60;   图6如何创建LineSymbol?接下来以MarkerLineSymbol构建为例演示如何创建一个线符号:IArrowMarkerSymbol pArrowMarker = new ArrowMarkerSymbolClass();IRgbColor pRgbColor = new RgbColorClass();pRgbColor.Red = 255;pArrowMarker.Color = pRgbColoras IColor; pArrowMarker.Length = 10;pArrowMarker.Width = 8;pArrowMarker.Style = e

28、sriArrowMarkerStyle.esriAMSPlain;IMarkerLineSymbol pMarkerLine = new MarkerLineSymbolClass();pMarkerLine.MarkerSymbol = arrowMarker;IRgbColor pLineColor = new RgbColorClass();pLineColor.Blue = 255;pMarkerLine.Color = pLineColor as IColor;FillSymbol是用来修饰如多边形等具有面积的几何形体的符号对象,它拥有十一个子类如表4所示它实现了IFillSymbo

29、l,这个接口定义了两个属性Color和OutLine,以满足所有类型的FillSymbol对象的公共属性设置。表四填充符号类型描述ColorRampSymbol (Carto)用于渲染Raster数据的颜色带ColorSymbol (Carto)用于渲染Raster数据的颜色符号DotDensityFillSymbol点密度填充符号GradientFillSymbol渐变填充符号LineFillSymbol包含线符号的填充符号MarkerFillSymbol包含点符号的填充符号MultiLayerFillSymbol多符号叠加产生新填充符号PictureFillSymbol图片填充符号Rast

30、erRGBSymbol用于渲染Raster数据RGBSymbolSimpleFillSymbol简单填充符号TextureFillSymbol纹理贴图填充符号常用的FillSymbol如下图所示:                                 图如何创建FillSymbol?接下来以MarkerLineSymbol构建为例演示如何创建一个线符号:/为填充符号创

31、建外框线符号IColor pLineColor = new RgbColorClass();ICartographicLineSymbol pCartoLineSymbol = new CartographicLineSymbolClass();pCartoLineSymbol.Width = 2;pCartoLineSymbol.Color = pLineColor;/创建一个填充符号ISimpleFillSymbol pSmplFillSymbol = new SimpleFillSymbol();/设置填充符号的属性IColor pRgbClr = new RgbColorClass()

32、;IFillSymbol pFillSymbol = pSmplFillSymbol;pFillSymbol.Color = pRgbClr;pFillSymbol.Outline = pCartoLineSymbol;如果没有ArcGIS Desktop使用经验的开发看了以上代码片段会一头雾水,不明白填充符号的创建为什么还要创建线符号等等,如果有ArcGIS Desktop使用经验就会非常容易理解这些符号的创建的机制,如图8是SimpleFillSymbol设置信息。所以熟悉ArcGIS Desktop的使用对开发人员进行ArcGIS Engine开发非常有用。图8TextSymbol对象是

33、用于修饰文字元素的,文字元素在要素标注等方面很有用处。TextSymbol符号最重要的设置对象是它的字符,它实现了三个主要的接口来设置字符:ITextSymbol 、 ISimpleTextSymbol 和 IFormattedTextSymbol 。ITextSymbol接口是定义文本字符样式的主要接口,它定义的ITextSymbol:Font属性是产生一个TextSymbol符号的关键。可以使用IFontDisp接口来设置字体的大小和是否是粗体、倾斜等属性。使用ITextSymbol接口还可以定义TextSymbol对象的颜色、角度、水平排列方式、垂直排列方式和文本等内容。 以下是一个构建

34、TextSymbol的函数:/<summary>/生成文本符号/</summary>/<param name="pTxtSymbol">文本符号</param>/<param name="sFontName">字体名称</param>/<param name="iFont">字体大小</param>/<param name="iColor">字体颜色</param>public static vo

35、id MakeTextSymbol(ref ITextSymbol pTxtSymbol, string sFontName, int iFont, int iColor)try Font后无Name属性?decimal)iFont;IRgbColor pRGBColor = new RgbColorClass();pRGBColor.RGB = iColor;pTxtSymbol.Color = (IColor)pRGBColor;pTxtSymbol.Angle = 0;pTxtSymbol.RightToLeft = false;pTxtSymbol.HorizontalAlignmen

36、t = esriTextHorizontalAlignment.esriTHACenter;pTxtSymbol.VerticalAlignment = esriTextVerticalAlignment.esriTVABaseline;catch (Exception Err)MessageBox.Show(Err.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);3DChartSymbol是一个抽象类,它拥有三个子类:BarChart、PieChart和StackedChart。如图9所示:

37、图9BarChartSymbol是最常用的三维着色符号,它使用不同类型的柱子来代表一个要素类中不同的属性,而柱子的高度取决于属性值的大小。PieChartSymbol符号进行着色的方法是使用一个饼图来显示不同要素类中的不同属性,不同的属性按照它们的数值大小占有一个饼图中的不同比例的扇形区域。PieChartSymbol符号进行着色的方法是使用一个饼图来显示不同要素类中的不同属性,不同的属性按照它们的数值大小占有一个饼图中的不同比例的扇形区域。至于如何创建这些3DChartSymbol符号这里不再提供代码片段演示,读者可以根据前边学习的知识,自己操作ArcGIS Desktop使用3DChart

38、Symbol制作专题图,然后根据ArcGIS Engine的帮助文档开发创建3DChartSymbol。4.5使用ServerStyle如果熟悉ArcGIS Desktop的使用,就会对Style符号库文件有所了解,相对应的在ArcGIS Engine开发中对应的是ServerStyle符号库,它的结构体系如图10所示。可以通过专门的转换程序把ArcGIS Desktop Style符号库转换为ArcGIS Engine所能够使用的ServerStyle符号库。用于获取ServerStyle符号库中的符号主要涉及到以下接口如表所示:表接口名称功能描述IStyleGallery用于管理Style

39、 GalleryIStyleGalleryStorage管理Style Gallery中的符号库文件IStyleGalleryClass控制符号库中Style Gallery ClassIEnumStyleGalleryItem枚举一组Style Gallery itemsIStyleGalleryItem定义Style Galle ry itme如何获取到一个符号库中符号?接下来以获取ESRI符号库中名称为Rose的符号的流程:1.首先构建一个ServerStyleGallery对象2.其次使用IStyleGalleryStorage接口的AddFile方法加载ServerStyle文件3.

40、遍历ServerGallery中的Class,如果是FillSymbol使用IStyleGallery的GetItems方法返回一个可枚举的包含一系列StyleGalleryItem的EnumStyleGalleryItem对象。4.遍历EnumServerStyleGalleryItme枚举对象中的StylegalleryItme如果名称是Rose即可获取ESRI符号库中名称为Rose的StylegalleryItme,然后通过IStyleGalleryItem的Item属性即可转换为ISymbol。整个流程图如图11所示:        &

41、#160;                                图114.6SymbologyControl控件SymbologyControl用来显示ServerStyle符号库中的符号样式,可以选择在该控件上选择一个符号用来符号化一个图层或者作为一个Element的符号。使用SymbologyControl可以再设计的模式下在其属性页中加载ServerStyle符

42、号库文件,同样也可以使用的LoadStyleFile和RemoveFile方法加载和移除Serverstyle符号库文件。运行效果如图12所示:                         图124.7符号化之Renderer( 渲染)体系表四要素符号化类型描述SimpleRender简单符号化UniqueValueRender唯一值符号化BiUniqueValueRender双变量唯一值符号化ChartRender图表符号化Cla

43、ssBreaksRenderer分类等级符号化DotDensityRenderer点密度符号化ProportionalSymbolRenderer根据属性值设置符号大小进行符号化ScaleDependentRenderer依比例尺符号化RepresentationRenderer制图表达符号化CoTrackSymbologyRenderer(TrackingAnalyst)轨迹符号化(应用于TrackingAnaylyst扩展模块)EnhancedInfoRenderder(TrackingAnalyst)增强信息符号化(应用于TrackingAnaylyst扩展模块)UniqueValueT

44、extRenderer(TrackingAnalyst)唯一值文本符号化(应用于TrackingAnaylyst扩展模块)NAStopRenderer(NetworkAnalyst)停止符号化(应用于网络分析扩展模块)FeatureVertexRenderer(SurveyExt)要素定点符号化(应用于测量分析扩展模块)SharedEdgeRenderer(EditorExt)用于绘制拓扑元素常用的要素符号化类型主要有以下6种类型,如图13所示:图13要素符号化类型描述RasterRGBRenderer栅格RGB符号化RasterUniqueValueRenderer唯一值符号化RasterC

45、olormapRenderer双变量唯一值符号化RasterClassifyColorRampRenderer图表符号化RasterStretchColorRampRenderer分类等级符号化RasterDiscreteColorRenderer点密度符号化   栅格符号化类型结构图如图14所示:图14以下代码片段是对一个RasterLayer进行RasterStretchColorRampRenderer符号化操作:/<summary>/ StretchColorRamp符号化RasterLayer/</summary>/<param na

46、me="pRasterLayer">RasterLayer</param>public void SetStretchColorRampRenderer(IRasterLayer pRasterLayer)try/创建RasterStretchColorRampRendererClass对象IRasterStretchColorRampRenderer pRStretchRender= new RasterStretchColorRampRendererClass();/QI到IRasterRendererIRasterRenderer pRasterRe

47、nder=pRStretchRender as IRasterRenderer;pRasterRender.Raster = pRasterLayeras IRaster; 强制转换不成功?pRasterRender.Update();/创建两个起始颜色IRgbColor pFromRgbColor = new RgbColorClass();pFromRgbColor.Red = 255;IRgbColor pToRgbColor = new RgbColorClass();pToRgbColor.Blue = 255;/创建起止颜色带IAlgorithmicColorRamp pAlgor

48、ithmicColorRamp = new AlgorithmicColorRampClass();pAlgorithmicColorRamp.Size = 255;pAlgorithmicColorRamp.FromColor = pFromRgbColor as IColor;pAlgorithmicColorRamp.ToColor = pToRgbColor as IColor;bool btrue= true;pAlgorithmicColorRamp.CreateRamp(out btrue);/选择拉伸颜色带符号化的波段pRStretchRender.BandIndex = 0;

49、/设置拉伸颜色带符号化所采用的颜色带pRStretchRender.ColorRamp = pAlgorithmicColorRamp as IColorRamp;pRasterRender.Update();/符号化RasterLayerpRasterLayer.Renderer = pRasterRender;catch(Exception Err)MessageBox.Show(Err.Message,"提示",MessageBoxButtons.OK,MessageBoxIcon.Information);4.8利用ESRI自带的符号库进行唯一值符号化一图层开发实例

50、图1 5图 16图17/<summary>/获取符号库中符号/</summary>/<param name="sServerStylePath">符号库全路径名称</param>/<param name="sGalleryClassName">GalleryClass名称</param>/<param name="symbolName">符号名称</param>/<returns>符号</returns>privat

51、e ISymbol GetSymbol(string sServerStylePath, string sGalleryClassName, string symbolName)try/ServerStyleGallery对象IStyleGallery pStyleGaller = new ServerStyleGalleryClass();IStyleGalleryStorage pStyleGalleryStorage = pStyleGaller as IStyleGalleryStorage;IEnumStyleGalleryItem pEnumSyleGalleryItem=null

52、;IStyleGalleryItem pStyleGallerItem = null;IStyleGalleryClass pStyleGalleryClass = null;/使用IStyleGalleryStorage接口的AddFile方法加载ServerStyle文件-*pStyleGalleryStorage.AddFile(sServerStylePath);/遍历ServerGallery中的Classfor (int i = 0; i < pStyleGaller.ClassCount; i+)pStyleGalleryClass = pStyleGaller.get_C

53、lass(i);if (pStyleGalleryClass.Name != sGalleryClassName)    continue;/获取EnumStyleGalleryItem对象pEnumSyleGalleryItem = pStyleGaller.get_Items(sGalleryClassName, sServerStylePath, "");pEnumSyleGalleryItem.Reset();/遍历pEnumSyleGalleryItempStyleGallerItem = pEnumSyleGalleryItem.Next()

54、;while (pStyleGallerItem != null)if (pStyleGallerItem.Name = symbolName)/获取符号ISymbol pSymbol = pStyleGallerItem.Item as ISymbol;Marshal.ReleaseComObject(pEnumSyleGalleryItem);Marshal.ReleaseComObject(pStyleGalleryClass);return pSymbol;pStyleGallerItem = pEnumSyleGalleryItem.Next();Marshal.ReleaseCom

55、Object(pEnumSyleGalleryItem);Marshal.ReleaseComObject(pStyleGalleryClass);  return null;catch (Exception Err)MessageBox.Show(Err.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);return null;/<summary>/设置要素图层唯一值符号化/</summary>/<param name="pFeatureLayer"></param>private void UniqueValueRenderFlyr(IFeatureLayer pFeatureLayer)try/创建UniqueValueRendererClass对象IUniqueValueRenderer pUV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论