ArcGIS API for javascript开发笔记(六)——REST详解及如何使用REST API调用GP服务
感谢一路走来默默支持和陪伴的你~~~
-------------------欢迎来访,拒绝转载--------------------
一、Rest API基础
ArcGIS 平台提供了丰富的REST风格的web服务,以ArcGIS REST API方式对外提供,我们通过ArcGISREST API可以访问地图服务、要素服务、影像服务、地理处理服务等多种类型的Web服务,这些服务可以来自Portal、online或是Arcgis server。
那么如何使用这些ArcGIS REST API呢?我们可以使用常用的编程语言如javascript等构造http请求,然后解析以json格式返回。简单讲一下使用ArcGIS Server REST 风格调用web服务的过程
(1)构建请求url
首先确定端点:包含服务类型的明确的url地址。
然后确定操作:不同的web服务支持的操作类型不同,如:地图服务可以查找、识别、生成kml等。
其次确定参数:不同的操作需要不同的参数,入请求地图服务需要地图范围参数。
最后确定输出的格式:json、kmz、html等,
综上所构建的url格式为:
http://{ArcGISServer name}/ArcGIS/rest/services/{folder name}/{services name}/{service type}/{option}?{parameter2}={somevalues}&{parameter1}={some values}
(2)提交url请求到ArcGIS Server
(3)接收ArcGIS Server的响应
ArcGISServer处理请求并返回响应到客户端,这个过程分为同步和异步。
Execute task:当同步执行的使用此操作,执行的特点是用户需要等待结果被返回适用于短事务处理任务。
Submit job:适用于异步执行。当被异步提交时,用户可以做其他的事情无须等待结果被加载完成,适用于长事务处理任务。
(4)解析和使用响应
ArcGISServer rest web服务的响应可以是多种格式的,如json、kmz、图片、html等,客户端可以判断响应成功还是失败。
通常,ArcGISDesktop、ArcGISpro等客户端与ArcGIS REST API进行交互,其交互的细节不必关心,但是都是ArcGIS REST API在默默的工作。以上是rest与server交互原理,然而使用ArcGIS javascript API 会集成上述四个步骤,不需要自己完成。
--------------------这是一条华丽丽的分割线---------------------
以GP服务为例:
1. 首先ArcGISREST API可以什么:
(1).列举了可用额工具及输入输出参数的属性。
(2).同步执行。
(3).异步提交。
(4).获取运行时的详细工作信息,包括运行的状态。
(5).使用地图服务将运行的结果进行显示。
(6).通过客户端对返回的结果进行进一步的处理。
-----------------------这是一条华丽丽的分割线-----------------------
以一个已发布并运行成功的gp服务为例:关于该GP服务的制作和发布在往期博客有详解:点我! 再点我!
1.注意地址栏上构建的rest服务地址,回顾上述理论,会更加有心的体会。
2.查看发布的服务目录,了解每一个参数的类型、参数的名称。
3.该服务在发布时勾选了异步执行,所以会有submit Job操作,点击submit job执行。
4.在第一栏中要求输入excel,想必这是每一个人在执行过程中最为头疼的事情,该怎样输入呢?无从下手。
这时,就需要注意参数的类型,gp模型的类型与gp服务的类型存在对应关系,同时GP服务的类型又与ArcGIS javascript API中规定的参数类型存在对应关系,只有准确的找准参数,才可以对这个参数按照api中规定的格式进行构造,参数对应表如下:
很显然,GPDataFile对应javascript中的<DataFile>,这时需要查找API中的DataFile参数的构建方法。具体在javascript调用GP服务的方法后面会慢慢整理,不再多述。
5.执行ing,此时你可以观察服务的url,生成的结果在arcgis server所管理的服务目录下,生成了一个唯一文件名的文件夹,其结果将会临时存放在那里。
6.执行成功,会看到esriJobSuccessed!此时,你应该多开森~~
7.点击生成的结果进行预览,应该就是想要的效果了,这个结果可以通过Arcgis javascript API添加到地图上。
-----------------这是一条华丽丽的分割线------------------
本文的参考资料:
http://resources.arcgis.com/EN/HELP/ARCGIS-REST-API/index.html#/Resources_and_operations/02r3000000t9000000/
https://developers.arcgis.com/javascript/jsapi/parametervalue-amd.html
----------------------欢迎来访,拒绝转载----------------------
版权声明:本文为博主原创文章,未经博主允许不得转载。
ArcGIS API for javascript开发笔记(六)——REST详解及如何使用REST API调用GP服务的更多相关文章
- ArcGIS API for javascript开发笔记(二)——解决ArcGIS Service中的服务在内网环境下无法进行javascript预览问题
感谢一路走来默默支持和陪伴的你~~~ ----------------------------拒绝转载-------------------------------- 1.问题说明 在使用ArcGIS ...
- ArcGIS API for javascript开发笔记(五)——GP服务调用之GP模型的发布及使用详解
感谢一路走来默默陪伴和支持的你~~~ ----------------欢迎来访,拒绝转载---------------- 关于GP模型的制作请点我! 一.GP发布 ArcGIS Desktop可以作为 ...
- ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解
感谢一路走来默默陪伴和支持的你~~~ -------------------欢迎来访,拒绝转载------------------- 在之前的利用Python分析GP服务运行结果的输出路径 & ...
- ArcGIS API for JavaScript开发笔记(一)——ArcGIS for Javascript API 3.14本地部署
堪称史上最详细的< ArcGIS forJavascript API 3.14本地部署>文档,有图有真相~~~ ---------环境:Windows server 2012R2,IIS ...
- ArcGIS API for javascript开发笔记(三)——解决打印输出的中文为乱码问题
感谢一路走来默默支持和陪伴的你~~~ ----------------------欢迎来访,拒绝转载---------------------- 1. 调用ArcGIS API的Print实 ...
- ArcGIS API for JavaScript开发环境搭建及第一个实例demo
原文:ArcGIS API for JavaScript开发环境搭建及第一个实例demo ESRI公司截止到目前已经发布了最新的ArcGIS Server for JavaScript API v3. ...
- ArcGIS API for JavaScript开发初探——HelloMap
1.前言 在开始ArcGIS API for JavaScript开发之前我们需要了解一些基本的知识: 1.开发工具选什么? 前端技术的开发工具选择是一个仁者见仁智者见智的问题,有人喜欢Hbuilde ...
- Django开发笔记六
Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.登录功能完善 登录成功应该是重定向到首页,而不是转发 ...
- ArcGIS API for Silverlight 调用GP服务准备---GP模型建立、发布、测试
原文:ArcGIS API for Silverlight 调用GP服务准备---GP模型建立.发布.测试 第一篇.GP降雨量等值线建模.发布及测试 在水利.气象等行业中,要在WebGIS中实现空间分 ...
随机推荐
- vuejs监听苹果iphone手机键盘事件
在iphone手机中,vue提供的keyup事件是不能监听iphone键盘的,但是h5提供的input事件可以做到. 只需要向下面这样处理,就可以解决iphone不响应键盘事件的bug <tem ...
- 【AI】卷积
一 边界补充 1 补零填充 2 边界复制填充 3 镜像填充 4 块填充 二 卷积核 1 平滑均值滤波 2 高斯平滑 3 图像锐化 4 梯度Prewitt 5 Soble边缘检测:垂直梯度水平梯度 6 ...
- Android井字游戏(二)游戏界面
图片与代码可见书配套官网下载 1 棋盘 1.1 先将游戏界面所需的图片放于“drawable-xxhdpi”文件夹中,后缀xxhdpi表示超高密度. 然后将图片封装到drawable中一个名为til ...
- 《转》python学习(10)-集合
转自 http://www.cnblogs.com/BeginMan/p/3160565.html 一.目录 1.集合概述 2.关于集合的操作符.关系符号 3.集合的一系列操作(添加.更新.访问.删除 ...
- 【Mac】安装MAMP的PHPredis扩展
1 下载phpredis扩展安装包 cd /usr/local git clone https://github.com/nicolasff/phpredis.git 2 依次执行以下操作完成安装 $ ...
- python错误 ImportError: No module named setuptools 解决方法[转]
在python运行过程中出现如下错误: python错误:ImportError: No module named setuptools这句错误提示的表面意思是:没有setuptools的模块,说明p ...
- 【WEB前端系列之CSS】CSS3动画之Tranition
前言 css中的transition允许css的属性值在一定的时间区间内平滑的过渡.这种效果可以在鼠标点击.获得焦点.被点击或对元素任何改变中触发,并圆滑的以动画效果改变CSS的属性值.语法: tra ...
- vuex - 简单使用步骤梳理,轻松掌握、附源码
-----------------------往期----------------------------- vuex - 学习日记 vuex - 辅助函数学习 vuex - 常用命令学习及用法整理 ...
- 浏览器 User Agent字符串列表
http://www.73207.com/useragent/ http://www.73207.com/useragent/pages/internet-2520explorer/index.htm ...
- NC 的简单使用
netcat被誉为网络安全界的’瑞士军刀’,相信没有什么人不认识它吧……一个简单而有用的工具,透过使用TCP或UDP协议的网络连接去读写数据.它被设计成一个稳定的后门工具,能够直接由其它程序和脚本轻松 ...