Arcgis Engine栅格渲染(唯一值)IRasterUniqueValueRenderer
来源:互联网 发布:八皇后问题循环算法 编辑:程序博客网 时间:2024/06/05 06:53
参照官方代码后改造而成,有没有属性表都支持。
public static bool UniqueValueRenderer(IColorRamp colorRamp, IRasterLayer rasterLayer, string renderfiled="Value") { try { IRasterUniqueValueRenderer uniqueValueRenderer = new RasterUniqueValueRendererClass(); IRasterRenderer pRasterRenderer = uniqueValueRenderer as IRasterRenderer; pRasterRenderer.Raster = rasterLayer.Raster; pRasterRenderer.Update(); IUniqueValues uniqueValues = new UniqueValuesClass(); IRasterCalcUniqueValues calcUniqueValues = new RasterCalcUniqueValuesClass(); calcUniqueValues.AddFromRaster(rasterLayer.Raster, 0, uniqueValues);//iBand=0 IRasterRendererUniqueValues renderUniqueValues = uniqueValueRenderer as IRasterRendererUniqueValues; renderUniqueValues.UniqueValues = uniqueValues; uniqueValueRenderer.Field = renderfiled; colorRamp.Size = uniqueValues.Count; uniqueValueRenderer.HeadingCount = 1; uniqueValueRenderer.set_Heading(0, "All Data Value"); uniqueValueRenderer.set_ClassCount(0, uniqueValues.Count); bool pOk; colorRamp.CreateRamp(out pOk); IRasterRendererColorRamp pRasterRendererColorRamp = uniqueValueRenderer as IRasterRendererColorRamp; pRasterRendererColorRamp.ColorRamp = colorRamp; for (int i = 0; i < uniqueValues.Count; i++) { uniqueValueRenderer.AddValue(0, i, uniqueValues.get_UniqueValue(i)); uniqueValueRenderer.set_Label(0, i, uniqueValues.get_UniqueValue(i).ToString()); IFillSymbol fs=new SimpleFillSymbol(); fs.Color = colorRamp.get_Color(i); uniqueValueRenderer.set_Symbol(0, i, fs as ISymbol); } pRasterRenderer.Update(); rasterLayer.Renderer = pRasterRenderer; } catch(Exception ex) { return false; } return true; }
官方代码如下:
http://resources.esri.com/help/9.3/arcgisengine/dotnet/77da7a38-c696-407d-b73c-ddb36def6032.htm
public IRasterRenderer UnqueValueRenderer (ESRI.ArcGIS.Geodatabase.IRasterDataset rasterDataset){ try { //Get the raster attribute table and the size of the table. IRaster2 raster = (IRaster2)rasterDataset.CreateDefaultRaster(); ITable rasterTable = raster.AttributeTable; if (rasterTable == null) { return null; } int tableRows = rasterTable.RowCount(null); //Create colors for each unique value. IRandomColorRamp colorRamp = new RandomColorRampClass(); colorRamp.Size = tableRows; colorRamp.Seed = 100; bool createColorRamp; colorRamp.CreateRamp(out createColorRamp); if (createColorRamp == false) { return null; } //Create a unique value renderer. IRasterUniqueValueRenderer uvRenderer = new RasterUniqueValueRendererClass() ; IRasterRenderer rasterRenderer = (IRasterRenderer)uvRenderer; rasterRenderer.Raster = rasterDataset.CreateDefaultRaster(); rasterRenderer.Update(); //Set the renderer properties. uvRenderer.HeadingCount = 1; uvRenderer.set_Heading(0, "All Data Value"); uvRenderer.set_ClassCount(0, tableRows); uvRenderer.Field = "Value"; //Or any other field in the table. IRow row; ISimpleFillSymbol fillSymbol; for (int i = 0; i < tableRows; i++) { row = rasterTable.GetRow(i); uvRenderer.AddValue(0, i, Convert.ToByte(row.get_Value(1))); // Assuming the raster is 8-bit. uvRenderer.set_Label(0, i, Convert.ToString(row.get_Value(1))); fillSymbol = new SimpleFillSymbolClass(); fillSymbol.Color = colorRamp.get_Color(i); uvRenderer.set_Symbol(0, i, (ISymbol)fillSymbol); } return rasterRenderer; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); return null; }}
1 0
- Arcgis Engine栅格渲染(唯一值)IRasterUniqueValueRenderer
- Arcgis Engine栅格数据渲染
- 基于ArcGIS Engine编写的ColorRamp对栅格渲染代码
- ArcGIS Engine 数据渲染
- ArcGIS Engine栅格数据使用总结
- ArcGIS Engine栅格数据使用总结
- ArcGIS Engine栅格数据使用总结
- ArcGIS Engine栅格数据使用总结
- ArcGIS Engine栅格数据使用总结
- ArcGIS Engine栅格数据使用总结
- ArcGIS Engine DEM拉伸渲染
- 转载---Arcgis Server+Asp.net(C#)的唯一值渲染
- ArcGIS Engine 中对栅格数据的波段信息统计
- Arcgis Engine矢量裁剪栅格,调用Mask工具相关代码
- Arcgis Engine矢量裁剪栅格,调用Mask工具相关代码
- ArcGIS Engine 9.2 打开多波段栅格数据
- 唯一值渲染
- UniqueValueRenderer唯一值渲染
- C#的基础总结-----目录与文件
- seekbar使用2
- 软件概要设计应该体现哪些内容
- 再谈YAHOO关于性能优化的N条军规
- HTML css3 根据浏览器宽度设置样式
- Arcgis Engine栅格渲染(唯一值)IRasterUniqueValueRenderer
- 计算机底层知识拾遗(六)理解页缓存page cache和地址空间address_space
- 解决 android studio The following SDK component was not installed: build-tools-21.1.1
- NSJSONSerialization-JSON数据与NSDictionary和NSArray之间的转化
- 我是如何自学Android,资料分享
- Edmonds-Karp算法
- SeekBar使用1
- iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局
- HDU-1009 FatMouse' Trade 贪心