Zu Hauptinhalt springen Zu ergänzendem Inhalt springen

Skripterstellung mit Qlik GeoOperations

Qlik GeoOperations-Konnektoren erstellen und formatieren GeoOperations-Skripte für Sie. Sie können diese Skripte in Dateneditor ändern. Sie können auch manuell Skripte mit GeoOperations-Funktionen erstellen, anstatt Qlik GeoOperations-Konnektoren zu verwenden.

So funktioniert Qlik GeoOperations

Zuerst fügen Sie einen Qlik GeoOperations-Konnektor als Datenquelle hinzu. Wenn Sie in Dateneditor in Ihrer App wählen, Daten über den Konnektor zu laden, können Sie die durchzuführenden Vorgänge und die anzuwendenden Parameter auswählen. Der Qlik GeoOperations-Konnektor fügt dann das entsprechende GeoOperations-Skript zu Ihrem Ladeskript hinzu. Sie können dieses Skript auch manuell hinzufügen.

Jedes Vorgangsskript besteht aus einer load-Anweisung, mit der die zu verwendenden Daten ausgewählt werden, und den Vorgang. Diese werden an die GeoOperations-Erweiterung im Ladeskript gesendet. Die serverseitige Erweiterung gibt dann die Daten zurück. Qlik GeoOperations stellt ein Objekt für Integration erweiterter Analysefunktionen mit dem Namen GeoOperations in der Skriptsprache zur Verfügung. Dadurch wird die Funktion ScriptEval bereitgestellt, mit der das Skript und die Tabelle an die Erweiterung gesendet werden.

Beispielsweise ist im Folgenden das Ladeskript für die Anwendung des Vorgangs Reisegebiete auf die vorher geladene Tabelle MyPoints und die Angabe von Parametern für die Größe/Kosten des Reisegebiets aufgeführt:

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

Das Skript wird als erster Parameter an ScriptEval und die Tabelle als zweiter Parameter übermittelt.

Die GeoOperations sind Funktionen, die für Datensätze verwendet werden. Die Datensätze stammen entweder aus Daten, die in Qlik Sense geladen werden, oder aus externen Quellen wie geografischen Dateien oder dem Standortdienst. Die aus dem Skript übermittelten Daten stehen als Datensatz namens INTABLE zur Verfügung. Falls Sie zusätzliche Parameter für diese Daten angeben möchten, müssen Sie sie nach dem Funktionsaufruf als DATASOURCE deklarieren. Hier ein Beispiel:

Load * Extension GeoOperations.ScriptEval('TravelAreas(costValue="10", costUnit="Minutes") DATASOURCE myPoints INTABLE pointField="Point"', MyPoints);

Andere Datenquellen müssen immer deklariert und Parameter wie beispielsweise URLs müssen angegeben werden. Bei jeder Operation können Sie die zu verwendenden Datenquellen angeben. Standardmäßig verwenden Operationen die verfügbaren Datensätze, die für die einzelnen Operationen in Operation (nur auf Englisch) beschrieben sind.

Auswählen und Umbenennen von GeoOperations-Feldern

GeoOperations-Funktionen geben Felder zurück. Standardmäßig werden alle Felder zurückgegeben und berücksichtigt. Sie können GeoOperations-Funktionen eine SELECT-Anweisung voranstellen, um bestimmte Felder, an denen Sie interessiert sind, auszuwählen und optional umzubenennen. Beispielsweise verwendet dieses Skript SELECT, um nur zwei der Postleitzahlenfelder aus dem Standortdienst zu laden:

Load * Extension GeoOperations.ScriptEval('

SELECT Name as PostalCode, LocationArea FROM

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

 

Die Verwendung eines SELECT-Befehls im GeoOperations-Skript kann effizienter sein, als Felder im Qlik LOAD-Befehl anzugeben, da die Daten nicht in Qlik Sense geladen werden, wenn sie nicht im GeoOperations-Skript ausgewählt sind.

SELECT kann verwendet werden, wenn einige Felder nicht berechnet werden sollen. Dazu geben Sie an, dass sie nicht in den Ergebnissen erscheinen sollen. Zum Beispiel können relative Überlappungsfelder, die von Intersects zurückgegeben werden, ausgeschlossen werden.

Informationshinweis

Falls Sie dieselbe Operation mehrmals in Ihrem Ladeskript verwenden, verwenden Sie einen SELECT-Befehl, um die Felder umzubenennen.

Skript-Syntax

Das Skript, das an GeoOperations übermittelt wird, hat folgende Syntax:

1. Vorgang

Die einfachste Form eines Skripts führt einen Vorgang durch.

Syntax:  

Operation(paramName="paramValue", ...)

Beispiel:  

Cluster(distance="100000")

 

Weitere Informationen finden Sie in der Liste der Vorgänge und ihrer Parameter.

2. Datensatz

Der zweite Schritt besteht darin, einen Datensatz zu laden, auf den Ihre gewählten Vorgänge angewendet werden.

Syntax:  

Operation(paramName="paramValue", ...)

DATASOURCE name TYPE paramName="paramvalue", ...

Beispiel:  

Within()

DATASOURCE states LOCATIONSERVICE type="STATE", country="US"

 

Weitere Informationen finden Sie in der Liste der Datensätze und ihrer Parameter.

3. Zusammenfügen

So sieht das vollständige Skript im Dateneditor aus:

[MyPointsInStates]:

Load * Extension GeoOperations.ScriptEval(’

Within()

DATASOURCE states LOCATIONSERVICE type=”STATE”, country=”US”

’, MyTable);

 

In diesem Beispiel kann „MyTable“ jede beliebige geladene Tabelle mit Punkten, Linien, benannten Gebieten oder anderen geografischen Daten sein.

4. Felder filtern

Durch die folgenden Hinzufügungen können die Ergebnisse des Vorgangs weiter gefiltert werden.

[MyPointsInStates]:

Load * Extension GeoOperations.ScriptEval(’

SELECT Name, states.Name as State FROM

Within()

DATASOURCE states LOCATIONSERVICE type=”STATE”, country=”US”

’, MyTable{Name, Point});

Bei Parameternamen und Feldnamen wird zwischen Groß- und Kleinschreibung unterschieden, für Operationen, Parameteroptionen (wie meters, minutes, car usw.) oder Schlüsselwörter wie SELECT und FROM gilt dies jedoch nicht.

Fehlerbehebung für Skripterstellung mit AddressPointLookup und PointToAddressLookup

Hat diese Seite Ihnen geholfen?

Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!