地理处理服务

URL :http://<catalog-url>/<serviceName>/GPServer

描述

地理处理是企业地理信息系统业务的一个基本组成部分。地理处理提供所有地理信息系统用户所必需的数据分析、数据管理和数据转换工具。

地理处理服务表现为一系列已发布的操作和分析地理信息的工具集。每个工具执行一项或多项操作,例如地图投影变换、新增表的属性列或建立要素周围的缓冲区。工具接受输入(如要素集,表和属性值),执行输入数据操作,并生成输出到地图或进一步加工的软件客户端。工具可以同步或异步执行。以方式REST API使用,地理处理服务总是被发布为池服务。

地理处理服务实现下列功能:

 列出可用工具及输入输出属性

 同步执行任务

 异步提交工作任务

 获得工作详细信息,包括工作状态

 使用地图服务显示结果

 检索客户端进一步处理的结果

很多GIS的应用涉及重复工作,这就创造了提供自动化工作流框架的需求。。地理处理服务通过综合一系列按顺序的操作模型来满足这个需求,并将模型作为工具提供出来。

地理处理服务资源的REST API提供与服务相关的基本信息,比如服务描述,提供的任务,执行类型和结果的地图服务名称。

任务成功完成后,地图处理服务资源具有返回结果的操作。支持的操作有:

 执行任务: 执行类型是同步方式。当任务同步执行时,用户必须等待结果。

 提交任务: 执行类型是异步方式。当工作是异步提交,用户等待任务完成的通知的同时能够进行其他的工作。

资源层次结构

 

参数表

参数 详细信息
f 描述: 返回格式。默认返回格式是html。值: html | json

应用示例

示例 1: sampleserver1上"ESRI_DriveTime_US"地理处理服务的URL。

http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Network/ESRI_DriveTime_US/GPServer

JSON响应语法

JSON响应示例

地理处理任务

URL : http://<gpservice-url>/<taskName>

描述

地理处理任务资源代表已发布的地理处理服务的单个任务,资源提供包含任务名称和显示名称的任务基本信息。地理处理任务资源还提供任务包含的多种输入输出参数。

 提交工作: 用于异步任务。异步的意思是最终用户可以继续使用应用而不用等待任务执行完毕

 执行任务: 用于同步任务。同步的意思是当工具在服务器上执行的时候应用将等待。因为最终用户必须等待,必须为应用类型指定可以接受的等候时间。

资源层次结构

 

参数表

参数 详细信息
f 描述: 返回格式。默认返回格式是html。值: html | json

应用示例

示例 1: 在sampleserver1的"ESRI_DriveTime_US"上执行CreateDriveTimePolygons任务的URL

http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Network/ESRI_DriveTime_US/GPServer/CreateDriveTimePolygons

JSON响应语法

注意: executionType 属性是9.3 SP1新增加到JSON响应里的。

JSON响应示例

执行地理处理任务

URL: http://<task-url>/execute

描述

当执行类型为同步是,执行操作执行在地理处理任务资源上执行。操作结果是地理处理结果资源,包括一组结果参数和地理处理任务执行信息。每个结果参数提供如参数名称,数据类型和对于参数最有价值的信息。

每个结果参数提供的信息和结果参数资源提供的信息一致。基于参数的数据类型,返回值提供了信息的不同类型。考虑这一情况,返回值有基于数据类型的不同的结构。返回值的每个数据类型的详细说明包含在 结果参数资源里。

用户可以提供执行操作的查询参数。这些参数包含被服务接受的输入参数及相应的值。执行操作输入值和submit job operation输入值一致。另外,用户可以指定如输出空间参考和处理空间参考的环境参数。

参数表

参数 详细信息
f 描述: 返回类型。默认返回类型是html。
值: html | json | kmz
<gpParameter1>, <gpParameter2>, ... 描述:各种相关地理处理任务接受的数据参数。这些参数在地理处理任务资源的参数属性里列出。
输入参数的有效值依赖于参数数据类型,会在提交工作操作里详细描述。
env:outSR 描述: 输出几何图形的通用空间参考ID。如果env:outSR 没有指定,输出几何图形则用输入几何图形的空间参考。如果指定env:processSR但不指定env:outSR,输出几何图形则用处理空间参考的空间参考。
env:processSR 描述: 执行几何操作的模型的通用空间参考ID。如果指定env:processSR并且不指定env:outSR,输出几何图形则用处理空间参考的空间参考。

应用示例

请求中大部分参数依赖于执行地理处理任务的输入参数类型。注意GP执行和提交工作操作的所有输入参数类型共享相同的语法,所有输入参数示例在提交工作操作中讨论。

示例 1: 执行50天的起始于lat-long [0, 0]的Message In A Bottle任务:

http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_Currents_World/GPServer/MessageInABottle/execute?Input_Point={"features":[{"geometry":{"x":0,"y":0}}]}&Days=50

示例 2: 执行和示例一类似的任务,但是输入空间参考为Web Mercator (102113):

http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_Currents_World/GPServer/MessageInABottle/execute?Input_Point={"features":[{"geometry":{"x":0,"y":0}}]}&Days=50&env:outSR=102113

JSON响应语法

JSON响应示例

提交地理处理工作

URL : http://<task-url>/submitJob

描述

提交工作操作通过异步地理处理任务资源完成。操作结果是地理处理工作资源。用于可以根据下面定义的参数表指定提交工作的查询参数。

参数表

参数 详细信息
f 描述: 返回格式。默认返回格式市html。
值: html | json | kmz
<gpParameter1>, <gpParameter2>, ... 描述: 各种相关地理处理任务接受的数据参数。输入参数的合法值依赖于输入参数数据类型。下面会讨论一下输入值的详细信息。
env:outSR 描述:输出几何图形的通用空间参考ID。如果 env:outSR没有指定,输出图形使用输入图形的空间参考。如果没有指定env:outSR而是指定env:processSR,输出几个图形使用处理空间参考的空间参考。可用WKID的值,参见投影坐标系统 和地理坐标系统。
env:processSR 描述: 用于执行几何操作的模型的通用空间参考ID。如果没有指定env:outSR,但是指定了env:processSR,输出几个图形使用处理空间参考的空间参考。可用WKID的值,参见投影坐标系统 和地理坐标系统。

应用示例

对于此操作,请求中包含的大多参数依赖于提交的地理处理任务的输入参数。注意地理处理执行和提交工作操作共享相同的输入参数类型语法,所有输入参数类型在下面讨论。

示例 1: 提交搜索距离为100英尺内的Parcel ID为'1N1E34CC -06600'的工作Mailing List 任务:

http://sampleserver2.arcgisonline.com/ArcGIS/rest/services/Portland/ESRI_CadastralData_Portland/GPServer/MailingList/submitJob?Parcel_ID=1N1E34CC-06600&SearchDistance_ft=100

示例 2: 提交和示例1类似任务的工作,但是输出空间参考使用Web Mercator (102113):

http://sampleserver2.arcgisonline.com/ArcGIS/rest/services/Portland/ESRI_CadastralData_Portland/GPServer/MailingList/submitJob?Parcel_ID=1N1E34CC-06600&SearchDistance_ft=100&env:outSR=102113

GPLinearUnit

参数GPLinearUnit是下列字段的JSON结构。

 distance: a double value.

 units: a string with unit values such as "esriMeters" or "esriMiles".

GPFeatureRecordSetLayer and GPRecordSet

参数GPFeatureRecordSetLayer和GPRecordSet是包含字段"features"或"url"的JSON结构。

"features"字段是一个功能列表。每个功能包含下列字段。

 "geometry": 可以是points, lines 或 polygons. 几何图形结构和ArcGIS REST API返回的json几何对象一致。

 "attributes": 成对key-value。key是记录集字段列表的字段名,value是相关字段的值。

注意GPFeatureRecordSetLayer包含"geometry"字段然而GPRecordSet不包含。

对"schema-less"输入功能,模型发布器没有设置这些功能的几何类型或空间参考,用户必须提供几何类型和空间参考:

geometryType可以是esriGeometryPoint, esriGeometryPolyline, 或esriGeometryPolygon.如果geometryType没有指定,默认为esriGeometryPoint。如果spatialReference没有指定,默认为unknown coordinate system。

对于大集合几何图形,可以在JSON结果里面指定一个公用服务器上的文件的URL作为存储的输入几何图形。

GPDate

GPDate的参数值是包含下列字段的JSON结构。

 "date": a string value representing the date.

 "format": a string specifying the format for the date.

GPDataFile

GPDataFile参数值是包含"url"字段的JSON结构。"url"的值是输入数据文件的地址。

GPRasterData 和 GPRasterLayer

GPRasterData和GPRasterLayer数据类型的参数值是包含下列字段的JSON结构。

 "url": 栅格数据文件地址的URL。

 "format": 栅格数据文件格式,例如"jpg", "tif", 其它.

地理处理工作

URL :http://<task-url>/jobs/<job-id>

描述

地理处理工作表示一个使用提交工作操作提交的工作。资源提供了关于工作的基本信息,例如工作ID,状态和消息。另外,如果工作成功完成,还将提供结果参数信息。

所有的结果值能够通过地理处理结果资源访问。JSON响应在结果资源的paramUrl字段里面指定一个相关的URL。同样的,所有输入参数的值可以通过地理处理输入资源来访问。JSON响应同样在输入资源的paramUrl字段里指定一个相关的URL。

可以使用returnMessages指定message是否返回

资源层次结构

参数表

参数 详细信息
f 描述: 返回格式。默认返回格式是html。值: html | json | kmz
returnMessages 描述: 如果是true,工作消息包含在响应里面。默认值是true。 值: true | false

应用示例

示例 1: 如提交工作文档的示例部分所示,当提交一个工作到Mailing List,需要重定向到工作资源页的URL类似于:

http://sampleserver2.arcgisonline.com/ArcGIS/rest/services/Portland/ESRI_CadastralData_Portland/GPServer/MailingList/jobs/jdb4cce48c464424e913c15c4f419b32a

注意jdb4cce48c464424e913c15c4f419b32a是一个工作ID的示例,当提交工作的时候ID有可能会改变。

JSON响应语法

JSON响应示例

结果

URL : http://<job-url>/results/<param-name>

描述

地理处理结果表示地理处理工作的结果参数。地理处理结果提供了结果参数的信息,例如参数名称,数据类型和值。结果值是提供的信息的最重要部分。基于参数的数据类型,结果值提供信息的不同类型。考虑到这一事实,结果值有基于下面定义的数据类型的不同的结构。

资源层次结构

参数表

参数 详细信息
f 描述: 返回格式。默认返回格式是html。值: html | json | image | kmz
outSR 描述: 输出几何图形的通用空间参考ID。该参数对于包含几何图形的结果参数是适用的。这个参数用于返回与初始创建的输出空间参考不同的空间参考的几何图形。
returnType 描述: 如果地理处理服务和地图服务结果有关,则IGPRasterDataLayer和GPFeatureSetLayer参数的默认输出是一个地图图像。不管怎样,用户设置returnType的值为data可以明确地请求未加工的栅格数据。值: data

应用示例

示例 1: 对于在工作详细说明文档示例部分里面描述的Mailing List任务工作,可以使用 Report_html 结果参数,URL如下:

http://sampleserver2.arcgisonline.com/ArcGIS/rest/services/Portland/ESRI_CadastralData_Portland/GPServer/MailingList/jobs/jdb4cce48c464424e913c15c4f419b32a/results/Report_html

注意jdb4cce48c464424e913c15c4f419b32a是一个工作ID的例子,实际工作ID可能改变。

JSON响应语法

JSON响应示例

参数值

上文JSON响应里面value字段能够基于参数的数据类型变化。对于确切地数据类型,例如GPFeatureRecordSetLayer和GPRasterDataLayer,可以根据地理处理服务是否与结果地图服务有关进一步改变。

GPBoolean, GPDouble, GPLong and GPString

这些简单数据类型有文本的参数值。

JSON响应语法

JSON响应示例

GPDate

GPDate数据类型的值是下面格式的字符串:

dow mon dd hh:mm:ss zzz yyyy

Where:

 dow是星期(Sun, Mon, Tue, Wed, Thu, Fri, Sat)。

 mon是月份(Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)。

 dd 是一月中的某一天(01 - 31),显示为两位十进制数。

 hh 是一天中的小时(00 - 23),显示为两位十进制数。

 mm 是小时中的分钟(00 - 59),显示为两位十进制数。

 ss 是分钟中的秒数(00 - 61),显示为两位十进制数。

 zzz 是时区或者反映夏令标准。时区缩写包括方法parse识别的时区缩写。 如果不提供时区信息,则zzz为空,即根本不包括任何字符。

 yyyy 是年份,显示为 4 位十进制数 。

JSON响应语法

JSON响应示例

GPLinearUnit

GPLinearUnit的参数值是包含下列字段的JSON结构。

 distance: double值。

 units: 值为"esriMeters", "esriMiles", 等的字符串。

JSON响应语法

JSON响应示例

GPDataFile

GPDataFile的参数值是一个包含url字段的JSON结构。url字段的值是一个数据文件地址的URL。

JSON响应语法

JSON响应示例

GPRasterData

GPRasterData的参数值是包含下列字段的JSON结构。:

 url: 一个栅格数据文件的位置的URL。

 format: 表示栅格数据的格式的字符串。

JSON响应语法

JSON响应示例

GPRecordSet

GPRecordSet参数值是包含features字段的JSON结构。

features字段是个功能数组。每一个功能包含一个attributes字段。attributes是成对的key-value,key是记录集的字段列表里的字段名称,value是相关字段的值。

注意:exceededTransferLimit属性在9.3 SP版本增加进JSON响应。仅仅当记录数量超过服务管理员配置的最大数量时,该属性需要是 true,否则是false。

JSON响应语法

JSON响应示例

结果为地图图像

地图图像能作为地理处理工作的结果。如果地理处理服务与结果地图服务关联,GPFeatureRecordSetLayer和GPRasterDataLayer数据类型的结果能够用结果地图服务绘制,因此可以提供地图图像给客户端。

对于结果是地图图像的情况,地理处理参数的value字段是带mapImage字段的JSON结构。mapImage字段的结构是结构和export map operationJSON响应结构一样的JSON对象。而且,大部分可用于导出地图操作的查询参数同样可用于地理处理地图图像结果,仅仅layers和transparent参数例外。 layers参数不可用于是因为地理处理只为地理处理参数相关的图层导出地图。transparent参数是可以是可用的,可是地理处理地图图像结果的默认值是true然而到处地图操作的默认值是false。

JSON响应语法

JSON响应示例

GPRasterDataLayer

如果地理处理服务与结果地图服务有关,GPRasterDataLayer参数的默认输出是地图图像。通过在URL里面使用returnType参数和设置参数值为data,用户能够确切地请求原始栅格数据。

如果地理处李服务与结果地图服务无关,或者如果returnType参数的值为data,GPRasterDataLayer参数值包含下列字段的JSON结构。

 url: 原始栅格数据的位置的URL。

 format: 栅格格式的字符串。

JSON响应语法

JSON响应示例

GPFeatureRecordSetLayer

如果地理处理服务与结果地图服务有关,GPFeatureRecordSetLayer参数的默认输出结果是地图图像。通过在URL里设置参数returnType的值为data,用户可以确切地请求特征数据。

如果地理处理服务与结果地图服务无关或者设置参数returnType的值为data,GPFeatureRecordSetLayer地参数值是包含下列字段的JSON结果。

 features: 一组特征。每个特征包含字段

 geometry: points, lines 或 polygons. 几何图形结构和ArcGIS REST API返回的JSON 几何对象一样。

 attributes: 是成对的key-value,key是记录集的字段列表里的字段名称,value是相关字段的值。

 spatialReference: 知名空间参考ID。

 geometryType: 图层的几何类型。

JSON响应语法

JSON响应示例

输入

URL : http://<job-url>/inputs/<param-name>

描述

地理处理输入资源表示一个地理处理工作输入参数。提供了关于输入参数的信息,例如参数名字,数据类型和值。参数值是该资源提供的最重要的一段信息。

每个输入参数提供的信息与结果参数资源提供的信息一致。基于参数的数据类型,参数值提供了不同的信息类型。考虑到这一事实,参数值有基于数据类型的不同结构。关于各种数据类型的值的详细信息包含在结果参数资源。

资源层次结构

参数表

参数 描述
f 描述: 返回格式。默认返回格式是html。
值: html | json | kmz

应用示例

示例 1: 对于在地理处理工作的示例部分描述的Mailing List 任务工作,可以用下面URL来获得SearchDistance_ft输入参数:

http://sampleserver2.arcgisonline.com/ArcGIS/rest/services/Portland/ ESRI_CadastralData_Portland/GPServer/MailingList/jobs/jdb4cce48c464424e913c15c4f419b32a/inputs/SearchDistance_ft

注意jdb4cce48c464424e913c15c4f419b32a是一个工作ID的例子,实际工作ID可能有所不同。

JSON响应语法

JSON响应示例

参数值

上文JSON响应的value字段能基于参数类型变化。注意输入和结果的参数类型共享相同的语法,所有参数类型示例在GP Result里讨论。