可视域分析简介
可视域分析也称作通视分析,即在当前位置视线所能看到的地方。该功能的实现依赖于地形进行计算,地形的起伏会导致视线的遮挡,在GIS中地形的起伏是根据DEM(Digital Elevation Model)数据进行表达的。
整体开发思路
利用ArcMap构建可视域分析模型,通过测试点进行模型验证,运行模型后将地图处理结果共享为地图处理服务(GP服务),利用ArcGIS API for JavaScript在前端调用GP服务并进行渲染展示,达到可视域分析效果。
开发准备
推荐开发环境:ArcGIS Desktop 10.3(及其以上)、ArcGIS Server 10.3(及其以上)、ArcGIS API for Javascript 4.10(推荐最新版)
本人开发环境:ArcGIS Desktop 10.2 、ArcGIS Server 10.2、ArcGIS Desktop 10.5、ArcGIS Server10.5 、ArcGIS API for Javascript 4.10
注:一开始以为能全都用ArcGIS 10.2系列完成各项数据准备以及地图服务,在完成了一部分工作后发现ArcGIS 10.2系列相关功能无法实现,又用了新版本的ArcGIS 10.5系列进行了相关功能的实现,ArcGIS 10.2完成的工作也没有舍弃,所以造成了现在的结果,后面会具体介绍ArcGIS 10.2和ArcGIS 10.5各完成了哪些工作。
数据准备:dem数据,本人通过水经注软件下载了青岛市黄岛区的高程数据。也可以从地理空间数据云上免费下载相关的dem数据
开发流程
(一) 将下载的dem数据加载到ArcMap中,并创建一个点要素用于测试,如图所示
(二) 打开模型构建器,依次找到模型-模型属性-环境-工作空间-值,完成对工作空间的设置,使用默认的工作空间,会造成中间的一些缓存无法访问的问题。
(三) 找到ArcToolBox,利用里面的各类工具完成对模型的构建
整体的模型构建思路如下:通过位置点和可视距离生成缓冲区,通过此缓冲区对dem进行掩膜提取,减少计算的dem范围。对提取后的dem和位置点进行视域分析,将输出的栅格进行重分类,输出的栅格一般只有两个值,通过Value字段,将可视的值保留,其余全部设置为NoData,重分类后的生成的栅格数据,进行栅格转面,提取可视域多边形的边界。
3.1 在分析工具-邻域分析中找到缓冲区分析工具,将缓冲区工具拖拽进入模型中。对缓冲区工具框右键获取变量,进行缓冲区距离的参数的设置,也就是我们可视域分析的最远距离。
双击距离参数,进行距离参数值的设置,此处设置为2000米,当然在前端代码中可以进行重新设置,该值仅为默认值。参数值设置完成后右键该参数&#x