`
kabike
  • 浏览: 609526 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

arcgis engine C#中在地图上绘制矩形并裁切

    博客分类:
  • GIS
 
阅读更多
绘制矩形需要用到橡皮条工具 RubberBand

            ESRI.ArcGIS.Display.IScreenDisplay screenDisplay = activeView.ScreenDisplay;

            // Constant.
            screenDisplay.StartDrawing(screenDisplay.hDC, (System.Int16)
              ESRI.ArcGIS.Display.esriScreenCache.esriNoScreenCache); // Explicit cast.
            ESRI.ArcGIS.Display.IRgbColor rgbColor = new
              ESRI.ArcGIS.Display.RgbColorClass();
            rgbColor.Red = 255;

            ESRI.ArcGIS.Display.IColor color = rgbColor; // Implicit cast.
            ESRI.ArcGIS.Display.ISimpleFillSymbol simpleFillSymbol = new
              ESRI.ArcGIS.Display.SimpleFillSymbolClass();
            simpleFillSymbol.Color = color;

            ESRI.ArcGIS.Display.ISymbol symbol = simpleFillSymbol as
              ESRI.ArcGIS.Display.ISymbol; // Dynamic cast.
            ESRI.ArcGIS.Display.IRubberBand rubberBand = new
              ESRI.ArcGIS.Display.RubberEnvelopeClass();
            ESRI.ArcGIS.Geometry.IGeometry geometry = rubberBand.TrackNew(screenDisplay,
              symbol);
            screenDisplay.SetSymbol(symbol);
            screenDisplay.DrawRectangle(geometry as ESRI.ArcGIS.Geometry.IEnvelope);
            // Dynamic cast.
            screenDisplay.FinishDrawing();


裁切代码如下,其中envelope是RubberBand工具产生的IGeometry

            String tempDirName = @"E:\tmp\ttt\bar";
            String tempFileName = Guid.NewGuid().ToString() + ".tif";
            String tempFullName = tempDirName + @"\" + tempFileName;
            ILayer pLayer = axMapControl1.get_Layer(0);
            IRasterLayer rasterLayer = (IRasterLayer)pLayer;

            IRaster pRaster = rasterLayer.Raster;

            //Initialize the Clip tool class.
            Clip clip = new Clip();
            //Set the parameters.
            clip.in_raster = pRaster;
            clip.out_raster = tempFullName;

            //The clipping envelope.
            //Comment this line out if clipping with a given dataset.
            clip.rectangle = String.Format("{0} {1} {2} {3}", envelope.XMin, envelope.YMin, envelope.XMax, envelope.YMax);

            //Initialize the geoprocessor and execute the Clip tool.
            Geoprocessor geoprocessor = new Geoprocessor();
            object outRaster = geoprocessor.Execute(clip, null);


一开始尝试使用RasterLayerExport导出特定区域的栅格,结果发现原来float型的值成了int
api上信誓旦旦说
引用
The RasterLayer property is used to set the input RasterLayer to the RasterLayerExport object; this is a required property. Normally, a raster layer is associated with a raster renderer by default. You can change the raster renderer to what you need. If you don't want to use the raster renderer to filter the pixel values during the export, remove the raster renderer from the raster layer before passing it to the RasterLayerExport object


呵呵,怎么remove the raster renderer啊,也不说清楚...差评
分享到:
评论

相关推荐

    ArcGIS-Engine+C#-初学者实例代码.zip_ArcGISEngine_HWE7_arcgis engine_eng

    在本文中,我们将深入探讨如何使用ArcGIS Engine与C#进行地图应用的二次开发,以帮助初学者掌握关键技能,实现界面设计、属性表管理、符号编辑、鹰眼功能及自定义右键菜单等核心功能。 ArcGIS Engine是Esri公司提供...

    arcgis engine c#课件

    在 ArcGIS Engine 开发中,C# 语言可以用来创建地图界面、控制图层、处理地理数据、执行空间分析等。开发者可以利用 .NET Framework 的丰富类库,结合 ArcGIS Engine 提供的地图对象模型,构建功能强大的 GIS 应用...

    ArcGIS Engine C# 开发教程

    ArcGIS Engine C# 开发教程

    C# + ARCGis Engine基础教程

    在本"C# + ARCGIS Engine基础教程"中,我们将深入探讨如何利用C#编程语言与ESRI的ARCGIS Engine进行地图应用的二次开发。ARCGIS Engine是一款强大的地理信息系统(GIS)开发工具,它允许开发者创建桌面、Web以及移动...

    ArcGIS Engine C#实例开发教程

    3. **安装和配置**:详细讲解如何在开发环境中安装ArcGIS Engine SDK,并配置Visual Studio开发环境,使开发者可以创建ArcGIS Engine项目。 4. **地图对象模型**:深入解析ArcGIS Engine的地图对象模型,包括Map、...

    ArcGIS Engine开发:加载MDB中的数据(C#)

    ArcGIS Engine开发:加载MDB中的数据(C#) ArcGIS Engine 是一种广泛应用于 GIS 系统开发的软件开发框架,它提供了强大的空间数据处理和分析能力。在 ArcGIS Engine 开发中,加载空间数据是非常重要的一步,这篇...

    利用ArcGIS Engine c# 的二次开发

    总结,ArcGIS Engine C#二次开发涉及GIS应用的UI设计、控件交互、地图操作、数据管理等多个方面,开发者需要熟悉.NET环境,理解ArcGIS控件的特性,并具备一定的ArcObjects知识,才能有效利用这些工具创建出强大的GIS...

    ArcGIS Engine + C# 实例开发教程.pdf

    【ArcGIS Engine + C# 实例开发教程】是面向ArcGIS Engine初学者的一份详细教程,旨在帮助读者掌握使用C#语言和Visual Studio 2005开发GIS桌面应用程序的基本方法。教程的主要目标是使读者深入理解ArcGIS Engine的...

    ArcGIS Engine+C#实例开发教程 源码

    《ArcGIS Engine+C#实例开发教程》是一本深入讲解如何使用ArcGIS Engine结合C#进行地理信息系统(GIS)开发的专业书籍。ArcGIS Engine是Esri公司提供的一个强大的开发平台,它允许开发者创建桌面、Web以及移动应用,...

    ArcGIS Engine+C#初学包part1(共7部分)

    本压缩包包含了初学ArcGIS Engine(语言工具:C#)的基本学习课件,具体包括以下文件: 1.ArcGIS全套及下载地址.doc——简要介绍了ArcGIS所用到的软件,并给出了具体的下载地址; 2.ArcGIS Engine开发入门介绍.pdf...

    ArcGIS_Engine_C#_实例开发教程

    ArcGIS Engine C# 实例开发教程 ArcGIS Engine 是 ESRI 公司开发的一款 GIS 引擎,提供了强大的 GIS 功能和开发接口。C# 是一种流行的编程语言,广泛应用于 Windows 平台的开发。下面是基于 ArcGIS Engine 和 C# 的...

    《ArcGIS Engine+C#实例开发教程》源码

    在C#中使用ArcGIS Engine,开发者可以利用其丰富的GIS功能,如地图显示、空间分析、数据管理等。通过这个实例开发教程,我们可以学习到以下关键知识点: 1. **环境设置**:首先,我们需要安装ArcGIS Desktop和...

    ArcGIS Engine+C#实例开发教程.rar

    1. **ArcGIS Engine基础知识**:介绍ArcGIS Engine的架构、组件和服务,以及如何在C#环境中集成和配置Engine。 2. **地图对象模型**:讲解ArcGIS Engine中的地图(Map)、图层(Layer)、要素类(FeatureClass)等...

    ArcGIS Engine+C#初学包part2(共7部分)

    本压缩包包含了初学ArcGIS Engine(语言工具:C#)的基本学习课件,具体包括以下文件: 1.ArcGIS全套及下载地址.doc——简要介绍了ArcGIS所用到的软件,并给出了具体的下载地址; 2.ArcGIS Engine开发入门介绍.pdf...

    ArcGIS Engine C# 通视分析

    本文介绍ArcGIS Engine10+C#实现通视分析的实现方法

    C#+ArcGISEngine进行图层的添加要素的添加

    在ArcGIS平台上,ArcGISEngine是一个强大的组件,它允许开发者进行高级的地理信息系统(GIS)应用程序开发。本文将深入探讨如何使用C#语言结合ArcGISEngine来实现图层的添加以及要素的添加功能,这是一项对于GIS开发...

    ArcGIS Engine空间分析Sample

    在这个“ArcGIS Engine空间分析Sample”中,我们主要探讨的是如何在Visual Studio的C#环境下,利用ArcEngine进行空间分析,尤其是克里金插值法的应用。 首先,让我们了解一下C#编程环境。C#是一种现代化、类型安全...

    C#+arcgis Engine9.2开发的一个地图裁剪工具

    标题中的"C#+arcgis Engine9.2开发的一个地图裁剪工具"揭示了本文将要讨论的核心技术:使用C#编程语言结合ArcGIS Engine 9.2进行地图处理,特别是地图裁剪功能的实现。ArcGIS Engine是Esri公司提供的一款强大的GIS...

    C#+ARCGIS ENGINE开发查找地图元素并高亮显示代码

    在本示例中,开发者选择了C#作为主要的开发语言,并使用了ArcGIS Engine进行地图操作。C#是一种面向对象的编程语言,具有强大的类型安全性和垃圾回收机制,非常适合开发桌面应用。而ArcGIS Engine则为这些应用提供了...

Global site tag (gtag.js) - Google Analytics