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

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


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

  • 相关阅读:
    常用业务接口界面化 in python flask
    git命令中带有特殊符号如@
    生成唯一标识 字符串跟时间戳的结合
    MD5 in JAVA
    修改(同步)linux时间
    jenkins 从git拉取代码
    Git 默认不区分大小写
    postman也可以使用F12功能
    Session
    WebXML部署服务
  • 原文地址:https://www.cnblogs.com/gishh/p/4976091.html
Copyright © 2011-2022 走看看