zoukankan      html  css  js  c++  java
  • 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

    ----------------------欢迎来访,拒绝转载----------------------


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    统计nginx日志里访问次数最多的前十个IP
    while 格式化输出 运算符 字符编码
    Python 软件安装
    Python 基础
    Typora 基础的使用方法
    Django ORM (四) annotate,F,Q 查询
    Django 惰性机制
    Django ORM (三) 查询,删除,更新操作
    Django ORM (二) 增加操作
    Django ORM (一) 创建数据库和模型常用的字段类型参数及Field 重要参数介绍
  • 原文地址:https://www.cnblogs.com/gishh/p/4976091.html
Copyright © 2011-2022 走看看