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工具會提示“該服務不可訪問”。
除了url
和serviceToken
,你還可以提供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'"
}
更多的關於featureCollection
和featureSet
的信息可在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工具,敬請關注。