ArcGIS二次开发基础教程(10):三维分析

ArcGIS二次开发基础教程(10):三维分析ArcGIS二次开发基础教程(10):三维分析坡度分析请务必学会使用帮助文档!!!//DEM数据的坡度分析将分析结果添加到地图上//首先获取DEM数据,方法有很多例如从个人地理数据库获取,也可直接获取文件数据,此处采用第二种方法IWorkspaceFactoryworkspaceFactory=newShapefileWorkspaceFactoryClass();//从文件…

大家好,又见面了,我是你们的朋友全栈君。

ArcGIS二次开发基础教程(10):三维分析

坡度分析

请务必学会使用帮助文档!!!

//DEM数据的坡度分析 将分析结果添加到地图上
//首先获取DEM数据,方法有很多例如从个人地理数据库获取,也可直接获取文件数据,此处采用第二种方法
IWorkspaceFactory workspaceFactory = new ShapefileWorkspaceFactoryClass();
//从文件处打开工作空间
IRasterWorkspace rasterWorkspace = workspaceFactory.OpenFromFile(System.IO.Path.GetDirectoryName(path)) as IRasterWorkspace;
//打开数据集
IRasterDataset rasterDatset = rasterWorkspace.OpenRasterDataset(System.IO.Path.GetFileName(path));
//转换为坡度分析需要的地理数据集
IGeoDataset rasterGeoDataset = rasterDataset as IGeoDataset;
//表面分析接口 请查阅帮助文档
ISurfaceOp surfaceOp = new RasterSurfaceOpClass();
//坡度分析方法
IGeoDataset resultDataset = surfaceOp.Slope(rasterGeoDataset,esriGeoAnalysisSlopeEnum.esriGeoAnalysisSlopeDegrees,Type.Missing);
//将生成的数据集转换为栅格图层加到地图中
IRasterLayer rasterLayer = new RasterLayerClass();
//当栅格数据为单个数据栅格时
rasterLayer.CreateFromRaster(resultDataset as IRaster);
//当栅格数据为栅格数据集时
//rasterLayer.CreateFromDataset((IRasterDataset)reaultDataset);
rasterLayer.Name = "Slope";
axMapControl1.AddLayer(rasterLayer as ILayer);
axMapControl1.Refresh();
axTOCControl1.Update();

通视分析

//通视分析多需要一个要素数据集表示观察点
//首先获取DEM数据,方法有很多例如从个人地理数据库获取,也可直接获取文件数据,此处采用第二种方法
IWorkspaceFactory workspaceFactory = new ShapefileWorkspaceFactoryClass();
//从文件处打开工作空间  path1是DEM数据的路径
IRasterWorkspace rasterWorkspace = workspaceFactory.OpenFromFile(System.IO.Path.GetDirectoryName(path1)) as IRasterWorkspace;
//打开数据集
IRasterDataset rasterDatset = rasterWorkspace.OpenRasterDataset(System.IO.Path.GetFileName(path1));
//转换为坡度分析需要的地理数据集
IGeoDataset rasterGeoDataset = rasterDataset as IGeoDataset;
//获取要素数据集  path2是观察点要素数据集
IFeatrueWorkspace featureWorkspace = workspaceFactory.OpenFromFile(System.IO.Path.GetDirectoryName(path2)) as IFeatureWorkspace;
IFeatrueDataset featureDataset = featureWorkspace.OpenFeatureDataset(System.IO.Path.GetFileName(path2));
IGeoDataset featureGeoDataset = featureDataset as IGeoDataset;
//表面分析接口 请查阅帮助文档
ISurfaceOp surfaceOp = new RasterSurfaceOpClass();
//通视分析方法
IGeoDataset resultDataset = surfaceOp.Visibility(rasterGeoDataset,featureGeoDataset,esriGeoAnalysisVisibilityEnum.esriGeoAnalysisVisibilityFrequency,Type.Missing);
//将生成的数据集转换为栅格图层加到地图中
IRasterLayer rasterLayer = new RasterLayerClass();
rasterLayer.CreateFromRaster(resultDataset as IRaster);
rasterLayer.Name = "Visibility";
axMapControl1.AddLayer(rasterLayer as ILayer);
axMapControl1.Refresh();
axTOCControl1.Update();

历届GIS应用技能大赛开发题答案点这里,尚在不定期更新中

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163455.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java输入输出

    源代码见:点击打开链接引言:在平时java开发中,被输入输出搞得头疼。特此写下这篇博客,一是为了总结输入输出,二是为了和大家分享。如果大家觉得写得好,就请高抬贵手点个赞呗!!!1.输入格式,输出格式控制1.1输入处理java的输入,我们用到Scanner类,可以用它创建一个对象Scannerreader=newScanner(System.in);…

    2022年4月3日
    51
  • java文档注释报错,java文档注释主要使用方法「建议收藏」

    java文档注释报错,java文档注释主要使用方法「建议收藏」一、java包含哪些注释1.//用于单行注释。2./*…*/用于多行注释,从/*开始,到*/结束,不能嵌套。3./**…*/则是为支持jdk工具javadoc.exe而特有的注释语句。这个也就是我们所知的文档注释在命名控制台:使用命令行在目标文件所在目录输入javadoc+文件名.java。二、文档注释的关键名词/**标记用于…

    2025年6月17日
    3
  • 静态代码检查报告

    静态代码检查报告今天在下面刊载一篇小王同学写的静态代码检查报告 图文并茂 条理清晰 1 工具说明 FindBugs 是一个静态分析工具 它检查类或者 JAR 文件 将字节码与一组缺陷模式进行对比以发现可能的问题 有了静态分析工具 就可以在不实际运行程序的情况对软件进行分析 不是通过分析类文件的形式或结构来确定程序的意图 而是通常使用 Visitor 模式 Findbugs 可以

    2025年11月16日
    4
  • JAVA卸载与安装

    JAVA卸载与安装卸载JDK1、删除Java的安装目录电脑-属性-高级系统设置-环境变量-JAVA_HOME的值就是放主程序的目录,删掉2、删除环境变量里的JAVA_HOME电脑-属性-高级系统设置-环境变量-JAVA_HOME这一行删除3、删除path下关于Java的目录电脑-属性-高级系统设置-环境变量-path中删掉跟JAVA_HOME相关的4、Java-versionwin+rcmdJava-version找不到命令安装JDK1,百度搜索JDK8,找到下载地址2、

    2022年5月12日
    37
  • Oracle数据库恢复删除数据的方法

    Oracle数据库恢复删除数据的方法误删oracle数据库中的数据,在不考虑全库备份和利用归档日志情况,怎样快速恢复数据呢?下面介绍3种方法。1.利用oracle提供的闪回方法进行数据恢复,适用于delete删除方式首先获取删除数据的时间点:select*fromv$sqlwheresql_textlike’%table_name%’;根据结果中的sql_text内容,找到delete执行语句对应的删除时间点,执行下面语句查询出删除的数据。select*fromtable_nameasoftime

    2022年7月17日
    38
  • 2020最新eclipse安装教程,配有每一步的安装过程和细节!「建议收藏」

    2020最新eclipse安装教程,配有每一步的安装过程和细节!「建议收藏」已经下过好几次了,现在还是忘了。就把过程直接放上面了。下次再换电脑就直接可以看。。。1.先到官网下载:下载地址:https://www.eclipse.org/downloads/

    2022年6月10日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号