Gå till huvudinnehåll Gå till ytterligare innehåll

Skript med Qlik GeoOperations

Qlik GeoOperations kopplingar skapar och formaterar GeoOperations-skript åt dig. Du kan ändra dessa skript i Skriptredigeraren. Du kan också skapa skript manuellt med GeoOperations-funktioner i stället för att använda Qlik GeoOperations-kopplingar.

Hur Qlik GeoOperations fungerar

Först lägger du till en Qlik GeoOperations-koppling som datakälla. I Skriptredigeraren i din app kan du när du väljer data som ska laddas från kopplingen välja vilka operationer som ska utföras och vilka parametrar som ska tillämpas. Qlik GeoOperations-kontakten lägger sedan till motsvarande GeoOperations-skript i ditt laddningsskript. Du kan också lägga till det här skriptet manuellt.

Varje operationsskript består av en laddningssats som väljer dataanvändningen, och operationen. Dessa skickas till GeoOperations-tillägget i laddningsskriptet. Sedan returnerar komplementet på serversidan data. Qlik GeoOperations gör ett objekt för Advanced Analytics Integration som heter GeoOperations tillgängligt i skriptspråket. Detta tillhandahåller funktionen ScriptEval för att skicka skriptet och tabellen till tillägget.

Så här ser till exempel laddningsskriptet som tillämpar operationen Reseområden på den tidigare laddade tabellen MyPoints och specificerar parametrar för reseområdets storlek/kostnad ut:

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

Skriptet skickas till ScriptEval som den första parametern, och tabellen som den andra.

GeoOperations är funktioner som används för datauppsättningar. Datauppsättningarna kommer antingen från data som har laddats i Qlik Sense eller från externa källor som geografiska filer eller platstjänsten. Data som skickas från skriptet är tillgängliga som en datauppsättning med namnet INTABLE. Om du vill specificera ytterligare parametrar för dessa data, måste du deklarera dem efter funktionsanropet som en DATASOURCE. Exempel:

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

Andra datakällor måste alltid deklareras och parametrar som URL:er måste specificeras. I varje operation kan du specificera vilka datakällor som ska användas. Som standard plockar operationer upp de tillgängliga datauppsättningarna enligt beskrivningen för varje operation i Operation (endast på engelska).

Välja GeoOperations-fält och ge dem nya namn

GeoOperations-funktioner returnerar fält. Som standard inkluderas och returneras alla delade fält. Du kan välja specifika fält du är intresserad av, och valfritt även byta namn på dem, genom att placera en SELECT-sats före GeoOperations-funktioner. Till exempel använder följande skript SELECT för att ladda endast två av postnummerfälten från platstjänsten:

Load * Extension GeoOperations.ScriptEval('

SELECT Name as PostalCode, LocationArea FROM

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

 

Att använda en SELECT-sats i GeoOperations-skriptet kan vara mer effektivt än att specificera fält i Qlik LOAD-satser, eftersom data inte laddas i Qlik Sense om de inte väljs i GeoOperations-skriptet.

Med SELECT kan du undvika att vissa fält beräknas, genom att välja att de inte ska returneras i resultaten. Du kan till exempel utesluta de relativa överlappningsfälten som returneras av Intersects.

Anteckning om information

Om du använder samma operation flera gånger i laddningsskriptet ger du fälten andra namn med en SELECT-sats.

Skriptsyntax

Skriptet som skickas till GeoOperations har följande syntax:

1. Operation

Den enklaste formen av skript utför en operation.

Syntax:  

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

Exempel:  

Cluster(distance="100000")

 

Mer information finns i listan över operationer och deras parametrar.

2. Datauppsättning

Det andra steget är att ladda en datauppsättning som den valda operationen eller operationerna ska tillämpas på.

Syntax:  

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

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

Exempel:  

Within()

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

 

Mer information finns i listan över datauppsättningar och deras parametrar.

3. Sätta ihop helheten

Så här skulle det slutförda skriptet se ut i Skriptredigeraren:

[MyPointsInStates]:

Load * Extension GeoOperations.ScriptEval(’

Within()

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

’, MyTable);

 

I det här exemplet kan MyTable vara en annan inläst tabell som innehåller punkter, linjer, namngivna områden eller andra geografiska data.

4. Filtrera fält

Genom att använda följande tillägg kan du filtrera resultaten av operationen ytterligare.

[MyPointsInStates]:

Load * Extension GeoOperations.ScriptEval(’

SELECT Name, states.Name as State FROM

Within()

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

’, MyTable{Name, Point});

Namn på parametrar och fält är skiftlägeskänsliga, men det är inte operationer, parameteralternativ (som meters, minutes, bil och så vidare) eller nyckelord som SELECT och FROM.

Felsökning av skript för AddressPointLookup och PointToAddressLookup

Var den här sidan till hjälp för dig?

Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!