1、地理处理Geoprocessing,简称GP,是一个很重要的概念,我们都知道arcgis工具箱提供的各种工具,其实它们的本质就是一个一个的地理处理任务,只不过是arcgis提前写好了输入输出。在web端也能够调用工具箱所有的工具,先创建一个模型构建器,然后把这个模型发布为地理处理任务GP Task给arcgis js调用即可。
2、创建task的方法全部放在"esri/tasks" api中,自从ArcGIS API for JavaScript 4.0之后才支持这种操作,所以说arcgis api这两年的发展给现在的开发者提供了极大的便利,包括移动端的开发,两者基本同步,节省了大量开发时间👍。
3、GP Task只是众多tasks中的一个,其他还有:
比如GeometryService几何服务,GeometryService的很多操作在GeometryEngine都能找到,例如project, simplify, buffer, and relationships,只不过GeometryService是服务端,GeometryEngine是客户端,同理其他的服务在客户端一般都有,根据用户需要进行选择,这里着重介绍Geoprocessor。
4、Task类型的处理都是放在服务器上的,如何发布也是地理处理任务很重要的一部分。先讲解发布GP Task的方法:
首先打开arcgis,打开一个数据,我用的point.shp,打开工具箱,添加一个工具箱:
选择新建工具箱:
找到工具箱位置,右键新建模型:
打开搜索框,查询缓冲区:
将第二个拖入到模型当中:
先选择 输入要素,在选择 距离:
右键选择 重命名,然后选择 模型参数
效果是这样的:
双击dis或者右键打开,输入距离,比如100米:
然后修改input,输入参数:
模型的颜色会自动变化,点击保存即可:
双击模型或者右键打开,运行该模型,对point.shp做点的缓冲区,结果:
运行完毕打开菜单的地理处理,选择结果:
开始共享服务:
终于开始发布地理处理服务了(ง •_•)ง
可以自由选择放在哪个文件夹,这里默认放在根目录下面:
REST URL就是我们调用的服务:
参数的致性模式里面有两个重要的选项:同步和异步
同步和异步定义了客户端(使用任务的应用程序)如何与服务器进行交互以及如何获取任务结果。服务设置为同步时,客户端将等待任务完成。通常,同步任务的执行速度很快,大概需要 5 秒或更短。异步任务的执行往往花费的时间较长,客户端必须定期向服务器发出询问以确定任务是否已完成,如果完成,则获取结果。使用异步任务的 Web 应用程序必须添加函数逻辑来检查任务状态,并在执行完毕后处理结果。ArcGIS Desktop 客户端可以处理这两种执行类型。 |
注意将input的输入模式设置为用户定义值,这样就能按照任意输入计算输出:
项目描述随便写一写,不然会有警告:
点击右上角的分析按钮,如果没有任何问题点击发布,速度应该很快。
5、在arcgis js中 执行GP Task分为synchronous同步和asynchronous异步,分别用execute和submitJob表示,我们用发布的点缓冲区任务分别来执行缓冲区分析,在后面的章节中分别实现这两种方法。