在之前的文章介绍过使用ArcMap发布GP分析服务,由于ArcGIS后续不在更新ArcMap,改用ArcGIS Pro,本文对ArcGIS Pro发布GP分析服务进行说明。

本文以等高线分析为例,使用ArcGIS Pro软件,从GP分析服务的创建、发布、调用全过程进行演示。

使用ArcMap发布GP服务请跳转:

本文示例使用(因为本人portal的授权的版本只有10.5的,故使用10.5进行示例):

软件:ArcGIS Pro3.0.1(破解版),

  ArcGIS JS API4.16

注:阅读本文前需要对ArcGIS GP服务,模型构建器等有一定了解,本文不会详细描述GP工具的构建过程。

需求:通过在前端绘制或导入多边形范围,设置等高距,生成绘制区域的等高线。

1、数据准备

(1)准备一个地形文件,可以是tif或者img等格式

(2)准备一个shp面要素文件,用来指定分析范围

2、创建GP模型

创建等高线分析GP模型:

(1)使用Extract by Mask工具,裁剪出输入要素的多边形范围的栅格数据

(2)根据第一步裁剪的栅格结果,执行等高线分析,生成线要素

注:蓝色椭圆中的为输入参数,绿色椭圆中的是输出参数,黄色矩形为ArcGIS工具箱中的分析工具。

参数说明:

InputFeature:等高线分析范围数据,shp格式,可自行创建个shp文件。在地形范围内绘制一个范围(使用第一步准备的shp数据),

InputRaster:地形dem数据,可以使用tif格式,支持经纬度坐标或投影坐标,根据实际情况选择需要的地形路径(第一步准备的地形数据)

CoutourInterval:等高线间距,默认单位米

OutputFeature:输出的等高线线要素

由于在ArcGIS10.3中已经创建过GP模型,ArcGIS之间的产品是兼容的,可以用ArcGIS Pro打开,故不再新建GP模型,直接使用旧版已经创建好的进行编辑:

更改输入参数和输出参数的文件路径(输入参数选择第一步准备好的数据,需要真实的数据,输出参数只要设置好路径和文件名称即可,保证文件夹存在,文件不需要真实存在):

修改完参数路径后,对模型进行保存。

注:在ArcMap10.3版本创建的GP工具可以在ArcGIS Pro打开,但在ArcGIS Pro打开后,就无法在ArcMap中打开了,不同的ArcGIS版本也一样,低版本GP工具在高版本打开后,就无法再原来的版本中打开,所以注意备份不同版本的工具。

3、运行并发布GP服务

(1)双击运行GP服务

(2)发布服务,选择共享->Web工具,共享Web工具:

选择刚刚运行的GP工具:

设置发布服务参数:

切换配置页,选择同步异步等配置:

切换Content,编辑输入输出参数:

输入工具名称,备注,输入参数,输出参数等:

设置好后,点击分析,分析如果没有错误,使用Publish发布GP服务

4、访问并验证GP服务

5、调用GP服务

先通过绘制得到绘制的多边形graphic,然后设置参数,利用Geoprocessor来执行GP服务得到结果,再将结果的等高线绘制到地图上。

    startExcute (graphic) {
const featureSet = new FeatureSet()
featureSet.features = [graphic]
const inputRaster = {
'url': this.demDatas[this.value].url,
'format': this.demDatas[this.value].format || 'tif'
}
let params = {
"inputFeature": featureSet,
"contourInterval": this.contourInterval,
"inputRaster": inputRaster
} const geop = new this.Geoprocessor(this.contourUrl)
geop.outSpatialReference = {
wkid: this.map.spatialReference.wkid
}
if (this.isAsync) { //发布的服务是异步时的处理方式
this.loading = true
geop.submitJob(params).then(data => {
var options = {
interval: 1500,
statusCallback: function (j) {
// console.log("Job Status: ", j.jobStatus);
}
}
geop.waitForJobCompletion(data.jobId, options).then(res => {
geop.getResultData(res.jobId, 'OutputFeature').then(item => {
this.drawLine(item.value.features)
this.loading = false
})
}, error => {
this.loading = false
this.$message.error('分析出错,请联系管理员!')
console.error('等高线分析出错:' + error)
}).catch(error => {
this.loading = false
this.$message.error('分析出错,请联系管理员!')
console.error('等高线分析出错:' + error)
})
})
} else { //发布的服务是同步时的处理方式
this.loading = true
console.log('params2', params)
geop.execute(params).then(data => {
this.loading = false
this.drawLine(data.results[0].value.features)
console.log('datas', data)
}, error => {
this.loading = false
this.$message.error('分析出错,请联系管理员!')
console.error('等高线分析出错:' + error)
})
}
}

注:代码只是截取的一部分代码,参考使用,具体调用根据自己的开发的实际情况来写。

<全文完>

ArcGIS Pro创建、发布、调用GP服务全过程示例(等高线分析)的更多相关文章

  1. ArcGIS API for Silverlight 调用GP服务准备---GP模型建立、发布、测试

    原文:ArcGIS API for Silverlight 调用GP服务准备---GP模型建立.发布.测试 第一篇.GP降雨量等值线建模.发布及测试 在水利.气象等行业中,要在WebGIS中实现空间分 ...

  2. ArcGIS API for Silverlight 调用GP服务绘制等值面

    原文:ArcGIS API for Silverlight 调用GP服务绘制等值面 GP服务模型如下图: 示例效果图片如下:

  3. ArcGIS API for Silverlight 调用GP服务加载等值线图层

    原文:ArcGIS API for Silverlight 调用GP服务加载等值线图层 第二篇.Silverlight客户端调用GP服务 利用ArcGIS API for Silverlight实现G ...

  4. ArcGIS Runtime SDK for Android开发之调用GP服务(异步调用)

    一.背景说明 通过调用GP服务,Android客户端也能实现专业的.复杂的GIS分析处理功能,从而增加应用的实用价值. ArcGIS Server发布的GP服务,分为同步和异步两种类型,一般执行步骤较 ...

  5. ArcGIS API for javascript开发笔记(六)——REST详解及如何使用REST API调用GP服务

    感谢一路走来默默支持和陪伴的你~~~ -------------------欢迎来访,拒绝转载-------------------- 一.Rest API基础 ArcGIS 平台提供了丰富的REST ...

  6. ArcGIS API for Silverlight 使用GP服务实现要素裁剪功能

    原文:ArcGIS API for Silverlight 使用GP服务实现要素裁剪功能 昨天一QQ好友问了一个关于裁剪的问题,感觉自己也没有帮上什么忙,之后自己做了一个裁剪的例子,不过在做这个例子的 ...

  7. flex 调用gp服务

    同步异步说明: gp服务分为同步和异步两种模式,两者的区别是:同步:适合于快速的处理,数据量较小,本质区别在于同步模式,服务器处理之后,处理结果并不在服务器端保存,而是将结果发送至客户端,由客户端去显 ...

  8. ArcGIS Pro处理发布并在前端调用bim数据全过程-rvt转slpk

    记录ArcGIS处理三维bim模型全纪录,从原始的rvt格式开始,到最后web前端js api调用的整个过程,并记录部分中间操作过程中出现的问题和解决办法. 本文示例使用: 软件:ArcGIS Pro ...

  9. SharePoint 2013 调用WCF服务简单示例

    内容比较简单,主要记录自己使用SharePoint 2013WCF服务遇到的小问题和小经验,分享给大家,希望能够给需要的人有所帮助.好吧,进入正题! 第一部分 SharePoint 2013调用自带W ...

  10. ArcGIS 10.0发布缓存地图服务(详细版)

    1.软件准备ArcGIS Destop10.0,ArcGIS Server10.0,Windows系统下自带的IIS6.0以上服务器 1)安装ArcGIS Destop10.0软件,选择完全安装,安装 ...

随机推荐

  1. 2021.06.21 onmouseover和onmouseleave事件对比

    在重新巩固js基础的过程中,分别使用onmouseover和onmouseleave事件却导致了不同的效果,但是在之前的记忆中,这两者确实是一样的哈,因此探究一下产生不同效果的原因. 在使用onmou ...

  2. java锁之初相见

    废话不多说,先上锁的分类图 1.乐观锁&悲观锁 悲观锁 悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,把别的线程阻塞住,最终确保数据不会被别的线程修改. ...

  3. Word 找不到 Endnote选项

    Word 2010 找不到 Endnote选项汇总(不是Office有效加载项)因为基本百度上的问题我全都遇到了-说明:在我们使用Word的过程中,常常发现没有Endnote选项.然后去找百度方法:1 ...

  4. mitmproxy截取流量和抓包

    mitmproxy介绍https://blog.csdn.net/enemy_sprites/article/details/104052506 mitmproxy处理请求及乱码https://blo ...

  5. @Value属性值读取

    1.在父类定义属性DQ,并通过配置初始化 @Configuration public class DQConfig { public static String DQ; @Value("${ ...

  6. 在golang中如何正确判断接口是否为nil

    本文主要来分析一下在golang中,如何判断interface是否为nil,以及相关注意事项. 正常情况下,我们声明一个interface类型的变量,默认值将会返回nil,以golang自带的io.W ...

  7. 认识内存和Cache

    认识内存和Cache 操作系统学习笔记,如有错误,还望指出. 我们有什么问题 什么是内存? 什么是Cache? 为什么需要Cache? 程序的局部性原理 这是个前置芝士点. 定义: 程序的局部性原理是 ...

  8. VMware虚拟机扩容--保姆级教学

    由于项目逐步的完善,需要搭建的中间件,软件越来越多,导致以前虚拟机配置20G的内存不够用了,又不想重新创建新的虚拟机,退而求更精,选择扩容. 1.外部先进入虚拟机设置,将磁盘先扩展,具体提示如下图所示 ...

  9. springboot格式化timestamp时间

    spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

  10. Quicker 快速开发,控制脚本关闭(示例,鼠标连点器)

    前言 一般写Quicker脚本的时候,是不需要考虑中途手动退出脚本的,因为多数脚本的运行时间不长,没多少中途退出的需求.但一旦脚本需要后台不定时间运行(可能要连续运行很长时间),如果不能手动控制脚本终 ...