ArcEngine開發(fā)入門2課件_第1頁
ArcEngine開發(fā)入門2課件_第2頁
ArcEngine開發(fā)入門2課件_第3頁
ArcEngine開發(fā)入門2課件_第4頁
ArcEngine開發(fā)入門2課件_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

地圖加載和顯示控制圖層ILayer:所有圖層IFeatureLayer:矢量要素圖層,繼承ILayerIGeoFeatureLayer:提供矢量要素圖層的符號化和標(biāo)注支持,繼承IFeatureLayerIRasterLayer:柵格圖層,繼承ILayerMapControl的圖層管理AddLayer(layer,index)AddLayerFrom,index)AddShape,)DeleteLayer(index)MoveLayerTo(fromIndex,toIndex)get_Layer(index)LayerCountvoidAddShape(stringshapeFolder,stringshapeFile){IWorkspaceFactorywsf=newShape();IFeatureWorkspacews=wsf.OpenFrom,0)asIFeatureWorkspace;IFeatureClassfc=ws.OpenFeatureClass(shapeFile);IFeatureLayerlayer=newFeatureLayerClass();layer.FeatureClass=fc;layer.Name=(fcasIDataset).Name;m_mapControl.AddLayer(layer,0);}添加?xùn)鸥駡D層voidAddRaster(stringrasterFolder,stringrasterFile){ IRasterLayerlayer=newRasterLayerClass();layer.CreateFrom(rasterFolder+"\\"+rasterFile);layer.Name=rasterFile;m_mapControl.AddLayer(layer,0);}voidAddRaster(stringfolderName,stringdatasetName){ IWorkspaceFactoryworkspaceFactory=newRasterWorkspaceFactoryClass(); IRasterWorkspacerasterWorkspace=(IRasterWorkspace)workspaceFactory.OpenFrom,0); IRasterDatasetrasterDataset=rasterWorkspace.OpenRasterDataset(datasetName); IRasterLayerrasterLayer=newRasterLayerClass(); rasterLayer.CreateFromDataset(rasterDataset); m_mapControl.AddLayer(layer,0);}圖層的Visible控制ILayer.Visible幾何圖形IGeometry:幾何圖形IPoint:點狀圖形,繼承IGeometryIEnvelope:矩形,繼承IGeometryIPolygon:多邊形,繼承IGeometryIPolyline:線,繼承IGeometry符號ISymbol:符號IMarkerSymbol:點狀符號ILineSymbol:線狀符號(線型)IFillSymbol:填充符號(填充圖案)SimpleLineSymbolpublicISimpleLineSymbolCreateSimpleLineSymbol(IRgbColorrgbColor,doubleinWidth,esriSimpleLineStyleinStyle){if(rgbColor==null){returnnull;}

ISimpleLineSymbolsimpleLineSymbol=newSimpleLineSymbolClass();simpleLineSymbol.Style=inStyle;simpleLineSymbol.Color=rgbColor;simpleLineSymbol.Width=inWidth;

returnsimpleLineSymbol;}SimpleFillSymbolpublicISimpleFillSymbolCreateSimpleFillSymbol(IRgbColorfillColor,esriSimpleFillStylefillStyle,IRgbColorborderColor,esriSimpleLineStyleborderStyle,doubleborderWidth){

if(fillColor==null||fillStyle==null||borderColor==null||borderStyle==null){returnnull;}ISimpleLineSymbolsimpleLineSymbol=newSimpleLineSymbolClass();simpleLineSymbol.Width=borderWidth;simpleLineSymbol.Color=borderColor;simpleLineSymbol.Style=borderStyle;ISimpleFillSymbolsimpleFillSymbol=newSimpleFillSymbolClass();simpleFillSymbol.Outline=simpleLineSymbol;simpleFillSymbol.Style=fillStyle;simpleFillSymbol.Color=fillColor;returnsimpleFillSymbol;}矢量圖層渲染矢量圖層: IFeatureRendererIGeoFeatureLayer.Renderer;設(shè)置新的Renderer后刷新

layer.Renderer=renderer;m_mapControl.ActiveView.Refresh();m_tocControl.Update();SimpleRenderer所有要素采用相同的渲染方式根據(jù)圖層的要素類型創(chuàng)建一個SymbolvoidSetFeatureLayerSimpleRenderer(IFeatureLayerlayer,IColoroutlineColor, IColorfillColor){ISimpleRendererpRender=newSimpleRendererClass();ISimpleFillSymbolsymd=newSimpleFillSymbolClass();symd.Style=esriSimpleFillStyle.esriSFSSolid; symd.Color=fillColor; pRender.Symbol=symdasISymbol;(layerasIGeoFeatureLayer).Renderer=pRenderasIFeatureRenderer;}UniqueValueRenderer字段:至少一個,離散類型,一般式整數(shù)或字符串有限的字段值每個字段值對應(yīng)的Symbol每個字段值對應(yīng)的LabelDefaultSymbolClassBreaksRenderer字段:必須是數(shù)值類型MinimumBreak:最小分段值Breaks:分段值(不含MinimumBreak),需要n個每段對應(yīng)的Symbol每段對應(yīng)的Label可用AlgorithmicColorRamp來設(shè)置漸變顏色

IClassBreaksRendererCreateClassBreaksRenderer(stringfield,double[]breaks,IColor[]colors){IClassBreaksRendererpRender=newClassBreaksRendererClass();pRender.Field=field;pRender.BreakCount=breaks.Length-1;pRender.MinimumBreak=breaks[0];

for(inti=0;i<breaks.Length-1;i++){pRender.set_Break(i,breaks[i+1]);pRender.set_Label(i,string.Format("{0}-{1}", breaks[i],breaks[i+1]));IFillSymbolpSimpleFillSym=newSimpleFillSymbolClass();pSimpleFillSym.Color=colors[i];pRender.set_Symbol(i,pSimpleFillSymasISymbol);}returnpRender; }用AlgorithmicColorRamp獲得漸變顏色

IAlgorithmicColorRamppColorRamp=newAlgorithmicColorRamp();pColorRamp.Algorithm=esriColorRampAlgorithm.esriCIELabAlgorithm;IRgbColorpColor1=newRgbColorClass();IRgbColorpColor2=newRgbColorClass();pColor1.Red=255;pColor1.Green=210;pColor1.Blue=210;pColor2.Red=190;pColor2.Green=0;pColor2.Blue=170;pColorRamp.FromColor=pColor1;pColorRamp.ToColor=pColor2;pColorRamp.Size=breaks.Length;

boolok;pColorRamp.CreateRamp(outok);IEnumColorspEnumColors=pColorRamp.Colors;pEnumColors.Reset();。。。

pSimpleFillSym.Color=pEnumColors.Next();。。。IRasterRendererIRasterUniqueValueRenderer:唯一值分類渲染IRasterClassifyColorRampRenderer:連續(xù)值分級渲染IRasterRGBRenderer:RGB渲染,指定R、G、B波段RasterUniqueValueRenderer一般針對有RasterAttributeTable的柵格RAT:OID、VALUE、COUNT、用戶字段(optional)Raster:IRasterLayer.Raster、IRasterDataset.CreateDefaultRaster()字段字段值:從RAT來每個字段值對應(yīng)的符號(FillSymbol)每個字段值對應(yīng)的Label可用RandomColorRamp獲得隨機(jī)顏色RasterClassifyColorRampRenderer針對連續(xù)值的柵格Raster:IRasterLayer.Raster、IRasterDataset.CreateDefaultRaster()ClassCount,自動按NaturalBreaks方式計算Breaks進(jìn)行分段,也可設(shè)為其他方式或者直接設(shè)置Break值。每段對應(yīng)的符號(FillSymbol)每段對應(yīng)的Label可使用AlgorithmicColorRamp獲得漸變顏色publicIRasterRendererClassifyRenderer(IRasterLayerrasterLayer){ IRasterClassifyColorRampRendererclassifyRenderer=newRasterClassifyColorRampRendererClass();IRasterRendererrasterRenderer=(IRasterRenderer)classifyRenderer;IRasterraster=rasterLayer.Raster;r

溫馨提示

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

評論

0/150

提交評論