《ArcGIS GeoAnalytics Server 开发笔记》——入门

1 输入参数

GeoAnalytics Tool可通过以下3种方式将要素作为其输入参数:

  • 指定要素服务(Feature Service)或者带query功能的地图服务(Map Service),也可以自定义查询条件
  • 指定大数据共享图层,也可以自定义查询条件
  • 指定Feature Collection,也可以自定义查询条件

1.1 指定要素服务URL地址

GA工具可接受要素服务或者带query功能的地图服务地址作为其输入参数,格式如下:

{
    "url": "<url of feature service or map service>",
    "serviceToken": "<要素服务或地图服务的访问Token>",
    "filter": "<自定义查询条件>"
}

如果GA Server不能直接访问到指定的要素服务或者地图服务,需提供访问服务的token,否则GA工具会提示“该服务不可访问”。

除了urlserviceToken,你还可以提供SQL Where子句作为一个筛选字符串,这里的子句不包括Where,如果不指定filter值,将会查询指定图层的所有要素。例如:筛选国家为中国的要素:

{
    "url": "<url地址>",
    "filter": "country = 'CN'"
}

1.2 指定大数据文件共享图层URL地址

指定大数据文件共享图层URL地址作为GA工具的参数,其格式与1.1节中的格式一致。点击这里更多的Big Data Catalog Service的信息。

{
    "url": "<大数据共享数据集的URL地址>",
    "serviceToken": "<Token>",
    "filter": "<筛选条件>"
}

1.3 指定Feature Collection

指定FeatureCollection作为GA工具的输出参数的格式如下:

{
    "layerDefinition": {
        "geometryType": "esriGeometryPoint",
        "fields": [
            {
                "name": "Id",
                "type": "esriFieldTypeOID",
                "alias": "Id"
            },
            {
                "name": "Name",
                "type": "esriFieldTypeString",
                "alias": "Name"
            }
        ]
    },
    "featureSet": {
        "geometryType": "esriGeometryPoint",
        "spatialReference": {
            "wkid": 4326
        },
        "features": [
            {
                "geometry": {
                    "x": -104.44,
                    "y": 34.83
                },
                "attributes": {
                    "Id": 43,
                    "Name": "Feature 1"
                }
            },
            {
                "geometry": {
                    "x": -100.65,
                    "y": 33.69
                },
                "attributes": {
                    "Id": 67,
                    "Name": "Feature 2"
                }
            }
        ]
    },
    "filter": "Name = 'Feature 1'"
}

更多的关于featureCollectionfeatureSet的信息可在ArcGIS API for JavaScript中查看。

2 GA工具输出

首先呢,所有的GA工具以创建数据的形式输出操作结果。输出结果通常是要素数据,但有些时候输出结果中也会包含表格数据,例如:Summarize Attributes工具。当你指定GA工具的outputName参数后,工具将会返回一个名为其参数值的要素服务URL地址。

有个特例,Create Space Time cube工具将会返回一个可下载到本地的netCDF文件,其文件名为outputName参数值。

3 检查任务状态

GeoAnalyticsTools中的任务都是以异步的方式运行的,当提交一个任务请求后,需要以轮训的方式查询任务的执行状态。

当提交一个任务请求后,将会返回你一个任务ID,然后可根据这个ID,以下面的方式轮训GA任务的执行状态;当任务状态为esriJobSucceeded时,便可获取其执行结果。

https://<server url>/arcgis/rest/services/System/GeoAnalyticsTools/GPServer/<task name>/jobs/<jobId>

GA工具的执行状态有:

  • esriJobSubmitted
  • esriJobWaiting
  • esriJobExecuting
  • esriJobSucceeded
  • esriJobFailed
  • esriJobTimedOut
  • esriJobCancelling
  • esriJobCancelled

关于GA开发的入门知识就先介绍这么多,接下来的专题将会介绍如何在代码(JS、Python)中使用GA工具,敬请关注。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章