1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > ArcGIS二次开发基础教程(10):三维分析

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

时间:2023-02-01 01:25:41

相关推荐

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

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应用技能大赛开发题答案点这里,尚在不定期更新中

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。