《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工具,敬請關注。

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