# Operazione

## AddressPointLookup

Restituisce le geometrie dei punti per gli indirizzi in una tabella, ovvero la geocodifica. Specificare una stringa di indirizzo nella proprietà *Search Text* o parti strutturate nelle proprietà corrispondenti, come *Country*, *Street* ecc. Sono consentite anche combinazioni. Questa operazione richiede una licenza speciale. Gli indirizzi che non è stato possibile trovare per qualsiasi motivo non vengono restituiti nel risultato.

La funzionalità offerta da Qlik Geocoding (tramite AddressPointLookup e PointToAddressLookup) è distinta dalle altre funzionalità di ricerca della posizione. Qlik Geocoding consente ricerche a livello di indirizzo, mentre le normali ricerche della posizione possono essere precise solo a livello di codice postale.

Quando si inizia a utilizzare Qlik Geocoding, utilizzare il modello a cui si fa riferimento in [Configurazione di Qlik Geocoding](https://help.qlik.com/en-US/geoanalytics/Content/Global_Common/GeoCoding/Qlik-GeoCoding-setup.htm) (solo in lingua inglese).

Nota informatica Per ottenere risultati ottimali, privilegiare dati specifici e omettere dati generici quando possibile. Ad esempio, se si dispone sia di un codice postale che di una città postale e si ritiene che il codice postale sia corretto, è preferibile non specificare la città postale.

La maggior parte dei parametri è disponibile in due versioni, una che specifica il valore effettivo, come `  country="SWE" `, e una che specifica il nome di un campo da cui recuperare il valore effettivo, come `  countryField="CountryIso2" `.

Nota informatica È necessario disporre dell'autorizzazione del ruolo utente Use : per utilizzare AddressPointLookup.

Nota informatica Per geocodificare indirizzi in inglese o pinyin in Cina, il parametro Country deve essere impostato su "CHN".

Restituisce le seguenti colonne:

* &lt;colonna chiave del set di dati&gt; - La colonna chiave dal set di dati di input.
* Address - L'indirizzo trovato, formattato in base agli standard degli indirizzi del paese.
* Geometry - Il punto per l'elemento trovato.
* HouseNumber - Il numero civico per l'elemento trovato.
* Street - La via per l'elemento trovato.
* PostalCode - Il codice postale per l'elemento trovato.
* City - Il nome della divisione amministrativa a livello di città per l'elemento trovato.
* Adm1 - Il nome o il nome abbreviato della divisione amministrativa di primo livello (stato) per l'elemento trovato.
* CountryIso2 - Il codice del paese per l'elemento trovato.
* Match - Un valore compreso tra 0 e 1 che indica la qualità della corrispondenza. Un valore pari a 1 indica una corrispondenza perfetta.
* Tutte le colonne tranne la colonna chiave da *dataset*, con il nome del set di dati come prefisso.

I campi restituiti potrebbero essere vuoti se non applicabili o se i dati non sono disponibili.

Supporta:

* ScriptEval negli script di caricamento.

Esempio che geocodifica alcuni indirizzi svedesi in cui ogni elemento si trova nel proprio campo:

```
[Addresses]:
Load * inline [
Id,Country,City,Street,HouseNumber,Postal
1,SE,Gothenburg,Odinsgatan,13,41103
2,SE,,Alfhemsgatan,5,41310
];

Load * Extension GeoOperations.ScriptEval('
  Select Id, Address, AddressPoint From
  AddressPointLookup(countryField="Country", cityField="City", streetField="Street", houseNumberField="HouseNumber", postalCodeField="Postal")
', Addresses);
```

Questo esempio mostra la geocodifica in uno stile a testo libero:

```
[Addresses2]:
Load * inline [
Id;Address
1;1600 Pennsylvania Avenue NW, Washington, D.C. 20500
2;767 5th Ave, New York, NY 10153
]
(delimiter is ';');

Load * Extension GeoOperations.ScriptEval('
  AddressPointLookup(searchTextField="Address", country="USA")
', Addresses2);
```

Parametri per AddressPointLookup

| Parametro | Tipo | Uso | Descrizione |
| --- | --- | --- | --- |
| searchText | stringa | *facoltativo* | Una stringa di testo da cercare.<br>Possono essere indirizzi come: "1600 Pennsylvania Ave, Washington DC, USA" o indirizzi incompleti combinati con dati in altri campi,<br>come "1117 Washington Ave" con *City* impostato su "Philadelphia" e *Country* impostato su "USA". |
| searchTextField | stringa | *facoltativo* | Se *searchText* non è specificato, questo parametro può essere utilizzato per specificare un campo da cui recuperare le informazioni. |
| country | stringa | *facoltativo* | Una stringa con codici ISO a tre lettere. È possibile specificare più paesi, separati da virgole: "SWE,NOR,FIN".<br>Per geocodificare in modo specifico indirizzi in inglese o pinyin in Cina, questo parametro deve essere impostato su "CHN". |
| countryField | stringa | *facoltativo* | Se *country* non è specificato, questo parametro può essere utilizzato per specificare un campo che contiene il nome del paese o i codici ISO a due o tre lettere.<br>Si noti che, a differenza degli altri parametri, il formato previsto dei dati specificati da *country* e *countryField*<br>non è identico. Il parametro *country* consente più paesi, ma solo nel formato ISO a tre lettere, mentre *countryField* consente<br>formati di paese diversi. |
| state | stringa | *facoltativo* | Nome o codice dello stato. Per la maggior parte dei paesi, lo stato non fa parte dell'indirizzo. |
| stateField | stringa | *facoltativo* | Se *state* non è specificato, questo parametro può essere utilizzato per specificare un campo da cui recuperare le informazioni. |
| city | stringa | *facoltativo* | Nome della città, comune o città postale. |
| cityField | stringa | *facoltativo* | Se *city* non è specificato, questo parametro può essere utilizzato per specificare un campo da cui recuperare le informazioni. |
| postalCode | stringa | *facoltativo* | Codice postale. |
| postalCodeField | stringa | *facoltativo* | Se *postalCode* non è specificato, questo parametro può essere utilizzato per specificare un campo da cui recuperare le informazioni. |
| street | stringa | *facoltativo* | Nome della via.<br>Invece di specificare la via e il numero civico in parametri o campi separati, è possibile specificarli entrambi insieme, separati da uno spazio. |
| streetField | stringa | *facoltativo* | Se *street* non è specificato, questo parametro può essere utilizzato per specificare un campo da cui recuperare le informazioni. |
| houseNumber | stringa | *facoltativo* | Numero civico. |
| houseNumberField | stringa | *facoltativo* | Se *houseNumber* non è specificato, questo parametro può essere utilizzato per specificare un campo da cui recuperare le informazioni. |
| matchThreshold | real | *predefinito: 0.5* | Restituisce solo i risultati con una corrispondenza migliore di questa. Aumentare questo valore se vengono restituiti troppi falsi risultati. |
| language | stringa | *predefinito: Nessuno.* | Un codice lingua a due lettere per la lingua preferita per l'indirizzo nella risposta. Se l'indirizzo<br>non è disponibile nella lingua richiesta, viene restituito in una lingua predefinita per la posizione. |
| dataset | Dataset | *predefinito: Nessuno.* | Un set di dati con indirizzi che verranno cercati nel geocodificatore. Supporta il flusso di questo set di dati quando viene inviato dallo script di caricamento, il che significa che sono consentite tabelle più grandi. |
| precision | integer | *predefinito: 6* | Imposta il numero di decimali a cui arrotondare le coordinate.<br>Il valore predefinito è 6 decimali, che ha una precisione di circa 10 cm.<br>Se non si desidera arrotondare le coordinate, impostare il valore su un numero negativo. |

## Binning

Genera contenitori rettangolari o esagonali per un set di dati di punti. Questo è un modo per aggregare i dati dei punti in modo da poter visualizzare in modo efficiente una panoramica dei dati.

Restituisce le seguenti colonne:

* &lt;colonna chiave del set di dati&gt; - La colonna chiave dal set di dati di input.
* BinId - Identità per il contenitore.
* BinTable.BinPolygon - Il poligono per il contenitore.
* BinTable.CenterPoint - Punto al centro del contenitore.
* Tutte le colonne tranne la colonna chiave da *dataset*, con il nome del set di dati come prefisso.

Supporta:

* ScriptEval negli script di caricamento.

Esempio che carica contenitori esagonali dagli aeroporti degli Stati Uniti:

```
Load * Extension GeoOperations.ScriptEval('
  Binning(type="hexagonal", gridSize="1")
  DATASOURCE airports LOCATIONSERVICE geometry="POINT", type="AirportIATA", country="us"
');
```

Parametri per Binning

| Parametro | Tipo | Uso | Descrizione |
| --- | --- | --- | --- |
| type | stringa | *predefinito: rectangular* | Definisce se devono essere generati contenitori *rectangular* o *hexagonal*. |
| gridSize | real | *predefinito: Nessuno.* | L'altezza di un singolo contenitore in gradi. Un grado corrisponde a circa 10000 m. |
| gridWidthHeightRatio | real | *predefinito: 1.5* | Il rapporto larghezza-altezza dei contenitori.<br>I contenitori quadrati sono spesso ottimali, ma ciò varia in base alla latitudine.<br>La formula per il rapporto larghezza-altezza ottimale è 1/cos(latitudine), ad esempio 1 all'equatore, 1,15 alla latitudine +-30 gradi e 2 alla latitudine +-60 gradi.<br>Spesso è preferibile visualizzare i dati raggruppati nella proiezione adattiva rispetto alla proiezione di Mercatore. |
| dataset | Dataset | *predefinito: Nessuno.* | Il set di dati con le geometrie dei punti per cui generare i contenitori. Supporta il flusso di questo set di dati quando viene inviato dallo script di caricamento, il che significa che sono consentite tabelle più grandi. |
| precision | integer | *predefinito: 6* | Imposta il numero di decimali a cui arrotondare le coordinate.<br>Il valore predefinito è 6 decimali, che ha una precisione di circa 10 cm.<br>Se non si desidera arrotondare le coordinate, impostare il valore su un numero negativo. |

## Closest

Restituisce le relazioni e le distanze tra gli oggetti in un set di dati e gli oggetti più vicini in un altro, se qualcuno è più vicino della distanza massima. Il costo può anche essere calcolato lungo le strade e, in tal caso, utilizzare facoltativamente il tempo di percorrenza. Questa operazione è utile in molti casi, non solo per ottenere le relazioni con gli oggetti più vicini, ma anche per ottenere matrici di distanza tra un insieme di punti.

Restituisce le seguenti colonne:

* &lt;nome dataset1&gt;\_&lt;nome dataset2&gt;\_RelationId - Una chiave generata per la relazione tra le due geometrie.
* &lt;colonna chiave dataset1&gt; - La colonna chiave dal dataset1 di input.
* &lt;colonna chiave dataset2&gt; - La colonna chiave dal dataset2 di input.
* Distance - La distanza nell'unità specificata in *costUnit*.
* Status - Lo stato restituito è "ok" o "failed:" seguito da un messaggio di errore.
* LowResLine - Una versione a bassa risoluzione della linea del percorso, disponibile solo per i tipi di distanza non *bird*.
* Tutte le colonne tranne la colonna chiave dal set di dati *dataset1* di input, con il nome del set di dati come prefisso.
* Tutte le colonne tranne la colonna chiave dal set di dati *dataset2* di input, con il nome del set di dati come prefisso.

Supporta:

* ScriptEval negli script di caricamento.

Questo esempio trova gli aeroporti più vicini ai punti in una tabella:

```
MyPoints:
LOAD * inline "
id;point
1;[12,57.7]
2;[12.1,57.7]
" (delimiter is ';');

MyClosestAirports:
Load * Extension GeoOperations.ScriptEval('
  Closest(distance="100000", closestCount="3")
  DATASOURCE pts INTABLE keyField="id", pointField="point"
  DATASOURCE airports LOCATIONSERVICE geometry="POINT", type="AirportIATA", country="se"
', MyPoints);
```

Parametri per Closest

| Parametro | Tipo | Uso | Descrizione |
| --- | --- | --- | --- |
| distance | real | *predefinito: Nessuno.* | Distanza massima dall'unità specificata in Unità di costo. Gli elementi più distanti di questa vengono ignorati. |
| costUnit | stringa | *predefinito: meters* | Deve essere uno tra meters, yards, kilometers, miles, seconds, minutes o hours.<br>L'utilizzo di unità di tempo implica che il tempo di percorrenza venga utilizzato come costo e le unità di lunghezza che venga utilizzata la distanza.<br>Le unità di tempo non sono consentite per il tipo di distanza Bird. |
| distanceType | real | *predefinito: Bird* | Decide come vengono misurate le distanze. Sono consentiti i seguenti valori:<br><br><ul><li> Bird - misura le distanze dirette (in linea d'aria) tra gli oggetti.</li><li> Car - misura lungo le strade con restrizioni per le auto. Supportato solo per i set di dati di punti.</li><li> Bike - misura lungo le strade con restrizioni per le biciclette. Supportato solo per i set di dati di punti.</li><li> Pedestrian - misura lungo le strade con restrizioni per i pedoni. Supportato solo per i set di dati di punti.</li><li> Truck - misura lungo le strade con restrizioni per i camion. Supportato solo per i set di dati di punti.</li></ul> |
| closestCount | real | *predefinito: 1* | Numero di oggetti nel secondo set di dati da associare a un oggetto nel primo set di dati.<br>Un valore pari a 1 indica solo il più vicino, 2 indica i due più vicini e così via. |
| dataset1 | Dataset | *predefinito: &lt;primo set di dati&gt;* | Oggetti di cui verificare la vicinanza agli oggetti in dataset2 se specificato, altrimenti agli oggetti in se stesso.<br>Quando si verifica la vicinanza tra oggetti in un singolo set di dati, le relazioni non vengono mai aggiunte da un oggetto a se stesso.<br>Supporta il flusso di questo set di dati quando viene inviato dallo script di caricamento e *dataset2* è definito, il che significa che sono consentite tabelle più grandi. |
| dataset2 | Dataset | *predefinito: &lt;secondo set di dati, se presente&gt;* | Oggetti da mettere in relazione con gli oggetti in dataset1. |
| precision | integer | *predefinito: 6* | Imposta il numero di decimali a cui arrotondare le coordinate.<br>Il valore predefinito è 6 decimali, che ha una precisione di circa 10 cm.<br>Se non si desidera arrotondare le coordinate, impostare il valore su un numero negativo. |

## Cluster

Produce cluster da un set di dati di punti in base alla vicinanza geografica tra i punti. La generazione dei cluster è controllata dal parametro *distance*, che definisce quanto un punto può essere distante dal cluster a cui appartiene. Restituisce una tabella con le relazioni tra punti e cluster. Restituisce anche una tabella unita denominata Clusters con le geometrie dei cluster. Contiene i campi ClusterID, ClusterCenter (geometria del punto) e PointCount. Il campo di conteggio contiene il numero di punti nel cluster.

Restituisce le seguenti colonne:

* &lt;colonna chiave del set di dati&gt; - La colonna chiave dal set di dati di input.
* ClusterID - ID del cluster a cui appartiene il punto.
* Clusters.ClusterPoint - Punto centrale del cluster.
* Clusters.PointCount - Numero di punti originali appartenenti al cluster.
* Tutte le colonne tranne la colonna chiave dal set di dati di input, con il nome del set di dati come prefisso.

Supporta:

* ScriptEval negli script di caricamento.

Questo esempio raggruppa gli aeroporti negli Stati Uniti in modo che gli aeroporti a meno di 50 km di distanza appartengano a un unico cluster:

```
MyClusteredAirports:
Load *
Extension GeoOperations.ScriptEval('
  Cluster(distance="50000")
  DATASOURCE airports LOCATIONSERVICE geometry="POINT", type="AirportIATA", country="us"
');
```

Parametri per Cluster

| Parametro | Tipo | Uso | Descrizione |
| --- | --- | --- | --- |
| distance | real | *predefinito: Nessuno.* | La distanza tra un punto e il suo cluster non può essere superiore a questa distanza in metri. |
| dataset | Dataset | *predefinito: Nessuno.* | Un set di dati con punti da raggruppare in cluster. |
| precision | integer | *predefinito: 6* | Imposta il numero di decimali a cui arrotondare le coordinate.<br>Il valore predefinito è 6 decimali, che ha una precisione di circa 10 cm.<br>Se non si desidera arrotondare le coordinate, impostare il valore su un numero negativo. |

## Dissolve

Dissolve e semplifica le aree per formare aree più grandi in base alla mappatura tra le vecchie identità (o geometrie) delle aree e le nuove identità delle aree. Questo viene in genere utilizzato per creare aree personalizzate costituite da aree più piccole ben definite, come aree postali o aree amministrative.

Restituisce le seguenti colonne:

* &lt;dissolveField&gt; - Il campo specificato come *dissolveField* nei dati di input.
* DissolvedPolygon - Le geometrie delle nuove aree dissolte.

Supporta:

* ScriptEval negli script di caricamento.

Il set di dati della geometria è facoltativo. Se non fornito, si presuppone che le geometrie siano disponibili nel set di dati di definizione della dissolvenza.

Si noti che le sovrapposizioni di poligoni vengono rimosse in tutte le risoluzioni tranne *Source*.

Questo esempio crea due regioni, una composta da CA e AZ e una composta da WA e OR:

```
MySalesRegions:
LOAD * inline "
Adm1Code;RegionName
California;SouthWest
Arizona;SouthWest
Washington;NorthWest
Oregon;NorthWest
" (delimiter is ';');

MySalesRegionGeometries:
Load * Extension GeoOperations.ScriptEval('
  Dissolve(dissolveField="RegionName", areaDatasetKeyField="Name")
  DATASOURCE states LOCATIONSERVICE type="State", country="us"
', MySalesRegions);
```

Parametri per Dissolve

| Parametro | Tipo | Uso | Descrizione |
| --- | --- | --- | --- |
| dissolveField | stringa | *predefinito: &lt;stesso nome del campo chiave in dissolveDataset&gt;* | Il nome del campo con le identità delle nuove aree in *dissolveDataset*. |
| resolution | stringa | *predefinito: Auto* | Il set di dati risultante viene semplificato e il grado di semplificazione è controllato da questa proprietà. I valori disponibili sono:<br><br><ul><li><strong> auto</strong> - L'operazione calcola una risoluzione in base ai dati.</li><li><strong> autolow</strong> - Una risoluzione inferiore (la metà) alla risoluzione Auto.</li><li><strong> autohigh</strong> - Una risoluzione superiore (il doppio) alla risoluzione Auto.</li><li><strong> source</strong> - Non viene eseguita alcuna semplificazione.                        Si noti che se <em> dissolveDataset</em> contiene le stesse vecchie aree due volte in due nuove aree diverse, è necessario utilizzare <em> source</em>.                    </li></ul> |
| areaDatasetKeyField | stringa | *predefinito: &lt;campo chiave in areaDataset&gt;* | Le identità delle aree originali in *areaDataset*. Viene utilizzato solo se è specificato *areaDataset*. |
| dissolveDataset | Dataset | *predefinito: &lt;primo set di dati&gt;* | La definizione della nuova area a cui appartiene ciascuna vecchia area, ovvero una mappatura tra le identità della vecchia area e della nuova area.<br>Il campo chiave deve essere mappato alle chiavi in *areaDataset*, se specificato.<br>Se non viene fornito alcun *areaDataset*, le geometrie devono essere disponibili in questo set di dati. |
| areaDataset | Dataset | *predefinito: &lt;secondo set di dati, se presente&gt;* | Il set di dati con le geometrie delle aree da dissolvere.<br>Può essere nessuno, il che significa che le geometrie devono essere disponibili in *dissolveDataset*.<br>Il campo *areaDatasetKeyField* in questo set di dati deve essere collegato al campo chiave in *dissolveDataset*. |
| precision | integer | *predefinito: 6* | Imposta il numero di decimali a cui arrotondare le coordinate.<br>Il valore predefinito è 6 decimali, che ha una precisione di circa 10 cm.<br>Se non si desidera arrotondare le coordinate, impostare il valore su un numero negativo. |

## Intersects

Restituisce una tabella che mappa tra la chiave in dataset1 e la chiave in dataset2 per tutti gli oggetti che si intersecano. Se entrambi i set di dati contengono poligoni, viene restituita l'area di sovrapposizione relativa rispetto alle aree nel rispettivo set di dati.

È possibile limitare il numero di geometrie intersecanti nel secondo set di dati che devono essere mappate a ciascuna geometria nel primo set di dati specificando *intersectsCount*. Quindi le geometrie più intersecanti vengono restituite in ordine. L'operazione è simmetrica se *intersectsCount* non è specificato.

Restituisce le seguenti colonne:

* &lt;nome dataset1&gt;\_&lt;nome dataset2&gt;\_RelationId - Una chiave generata per la relazione tra le due geometrie.
* &lt;colonna chiave dataset1&gt; - La colonna chiave dal dataset1 di input.
* &lt;colonna chiave dataset2&gt; - La colonna chiave dal dataset2 di input.
* &lt;nome dataset1&gt;.RelativeOverlap - La sovrapposizione rispetto al poligono in dataset1. Restituito solo se entrambi i set di dati contengono poligoni. La richiesta di questo campo comporta una penalizzazione delle prestazioni.
* &lt;nome dataset2&gt;.RelativeOverlap - La sovrapposizione rispetto al poligono in dataset2. Restituito solo se entrambi i set di dati contengono poligoni. La richiesta di questo campo comporta una penalizzazione delle prestazioni.
* Tutte le colonne tranne la colonna chiave dal set di dati *dataset1* di input, con il nome del set di dati come prefisso.
* Tutte le colonne tranne la colonna chiave dal set di dati *dataset2* di input, con il nome del set di dati come prefisso.

Supporta:

* ScriptEval negli script di caricamento.

Questo esempio calcola quali stati intersecano alcune linee:

MyLines: LOAD \* inline " id;line 1;[[-108.1,45.4],[-107.4,44.9]] 2;[[-98.9,40.1],[-100.4,40.9]] " (delimiter is ';'); LinesInStates: Load \* Extension GeoOperations.ScriptEval(' SELECT id, states.Name FROM Intersects() DATASOURCE states LOCATIONSERVICE geometry="AREA", type="Admin1", country="us" ', MyLines);

Parametri per Intersects

| Parametro | Tipo | Uso | Descrizione |
| --- | --- | --- | --- |
| dataset1 | Dataset | *predefinito: &lt;primo set di dati&gt;* | Un set di dati con geometrie da testare per verificare quali intersecano le geometrie nell'altro set di dati, se specificato, o tra gli oggetti in questo set di dati, in caso contrario.<br>Quando si verifica l'intersezione tra oggetti in un singolo set di dati, le relazioni non vengono mai aggiunte da un oggetto a se stesso.<br>Supporta il flusso di questo set di dati quando viene inviato dallo script di caricamento e quando *dataset2* è definito, il che significa che sono consentite tabelle più grandi. |
| dataset2 | Dataset | *predefinito: &lt;secondo set di dati, se presente&gt;* | Un set di dati con geometrie da testare per verificare quali intersecano le geometrie nell'altro set di dati. Se non specificato, viene calcolata l'intersezione tra gli oggetti in *dataset1*. |
| intersectsCount | integer | *predefinito: 0* | Se maggiore di 0, viene restituito al massimo questo numero di geometrie intersecanti in *dataset2* per geometria in *dataset1*. Vengono restituite solo quelle che si intersecano maggiormente (area o lunghezza di sovrapposizione maggiore). |
| precision | integer | *predefinito: 6* | Imposta il numero di decimali a cui arrotondare le coordinate.<br>Il valore predefinito è 6 decimali, che ha una precisione di circa 10 cm.<br>Se non si desidera arrotondare le coordinate, impostare il valore su un numero negativo. |

## IpLookup

Restituisce informazioni sulla posizione e geometrie dei punti per gli indirizzi IP in una tabella. Questo è utile quando si analizzano i dati di accesso ai servizi Web. La tabella restituita contiene i seguenti campi:

* Campo chiave - Lo stesso del campo chiave per la tabella dei nomi.
* &lt;Campo IP della tabella degli indirizzi&gt; - Lo stesso del campo IP che è stato cercato. Disponibile solo se non è uguale al campo chiave.
* IpPoint - Il punto per l'elemento trovato.
* CountryIso2 - Il codice del paese per l'elemento trovato.
* Adm1Code - Il codice per l'area amministrativa di primo livello per l'elemento trovato. Si noti che questo codice non è sempre compatibile con il codice restituito dal servizio di posizione.
* City - La città per l'elemento trovato.
* Tutte le colonne tranne la colonna chiave dal set di dati di input, con il nome del set di dati come prefisso.

La geolocalizzazione IP è intrinsecamente imprecisa. Per molti indirizzi IP è possibile individuare una città, ma per altri è possibile risolvere solo il paese.

La procedura consigliata consiste nell'inviare solo la colonna IP all'operazione *IpLookup*. Esempio che cerca alcuni indirizzi IP:

MyIpData: LOAD \* inline " User;Ip Alice;188.12.2.2 Bob;176.77.23.14 " (delimiter is ';'); MyIpPoints: Load \* Extension GeoOperations.ScriptEval(' IpLookup(ipField="Ip") ', MyIpData{Ip});

È comune che lo stesso IP venga ripetuto in molte righe. In tal caso, migliora le prestazioni filtrare prima solo gli IP univoci come in questo esempio:

MyIpData: LOAD \* inline " User;Ip Alice;176.77.23.14 Bob;188.12.2.2 Carol;176.77.23.14 Dave;188.12.2.2 Bob;188.12.2.2 Bob;188.12.2.2 " (delimiter is ';'); MyDistinctIpData: Load distinct Ip resident MyIpData; MyIpPoints: Load \* Extension GeoOperations.ScriptEval(' IpLookup(ipField="Ip") ', MyDistinctIpData); Drop Table MyDistinctIpData;

Questo prodotto include i dati GeoLite2 creati da MaxMind, disponibili su [MaxMind](https://www.maxmind.com/).

Parametri per IpLookup

| Parametro | Tipo | Uso | Descrizione |
| --- | --- | --- | --- |
| ipField | stringa | *facoltativo* | Il campo con l'indirizzo IP da cercare. Utilizza il campo chiave del set di dati se non specificato. |
| dataset | Dataset | *predefinito: Nessuno.* | Un set di dati con indirizzi IP che verranno cercati nel geocodificatore. Supporta il flusso di questo set di dati quando viene inviato dallo script di caricamento, il che significa che sono consentite tabelle più grandi. |
| precision | integer | *predefinito: 6* | Imposta il numero di decimali a cui arrotondare le coordinate.<br>Il valore predefinito è 6 decimali, che ha una precisione di circa 10 cm.<br>Se non si desidera arrotondare le coordinate, impostare il valore su un numero negativo. |

## Load

Carica il set di dati senza alcuna operazione applicata. Ciò consente di caricare tutti i formati supportati da GeoOperations. Si noti che *Simplify* può essere una buona alternativa a *Load* se le geometrie sono dettagliate e lente da visualizzare.

Restituisce le seguenti colonne:

* Tutte le colonne da *dataset*.

Supporta:

* ScriptEval negli script di caricamento.

Esempio che carica i codici postali dalla Svezia:

Load \* Extension GeoOperations.ScriptEval('Load() DATASOURCE PostalCodes LOCATIONSERVICE type="PostalCode", country="se"');

Poiché WKT è supportato come formato di geometria per i dati in *INTABLE*, l'operazione *Load* è eccellente per convertire le geometrie geografiche caricate da un database nel formato di geometria Sense in modo che possano essere visualizzate. L'esempio seguente mostra come convertire i dati WKT, in questo caso dalla tabella *MyWKTData*:

MyWKTData: LOAD \*inline " id;wkt 1;POINT(-80.204 25.791) 2;POINT(-81.381 28.538)" (delimiter is ';'); Load \* Extension GeoOperations.ScriptEval(' Select id, wkt as point From Load() ', MyWKTData);

Parametri per Load

| Parametro | Tipo | Uso | Descrizione |
| --- | --- | --- | --- |
| dataset | Dataset | *predefinito: &lt;primo set di dati&gt;* | Set di dati da caricare. Supporta il flusso di questo set di dati quando viene inviato dallo script di caricamento, il che significa che sono consentite tabelle più grandi. |
| precision | integer | *predefinito: 6* | Imposta il numero di decimali a cui arrotondare le coordinate.<br>Il valore predefinito è 6 decimali, che ha una precisione di circa 10 cm.<br>Se non si desidera arrotondare le coordinate, impostare il valore su un numero negativo. |

## PointToAddressLookup

Restituisce l'indirizzo più vicino per i punti nell'elenco, noto anche come geocodifica inversa. Questa operazione richiede una licenza speciale. I punti vicini alle strade otterranno indirizzi a livello di strada, altrimenti si ripiegherà sulla restituzione di risultati a livello di area postale o di città. Per i punti troppo lontani, non viene restituito alcun dato.

Nota informatica È necessario disporre dell'autorizzazione del ruolo utente Use : per utilizzare PointToAddressLookup.

Restituisce le seguenti colonne:

* &lt;colonna chiave del set di dati&gt; - La colonna chiave dal set di dati di input.
* Address - L'indirizzo trovato, formattato in base agli standard degli indirizzi del paese.
* Geometry - Il punto per l'elemento trovato.
* HouseNumber - Il numero civico per l'elemento trovato.
* Street - La via per l'elemento trovato.
* PostalCode - Il codice postale per l'elemento trovato.
* City - Il nome della divisione amministrativa a livello di città per l'elemento trovato.
* Adm1 - Il nome o il nome abbreviato della divisione amministrativa di primo livello (stato) per l'elemento trovato.
* CountryIso2 - Il codice del paese per l'elemento trovato.
* Distance - Distanza in metri dall'indirizzo trovato.
* Tutte le colonne tranne la colonna chiave da *dataset*, con il nome del set di dati come prefisso.

Si noti che i campi restituiti potrebbero essere vuoti se non applicabili o se i dati non sono disponibili.

Esempio che ottiene gli indirizzi per alcuni punti:

MyAddressPoints: LOAD \* inline " id;point 1;[-108.1,45.4] 2;[-98.9,40.1] 3;[12.1,57.7] " (delimiter is ';'); Load \* Extension GeoOperations.ScriptEval(' PointToAddressLookup() ', MyAddressPoints);

Parametri per PointToAddressLookup

| Parametro | Tipo | Uso | Descrizione |
| --- | --- | --- | --- |
| language | stringa | *predefinito:* | Un codice lingua a due lettere per la lingua preferita per l'indirizzo nella risposta. Se l'indirizzo<br>non è disponibile nella lingua richiesta, viene restituito in una lingua predefinita per la posizione. |
| dataset | Dataset | *predefinito: Nessuno.* | Un set di dati con punti che verranno cercati nel geocodificatore. Supporta il flusso di questo set di dati quando viene inviato dallo script di caricamento, il che significa che sono consentite tabelle più grandi. |
| precision | integer | *predefinito: 6* | Imposta il numero di decimali a cui arrotondare le coordinate.<br>Il valore predefinito è 6 decimali, che ha una precisione di circa 10 cm.<br>Se non si desidera arrotondare le coordinate, impostare il valore su un numero negativo. |

## Routes

Calcola i percorsi, inclusi lunghezza e durata, tra due posizioni in una tabella.

Si noti che l'origine è la colonna della geometria nel set di dati. La colonna di destinazione è specificata nei parametri dell'operazione poiché i set di dati conoscono solo una colonna della geometria.

Se si utilizza **bird** come tipo di trasporto, vengono generati archi di cerchio massimo tra origini e destinazioni.

Restituisce le seguenti colonne:

* &lt;colonna chiave del set di dati&gt; - La colonna chiave dal set di dati di input.
* Distance - La distanza del percorso in metri.
* Duration - Il tempo di percorrenza stimato del percorso in secondi.
* Status - Lo stato restituito è "ok" o "failed:" seguito da un messaggio di errore.
* LowResLine - Una versione a bassa risoluzione della linea del percorso.
* Tutte le colonne tranne la colonna chiave dal set di dati di input, con il nome del set di dati come prefisso.

Supporta:

* ScriptEval negli script di caricamento.
* ScriptEvalStr negli script del grafico per ottenere il percorso.
* ScriptEval negli script del grafico per ottenere la distanza o la durata.

Questo è un esempio che calcola i percorsi tra i punti in un set di dati:

MyRoutePoints: LOAD \* inline " routeid;origin;dest 1;[12,57.7];[12,57.8] 2;[12.1,57.7];[12.2,57.7] " (delimiter is ';'); MyRoutes: Load \* Extension GeoOperations.ScriptEval('Routes(destField="dest")', MyRoutePoints);

Questo è un esempio che calcola i percorsi direttamente in un livello linea. L'operazione viene chiamata per la selezione ogni volta che la selezione cambia. Normalmente dovrebbe esserci una condizione di calcolo che è vera se vengono selezionati solo pochi punti (altrimenti è meglio calcolare i percorsi nello script di caricamento). Questo dovrebbe essere inserito nello script di caricamento per caricare i dati. Ad esempio:

Load \* Extension GeoOperations.ScriptEval( 'Load() DATASOURCE Cities LOCATIONSERVICE geometry="POINT", type="City", country="dk"');

Utilizzare la seguente dimensione nel livello linea:

LocationDbId

Utilizzare una condizione di calcolo nel livello linea:

Count(LocationDbId)&lt;10

Nella proprietà Posizione, che dovrebbe essere impostata su *Line geometry*, inserire questo per calcolare i percorsi da una posizione fissa ai punti selezionati:

=GeoOperations.ScriptEvalStr('SELECT LowResLine from Routes(originField="Me", destField="LocationPoint")', '[11.2,54.8]' as Me, LocationPoint)

Parametri per Routes

| Parametro | Tipo | Uso | Descrizione |
| --- | --- | --- | --- |
| dataset | Dataset | *predefinito: Nessuno.* | Un set di dati con origini e destinazioni per i percorsi da calcolare. Le origini dovrebbero trovarsi nella geometria del set di dati.<br>Supporta il flusso di questo set di dati quando viene inviato dallo script di caricamento, il che significa che sono consentite tabelle più grandi. |
| criteria | stringa | *predefinito: fastest* | Scegliere tra il percorso *fastest* o *shortest* da calcolare. |
| transportation | stringa | *predefinito: car* | La modalità di trasporto, una tra *car*, *truck*, *bike*, *pedestrian* o *bird* (che vola a 10 m/s). |
| destField | stringa | *predefinito: Nessuno.* | Il campo nel set di dati che specifica la destinazione. Si noti che l'origine è il campo della geometria specificato nel set di dati. |
| geometryType | stringa | *predefinito: POINT* | Tipo di geometria in *destField*. I valori consentiti sono *Point*, *NamedPoint* e *LatLon*.<br>Nel caso di punti denominati, la geometria viene cercata nel servizio di posizione e viene aggiunta una colonna per la geometria. |
| suffix | stringa | *predefinito: Nessuno.* | Per utenti avanzati. La stringa specificata viene aggiunta a tutti gli ID.<br>Questo è un modo conveniente per specificare ulteriori informazioni ai servizi di posizione basati su server, come il codice del paese o il tipo.<br>L'alternativa è aggiungere i dati extra durante il caricamento della tabella in Qlik.<br>Con il seguente suffisso tutti gli elementi sono specificati come città in Svezia:<br><br>,SE:city<br><br><br>Per ulteriori informazioni sulla sintassi da utilizzare, consultare la *Guida al servizio di posizione*. |
| precision | integer | *predefinito: 6* | Imposta il numero di decimali a cui arrotondare le coordinate.<br>Il valore predefinito è 6 decimali, che ha una precisione di circa 10 cm.<br>Se non si desidera arrotondare le coordinate, impostare il valore su un numero negativo. |

## Simplify

Semplifica le geometrie di linee e aree in un set di dati. Spesso è utile caricare dati geografici con l'operazione *Simplify* anziché con l'operazione *Load* per ottenere geometrie più efficienti e più veloci da visualizzare.

Il grado di semplificazione viene calcolato automaticamente in base all'area, al numero di oggetti e alle dimensioni degli oggetti. È quindi possibile regolarlo su una risoluzione superiore o inferiore con il parametro *resolution*.

La semplificazione dell'area viene eseguita con un algoritmo che gestisce le topologie e può rimuovere gli spazi vuoti e unire le isole.

La semplificazione della linea viene eseguita con un algoritmo di riduzione dei punti di interruzione.

Si noti che le sovrapposizioni di poligoni vengono rimosse. Non ci saranno poligoni sovrapposti nell'output.

Restituisce le seguenti colonne:

* &lt;colonna chiave del set di dati&gt; - La colonna chiave dal *dataset1* di input.
* Simplified\_&lt;nome colonna geometria&gt; - Versioni semplificate delle geometrie originali.
* Tutte le colonne tranne la colonna chiave da *dataset*, con il nome del set di dati come prefisso.

Supporta:

* ScriptEval negli script di caricamento.

Esempio che carica versioni semplificate degli stati degli Stati Uniti:

Load \* Extension GeoOperations.ScriptEval(' SELECT LocationDbId, Simplified\_LocationPolygon FROM Simplify() DATASOURCE states LOCATIONSERVICE type="State", country="us" ');

Parametri per Simplify

| Parametro | Tipo | Uso | Descrizione |
| --- | --- | --- | --- |
| resolution | stringa | *predefinito: Auto* | Il set di dati risultante viene semplificato e il grado di semplificazione è controllato da questa proprietà. I valori disponibili sono:<br><br><ul><li><strong> Auto</strong> - L'operazione calcola una risoluzione in base ai dati.</li><li><strong> AutoLow</strong> - Una risoluzione inferiore (la metà) alla risoluzione Auto.</li><li><strong> AutoHigh</strong> - Una risoluzione superiore (il doppio) alla risoluzione Auto.</li></ul> |
| dataset | Dataset | *predefinito: &lt;primo set di dati&gt;* | Il set di dati con le geometrie da semplificare. |
| precision | integer | *predefinito: 6* | Imposta il numero di decimali a cui arrotondare le coordinate.<br>Il valore predefinito è 6 decimali, che ha una precisione di circa 10 cm.<br>Se non si desidera arrotondare le coordinate, impostare il valore su un numero negativo. |

## TravelAreas

Calcola le aree ISO del tempo di percorrenza. Tutte le posizioni all'interno dell'area restituita possono essere raggiunte entro un certo tempo o sono più vicine di una certa distanza lungo le strade. Restituisce una tabella con ID, geometria dell'area di viaggio, punto centrale, costo, unità di costo e stato (OK o failed).

Se si utilizza "bird" come tipo di trasporto, vengono generati cerchi geograficamente corretti attorno alle origini.

Restituisce le seguenti colonne:

* &lt;colonna chiave del set di dati&gt; - La colonna chiave dal set di dati di input.
* TravelArea - La geometria del poligono che definisce l'area di viaggio.
* Cost - Il costo come specificato in costValue o costField.
* CostUnit - L'unità di costo come specificata in costUnit.
* Status - Lo stato restituito è "OK" o "failed:" seguito da un messaggio di errore.
* Tutte le colonne tranne la colonna chiave dal set di dati di input, con il nome del set di dati come prefisso.

Supporta:

* ScriptEval negli script di caricamento.
* ScriptEvalStr negli script del grafico per ottenere la geometria dell'area di viaggio.
* ScriptEval negli script del grafico per ottenere il costo.

Questo esempio di script di caricamento genera aree di viaggio di 10 minuti a Miami e Orlando dalle coordinate:

MyPoints: LOAD \* inline " id;point 1;[-80.204,25.791] 2;[-81.381,28.538] " (delimiter is ';'); MyTravelAreas: Load \* Extension GeoOperations.ScriptEval( 'SELECT id, TravelArea from TravelAreas(costValue="10", costUnit="Minutes")', MyPoints);

Questo esempio di script di caricamento genera aree di viaggio di 10 minuti a Miami e Orlando utilizzando punti denominati:

MyCities: LOAD \* inline " cid;City 1;Miami,US 2;Orlando,FL,US " (delimiter is ';'); Load \* Extension GeoOperations.ScriptEval('TravelAreas(costValue="10",costUnit="minutes") DATASOURCE cities INTABLE keyField="City", namedPointField="City"', MyCities {City});

Questo è un esempio che calcola le aree di viaggio attorno ai punti direttamente in un livello area. L'operazione viene chiamata per la selezione ogni volta che la selezione cambia. Questo dovrebbe essere inserito nello script di caricamento per caricare i dati per l'esempio:

MyAirports: Load \* Extension GeoOperations.ScriptEval(' Load() DATASOURCE airports LOCATIONSERVICE geometry="POINT", type="AirportIATA", country="se" ');

Utilizzare la seguente dimensione nel livello area:

LocationDbId

Utilizzare una condizione di calcolo nel livello area:

Count(LocationDbId)&lt;10

Nella proprietà Posizione inserire questo:

=GeoOperations.ScriptEvalStr('Select TravelArea from TravelAreas(costValue="10", costUnit="minutes")', LocationPoint)

Parametri per TravelAreas

| Parametro | Tipo | Uso | Descrizione |
| --- | --- | --- | --- |
| dataset | Dataset | *predefinito: &lt;primo set di dati&gt;* | Un set di dati con origini e facoltativamente costi per i calcoli dell'area di viaggio. Supporta il flusso di questo set di dati quando viene inviato dallo script di caricamento, il che significa che sono consentite tabelle più grandi. |
| costValue | number | *predefinito: Nessuno.* | Il costo al confine dell'area restituita. Il costo può essere una lunghezza o un tempo. (Vedere costUnit di seguito).<br>Un'alternativa che consente costi individuali per ciascuna area consiste nello specificare invece costField. |
| costField | stringa | *predefinito: Nessuno.* | Un campo nel set di dati che specifica il costo. Viene utilizzato solo se costValue è vuoto. |
| costUnit | stringa | *predefinito: seconds* | Deve essere uno tra seconds, minutes, hours, meters, yards, kilometers o miles.<br>Quando viene utilizzata un'unità di tempo, viene calcolata l'area raggiunta entro quel tempo e, quando viene utilizzata un'unità di lunghezza, viene calcolata l'area con una distanza di viaggio inferiore a quella specificata. |
| transportation | stringa | *predefinito: car* | La modalità di trasporto, una tra car, truck, bike, pedestrian o bird (che vola a 10 m/s). |
| precision | integer | *predefinito: 6* | Imposta il numero di decimali a cui arrotondare le coordinate.<br>Il valore predefinito è 6 decimali, che ha una precisione di circa 10 cm.<br>Se non si desidera arrotondare le coordinate, impostare il valore su un numero negativo. |

## Within

Restituisce le relazioni tra due set di dati in cui una geometria in un set di dati (racchiuso) è completamente all'interno dell'area nell'altro set di dati (racchiudente). Restituisce una tabella che mappa tra la chiave in racchiuso e la chiave in racchiudente per tutte le relazioni trovate.

Utilizzare within in genere per trovare in quali aree si trovano i dati; ad esempio, per testare la posizione GPS per l'area amministrativa in cui si trovano. Questa è una sorta di geocodifica inversa.

Restituisce le seguenti colonne:

* &lt;nome racchiuso&gt;\_&lt;nome racchiudente&gt;\_RelationId - Una chiave generata per la relazione tra le due geometrie.
* &lt;colonna chiave racchiuso&gt; - La colonna chiave dal dataset1 di input.
* &lt;colonna chiave racchiudente&gt; - La colonna chiave dal dataset2 di input.
* Tutte le colonne tranne la colonna chiave dal set di dati *enclosed*, con il nome del set di dati come prefisso.
* Tutte le colonne tranne la colonna chiave dal set di dati *enclosing*, con il nome del set di dati come prefisso.

Supporta:

* ScriptEval negli script di caricamento.

Per compensare le imprecisioni nei dati, a volte è meglio utilizzare *Closest* invece di *Within*. Ad esempio, se si dispone di dati di punti in aree costiere che si desidera mettere in relazione con aree amministrative, piccole imprecisioni possono far sì che i punti cadano leggermente al di fuori delle aree.

Questo è un esempio di script di caricamento che calcola quali punti si trovano all'interno di quali stati:

MyPoints: LOAD \* inline " id;point 1;[-108.1,45.4] 2;[-98.9,40.1] 3;[12.1,57.7] " (delimiter is ';'); PointsInStates: Load \* Extension GeoOperations.ScriptEval(' Within() DATASOURCE states LOCATIONSERVICE geometry="AREA", type="Admin1", country="us" ', MyPoints);

Parametri per Within

| Parametro | Tipo | Uso | Descrizione |
| --- | --- | --- | --- |
| enclosed | Dataset | *predefinito: &lt;primo set di dati&gt;* | Un set di dati con geometrie da testare per verificare da quali aree sono racchiuse. Supporta il flusso di questo set di dati quando viene inviato dallo script di caricamento, il che significa che sono consentite tabelle più grandi. |
| enclosing | Dataset | *predefinito: &lt;secondo set di dati&gt;* | Un set di dati con geometrie di area da testare per verificare quali geometrie racchiudono. Supporta il flusso di questo set di dati quando viene inviato dallo script di caricamento, il che significa che sono consentite tabelle più grandi. |
| precision | integer | *predefinito: 6* | Imposta il numero di decimali a cui arrotondare le coordinate.<br>Il valore predefinito è 6 decimali, che ha una precisione di circa 10 cm.<br>Se non si desidera arrotondare le coordinate, impostare il valore su un numero negativo. |