地圖表達講課材料_第1頁
地圖表達講課材料_第2頁
地圖表達講課材料_第3頁
地圖表達講課材料_第4頁
地圖表達講課材料_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、學習圖層符號化地圖符號不僅具有確定的空間位置以及空間地物的性質:例如在一個城市管線系統(tǒng)中不同的線符號表示不同類型的管線,不同的點符號表示不同類型的設備等等,而且地圖符號也可以表達與空間位置相關的豐富信息:例如人口密度符號可以直觀的表示人口數(shù)量的空間分布情況。所以地圖數(shù)據(jù)的符號化決定著地圖以何種“面目”展現(xiàn)給地圖的使用者,自此空間數(shù)據(jù)的符號化對GIS開發(fā)有非常重要的意義。ArcGISEngine9.3提供了豐富的控件和組件庫來實現(xiàn)圖層符號化的相關功能。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(集成開發(fā)環(huán)境,簡稱IDE Integrated Develop Environment )2.ArcGIS Engine Develop

3、er kit 9.33.自造一份用于唯一值符號化的點數(shù)據(jù)(文章內有說明)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類實現(xiàn)IRgb

5、Color接口,而HSV類則實現(xiàn)IHsvColor接口,兩個接口分別定義了設置一個RGBColor對象和RGBColor對象需傳遞的值。接下來以一個函數(shù)來通過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對象在地圖符號化的過程中,需要的顏色常常不是一種,而是隨機或有序產生的一組顏色。如果對某一個圖層進行符號化需要上百種顏色,如圖所示,程序開發(fā)者肯定不能逐個產生出來。ArcGIS Engine提供了ColorRamp對象:圖ColorRamp類的對象可以產生顏色帶,這個類實現(xiàn)了IColorRamp接口,它定義了一系列顏色帶的屬性,如 Size(產生多少種顏色),Colors(顏色帶 IEnumColor)。ColorRamp類是一個抽象類,它包括4個子類分別是:RandomColorRamp(隨機顏色帶)、PresetColorRamp(預設顏色帶)、Algo

7、rithmicColorRamp(起止顏色帶)(Algorithmic算法的規(guī)則系統(tǒng)的algorithm梯度,斜坡)、MultiPartColorRamp(疊加顏色帶),它們的說明如表一所示。表一RandomColorRamp 使用HSV顏色模型來確定一串顏色 PresetColorRamp 預設的顏色模式,可存儲13種顏色 AlgorithmicColorRamp 用起始顏色、終止顏色確定一個顏色帶,起始、終止顏色使用HSV模型 MultiPartColorRamp 疊加產生顏色帶 在GIS應用開發(fā)中用到比較多得是RandomColorRamp(隨機顏色帶)和AlgorithmicColor

8、Ramp(起止顏色帶)接下來詳細介紹一下這兩個顏色帶。AlgorithmicColorRamp是通過起止顏色來確定多個在這兩個顏色之間的色帶。AlgorithmicColorRamp類實現(xiàn)了兩個接口:IColorRamp和IAlgorithmicColorRamp,兩個接口之間是接口繼承關系,后者包含了前者所有的方法和屬性。4.3.3生成顏色帶實例   接下來制作一個實例演示AlgorithmicColorRamp(起止顏色帶)的Demo:.創(chuàng)建一個窗體,在窗體上添加5個Picturebox用于分別顯示產生的包含5個顏色的起始顏色帶中的顏色,如圖3所示圖32.在“生成顏色帶

9、”Button的Click事件中生成顏色帶,代碼片段如下所示:private void button1_Click(object sender, EventArgs e)/創(chuàng)建一個新AlgorithmicColorRampClass對象IAlgorithmicColorRamp algColorRamp = new AlgorithmicColorRampClass();/創(chuàng)建起始顏色對象IRgbColor startColor = new RgbColor();startColor.Red = 255;startColor.Green = 0;startColor.Blue = 0;/創(chuàng)建終

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、顏色數(shù)量algColorRamp.Size = 5;/創(chuàng)建顏色帶bool bture = true;algColorRamp.CreateRamp(out bture);關于out 與ref的區(qū)別:兩種參數(shù)類型的設計思想不同,ref的目的在于將值類型參數(shù)當作引用型參數(shù)傳遞到函數(shù),是函數(shù)的輸入參數(shù),并且在函數(shù)內部的任何改變也都將影響函數(shù)外部該參數(shù)的值;而out的目的在于獲取函數(shù)的返回值,是輸出參數(shù),由函數(shù)內部計算得到的值再回傳到函數(shù)外部,因此必須在函數(shù)內部對該參數(shù)賦值,這將沖掉函數(shù)外部的任何賦值,使得函數(shù)外部賦值毫無意義。表現(xiàn)為: 1、out必須在函數(shù)體內初始化,這使得在外面初始化變得沒意義。也

13、就是說,out型的參數(shù)在函數(shù)體內不能得到外面?zhèn)鬟M來的初始值。2、ref必須在函數(shù)體外初始化。3、兩者在函數(shù)體內的任何修改都將影響到函數(shù)體外面。/使用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顏色模型的,顏色將在這個范圍內隨機出現(xiàn)。 RandomColorRamp類實現(xiàn)了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.隨機數(shù)的種子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為開發(fā)人員提供了32種符號,主要分為三大類符號MarkerSymbol(點符號)、 LineSymbol(線符號)和FillSymbol(填充符號)來繪制地理要素的幾何圖形。此外還有兩種特殊類型的符號:一種是TextSymbol用于文字標注;另一種是3D Chart符號,用于顯示餅圖等三維對象,如需詳細了解請查找?guī)椭臋n。MarkerSymbol用于修飾點對象的符號,它擁有十三個子類如表所示,其中不同的子類可以產生不同類型的點符號。所有的MarkerSymbol類都實現(xiàn)了IMarkerSy

19、mbol接口,這個接口定義了標記符號的公共方法和屬性,如角度、顏色、大小和X,Y偏移量等。表二點符號類型描 述ArrowMarkerSymbol預定義的箭頭符號BarChartSymbol柱狀圖符號CharacterMarker3DSymbol三維字體符號CharacterMarkerSymbol字體符號Marker3DSymbol3D 符號MultiLayerMarkerSymbol多個符號疊加產生新點符號PictureMarkerSymbol圖片符號(bmp或emf)PiechartSymbol餅圖符號SimpleMarker3DSymbol簡單3D符號SimpleMarkerSymbol

20、簡單符號StackedChartSymbol堆疊符號TextMarkerSymbol文字符號用來符號化點  常用的有以下5種 類型:圖如何創(chuàng)建MarkerSymbol?接下來以SimpleMarkerSymbol構建為例演示如何創(chuàng)建一個點符號:/創(chuàng)建SimpleMarkerSymbolClass對象ISimpleMarkerSymbol pSimpleMarkerSymbol = new SimpleMarkerSymbolClass();/創(chuàng)建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對象的時候將為大家演示如何用創(chuàng)建的點符號去符號化一個圖層。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類都實現(xiàn)了ILineSymbol接口, ILineSymbol定義了兩個公共屬性:Color和Width。表三線符號類型描述CartographicLineSymbol實心或者虛線線符號HashLineSymbol離散線符號MarkerLineSymbol點線符號MultiLayerLineSymbol多符號疊加產生新線符號PictureLineS

26、ymbol圖片線符號SimpleLine3DSymbol 3D 線符號SimpleLineSymbol預定義風格的線符號TextureLineSymbol (3DAnalyst)紋理貼圖線符號常用的LineSymbol如下圖所示:                                          

27、60;   圖6如何創(chuàng)建LineSymbol?接下來以MarkerLineSymbol構建為例演示如何創(chuàng)建一個線符號: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所示它實現(xiàn)了IFillSymbo

29、l,這個接口定義了兩個屬性Color和OutLine,以滿足所有類型的FillSymbol對象的公共屬性設置。表四填充符號類型描述ColorRampSymbol (Carto)用于渲染Raster數(shù)據(jù)的顏色帶ColorSymbol (Carto)用于渲染Raster數(shù)據(jù)的顏色符號DotDensityFillSymbol點密度填充符號GradientFillSymbol漸變填充符號LineFillSymbol包含線符號的填充符號MarkerFillSymbol包含點符號的填充符號MultiLayerFillSymbol多符號疊加產生新填充符號PictureFillSymbol圖片填充符號Rast

30、erRGBSymbol用于渲染Raster數(shù)據(jù)RGBSymbolSimpleFillSymbol簡單填充符號TextureFillSymbol紋理貼圖填充符號常用的FillSymbol如下圖所示:                                 圖如何創(chuàng)建FillSymbol?接下來以MarkerLineSymbol構建為例演示如何創(chuàng)建一個線符號:/為填充符號創(chuàng)

31、建外框線符號IColor pLineColor = new RgbColorClass();ICartographicLineSymbol pCartoLineSymbol = new CartographicLineSymbolClass();pCartoLineSymbol.Width = 2;pCartoLineSymbol.Color = pLineColor;/創(chuàng)建一個填充符號ISimpleFillSymbol pSmplFillSymbol = new SimpleFillSymbol();/設置填充符號的屬性IColor pRgbClr = new RgbColorClass()

32、;IFillSymbol pFillSymbol = pSmplFillSymbol;pFillSymbol.Color = pRgbClr;pFillSymbol.Outline = pCartoLineSymbol;如果沒有ArcGIS Desktop使用經驗的開發(fā)看了以上代碼片段會一頭霧水,不明白填充符號的創(chuàng)建為什么還要創(chuàng)建線符號等等,如果有ArcGIS Desktop使用經驗就會非常容易理解這些符號的創(chuàng)建的機制,如圖8是SimpleFillSymbol設置信息。所以熟悉ArcGIS Desktop的使用對開發(fā)人員進行ArcGIS Engine開發(fā)非常有用。圖8TextSymbol對象是

33、用于修飾文字元素的,文字元素在要素標注等方面很有用處。TextSymbol符號最重要的設置對象是它的字符,它實現(xiàn)了三個主要的接口來設置字符:ITextSymbol 、 ISimpleTextSymbol 和 IFormattedTextSymbol 。ITextSymbol接口是定義文本字符樣式的主要接口,它定義的ITextSymbol:Font屬性是產生一個TextSymbol符號的關鍵??梢允褂肐FontDisp接口來設置字體的大小和是否是粗體、傾斜等屬性。使用ITextSymbol接口還可以定義TextSymbol對象的顏色、角度、水平排列方式、垂直排列方式和文本等內容。 以下是一個構建

34、TextSymbol的函數(shù):/<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符號進行著色的方法是使用一個餅圖來顯示不同要素類中的不同屬性,不同的屬性按照它們的數(shù)值大小占有一個餅圖中的不同比例的扇形區(qū)域。PieChartSymbol符號進行著色的方法是使用一個餅圖來顯示不同要素類中的不同屬性,不同的屬性按照它們的數(shù)值大小占有一個餅圖中的不同比例的扇形區(qū)域。至于如何創(chuàng)建這些3DChartSymbol符號這里不再提供代碼片段演示,讀者可以根據(jù)前邊學習的知識,自己操作ArcGIS Desktop使用3DChart

38、Symbol制作專題圖,然后根據(jù)ArcGIS Engine的幫助文檔開發(fā)創(chuàng)建3DChartSymbol。4.5使用ServerStyle如果熟悉ArcGIS Desktop的使用,就會對Style符號庫文件有所了解,相對應的在ArcGIS Engine開發(fā)中對應的是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根據(jù)屬性值設置符號大小進行符號化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/創(chuàng)建RasterStretchColorRampRendererClass對象IRasterStretchColorRampRenderer pRStretchRender= new RasterStretchColorRampRendererClass();/QI到IRasterRendererIRasterRenderer pRasterRe

47、nder=pRStretchRender as IRasterRenderer;pRasterRender.Raster = pRasterLayeras IRaster; 強制轉換不成功?pRasterRender.Update();/創(chuàng)建兩個起始顏色IRgbColor pFromRgbColor = new RgbColorClass();pFromRgbColor.Red = 255;IRgbColor pToRgbColor = new RgbColorClass();pToRgbColor.Blue = 255;/創(chuàng)建起止顏色帶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自帶的符號庫進行唯一值符號化一圖層開發(fā)實例

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/創(chuàng)建UniqueValueRendererClass對象IUniqueValueRenderer pUV

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論