跳到主要內容

Qlik Sense GeoOperations

Qlik Sense GeoOperations 可啟用地理計算和函數功能,例如計算路線或旅行區域。也可以從 GeoJSON 和 ESRI 形狀檔載入地理資料。

不適用於:Qlik Sense Enterprise SaaS - Government (US) 不支援 Qlik Sense GeoOperations

Qlik Sense GeoOperations 可作為與 Qlik Cloud Services

Qlik Sense GeoOperations 可讓您透過自己的資料解決地理問題,例如:

  • 確定多少客戶生活在距離商店位置 15 分鐘的車程內
  • 將 GPS 位置連結至場地、地區或道路網絡
  • 從城市清單建立自訂銷售區域
  • 為病患清單尋找最近的醫院

GeoOperations 函數可用於撰寫資料載入指令碼和視覺化運算式的指令碼。GeoOperations 函數可用來從外部檔案或從 Qlik GeoAnalytics 位置服務存取載入地理資料集。GeoOperations 函數也可以用來轉換地理資料或進行計算。

備註: 如需如何使用 GeoOperations 的範圍,請參閱 GeoOperations 範例

GeoOperations 的運作方式

Qlik Sense GeoOperations 的運作方式是將小部分的指令碼和表格 (選用) 傳送至載入指令碼中的 GeoOperations 延伸。然後延伸會傳回資料。GeoOperations 製作稱為 GeoOperations 的進階分析整合物件,可用於提供函數 ScriptEval 的指令碼語言,以將指令碼和表格傳送至延伸。例如,下列載入指令碼用於將 TravelAreas 操作套用至先前載入的表格 MyPoints,並指定旅行區域大小/成本的參數:

Load * Extension GeoOperations.ScriptEval('TravelAreas(costValue="10", costUnit="Minutes")', MyPoints);

 

指令碼作為第一個參數傳送至 ScriptEval,表格則作為第二個參數。

GeoOperations 是操作資料集的函數。資料集來自 Qlik Sense 中載入的資料或來自外部來源,例如地理檔案或位置服務。從指令碼送出的資料可作為名稱為 INTABLE 的資料集使用。若您想要對該資料指定其他參數,您需要在函數呼叫之後作為 DATASOURCE 宣告。例如︰

Load * Extension GeoOperations.ScriptEval('TravelAreas(costValue="10", costUnit="Minutes")

DATASOURCE myPoints INTABLE pointField="Point"', MyPoints);

 

永遠需要宣告其他類型的資料來源,並需要指定參數,例如 URL。在每次操作中,您可以指定要使用的資料來源。依照預設,操作使用此內容來選取可用的資料集。

GeoOperations 的使用位置

所有操作都可以用於資料載入指令碼。特定操作可用於地圖的圖表指令碼,也能用來啟用動態計算。每次選項變更時,操作就會執行。當 GeoOperations 用於圖表時,資料不會進入資料模型,防止進一步分析該資料。

選取和重新命名 GeoOperations 欄位

GeoOperations 函數傳回欄位。依照預設,所有欄位都會傳回並納入。您可以使用 SELECT 陳述式置於 GeoOperations 函數之前,以選取並選擇性地重新命名您感興趣的特定欄位。例如,此指令碼使用 SELECT 僅載入位置服務的其中兩個郵遞區號欄位:

Load * Extension GeoOperations.ScriptEval('

SELECT Name as PostalCode, LocationArea FROM

Load() DATASOURCE PostalCodes LOCATIONSERVICE type="PostalCode", country="se"');

 

相較於在 Qlik LOAD 陳述式中指定欄位,在 GeoOperations 指令碼中使用 SELECT 陳述式可以更有效率,因為若沒有在 GeoOperations 指令碼中選取,資料不會載入到 Qlik Sense 中。

SELECT 可用來選擇不要在結果中傳回某些欄位,以免計算這些欄位。例如,可排除 Intersects 傳回的相關重疊欄位。

備註:

若您目前在載入指令碼中多次使用相同的操作,請使用 SELECT 陳述式以重新命名欄位。

限制

下列限制適用於資料集的大小上限:

  • 列數上限:50000
  • 記憶體中的資料集大小上限:150MB
  • 含路由的列數上限:400
  • 含名稱查閱的列數上限:20000

有些操作支援來自 Qlik 引擎的串流資料。從 Qlik 引擎串流的資料可以較大,但對於路由的大小限制仍然適用。

指令碼語法

可傳送至 GeoOperations 的指令碼具有下列語法。

語法:  

script ::= [ SELECT (* | select_field,...) FROM ] operation ( [parameter,...] ) {datasource_declaration}

select_field ::= field_name [ AS alias_name ]

parameter ::= parameter_name = "parameter_value"

datasource_declaration ::= DATASOURCE datasource_name datasource_type [parameter,...]

  • field_name - 傳回表格中的欄位名稱,可以選擇以 [] 括住
  • alias_name - 欄位應重新命名的名稱,可以選擇以 [] 括住
  • operation - 「操作」中的其中一個操作
  • parameter_name - 操作的參數名稱
  • parameter_value - 參數的值 (永遠以雙引號括住)
  • datasource_name - 此資料來源應有的名稱 (若在操作參數中參考)
  • datasource_type - 資料集中的其中一個資料集

參數名稱和欄位名稱區分大小寫,但操作、參數選項 (例如 metersminutes, 等) 或 SELECTFROM 等關鍵字不區分大小寫。