# 操作

## AddressPointLookup

傳回表格中地址的點幾何圖形，即地理編碼。 在 *Search Text* 屬性中指定地址字串，或在對應屬性中指定結構化部分，例如 *Country*、 *Street* 等。 也允許組合。此操作需要特殊授權。因任何原因而找不到的地址不會在結果中傳回。

Qlik Geocoding 提供的功能 (透過 AddressPointLookup 和 PointToAddressLookup) 與其他位置查閱功能不同。Qlik Geocoding 允許在地址層級進行查閱，而一般位置查閱的精確度只能達到郵遞區號層級。

開始使用 Qlik Geocoding 時，請使用 [設定 Qlik Geocoding](https://help.qlik.com/en-US/geoanalytics/Content/Global_Common/GeoCoding/Qlik-GeoCoding-setup.htm) （僅提供英文版） 中參考的範本。

資訊備註 為了獲得最佳結果，請盡可能使用特定資料並省略廣泛資料。例如，如果您同時擁有郵遞區號和郵遞城市，且您相信郵遞區號是正確的，那麼最好不要指定郵遞城市。

大多數參數有兩種版本，一種指定實際值，例如 `  country="SWE" `，另一種指定應從中擷取實際值的欄位名稱， 例如 `  countryField="CountryIso2" `。

資訊備註 您必須具有使用者角色權限 Use : 才能使用 AddressPointLookup。

資訊備註 若要對中國的英文或拼音地址進行地理編碼，Country 參數必須設定為 "CHN"。

傳回下列欄：

* &lt;dataset key column&gt; - 來自輸入資料集的索引鍵欄位。
* Address - 找到的地址，格式化為該國的地址標準。
* Geometry - 找到項目的點。
* HouseNumber - 找到項目的門牌號碼。
* Street - 找到項目的街道。
* PostalCode - 找到項目的郵遞區號。
* City - 找到項目的城市層級行政區劃名稱。
* Adm1 - 找到項目的一級行政區劃 (州/省) 名稱或縮寫名稱。
* CountryIso2 - 找到項目的國家/地區代碼。
* Match - 介於 0 和 1 之間的值，顯示相符程度。值為 1 表示完全相符。
* 來自 *dataset* 的所有欄 (索引鍵欄位除外)，並以資料集名稱作為前置詞。

在不適用或無法取得資料的情況下，傳回的欄位可能是空白的。

支援：

* 載入指令碼中的 ScriptEval。

對一些瑞典地址進行地理編碼的範例，其中每個項目都在各自的欄位中：

```
[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);
```

此範例顯示自由文字樣式的地理編碼：

```
[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);
```

AddressPointLookup 的參數

| 參數 | 類型 | 使用 | 說明 |
| --- | --- | --- | --- |
| searchText | string | *選用* | 要搜尋的文字字串。<br>可以是類似以下的地址："1600 Pennsylvania Ave, Washington DC, USA"，或是與其他欄位中的資料組合的不完整地址，<br>例如 "1117 Washington Ave"，並將 *City* 設定為 "Philadelphia"， *Country* 設定為 "USA"。 |
| searchTextField | string | *選用* | 如果未指定 *searchText*，則可以使用此參數來指定應從中擷取資訊的欄位。 |
| country | string | *選用* | 包含三個字母 ISO 代碼的字串。可以指定多個國家/地區，以逗號分隔："SWE,NOR,FIN"。<br>若要特別對中國的英文或拼音地址進行地理編碼，此參數必須設定為 "CHN"。 |
| countryField | string | *選用* | 如果未指定 *country*，則可以使用此參數來指定包含國家/地區名稱或兩個或三個字母 ISO 代碼的欄位。<br>請注意，與其他參數相比，由 *country* 和 *countryField* 指定的資料預期格式<br>並不相同。 *country* 參數允許指定多個國家/地區，但僅限三個字母的 ISO 格式，而 *countryField* 允許<br>不同的國家/地區格式。 |
| state | string | *選用* | 州/省名稱或代碼。對於大多數國家/地區，州/省不是地址的一部分。 |
| stateField | string | *選用* | 如果未指定 *state*，則可以使用此參數來指定應從中擷取資訊的欄位。 |
| city | string | *選用* | 城市名稱、直轄市或郵遞城市。 |
| cityField | string | *選用* | 如果未指定 *city*，則可以使用此參數來指定應從中擷取資訊的欄位。 |
| postalCode | string | *選用* | 郵遞區號。 |
| postalCodeField | string | *選用* | 如果未指定 *postalCode*，則可以使用此參數來指定應從中擷取資訊的欄位。 |
| street | string | *選用* | 街道名稱。<br>可以將街道和門牌號碼一起指定並以空格分隔，而不是在個別的參數或欄位中指定。 |
| streetField | string | *選用* | 如果未指定 *street*，則可以使用此參數來指定應從中擷取資訊的欄位。 |
| houseNumber | string | *選用* | 門牌號碼。 |
| houseNumberField | string | *選用* | 如果未指定 *houseNumber*，則可以使用此參數來指定應從中擷取資訊的欄位。 |
| matchThreshold | real | *預設值：0.5* | 僅傳回相符程度高於此值的結果。如果傳回太多錯誤的命中結果，請增加此值。 |
| language | string | *預設值：無。* | 回覆中地址偏好語言的兩個字母語言代碼。如果要求的語言<br>無法提供該地址，則會以該位置的預設語言傳回。 |
| dataset | Dataset | *預設值：無。* | 包含將在地理編碼器中查閱之地址的資料集。支援從載入指令碼傳送時串流此資料集，這表示允許較大的表格。 |
| precision | integer | *預設值：6* | 設定座標中要捨入的小數位數。<br>預設值為 6 個小數位，精確度約為 10 公分。<br>如果您不希望捨入座標，請將該值設定為負數。 |

## Binning

產生點資料集的矩形或六邊形分箱。這是一種彙總點資料的方法，以便有效率地顯示資料的概述。

傳回下列欄：

* &lt;dataset key column&gt; - 來自輸入資料集的索引鍵欄位。
* BinId - 分箱的識別碼。
* BinTable.BinPolygon - 分箱的多邊形。
* BinTable.CenterPoint - 分箱中心的點。
* 來自 *dataset* 的所有欄 (索引鍵欄位除外)，並以資料集名稱作為前置詞。

支援：

* 載入指令碼中的 ScriptEval。

從美國機場載入六邊形分箱的範例：

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

Binning 的參數

| 參數 | 類型 | 使用 | 說明 |
| --- | --- | --- | --- |
| type | string | *預設值：rectangular* | 定義應產生 *rectangular* (矩形) 還是 *hexagonal* (六邊形) 分箱。 |
| gridSize | real | *預設值：無。* | 個別分箱的高度 (以度為單位)。一度大約是 10000 公尺。 |
| gridWidthHeightRatio | real | *預設值：1.5* | 分箱的寬高比。<br>正方形分箱通常是最佳的，但這會因緯度而異。<br>最佳寬高比的公式為 1/cos(緯度)，例如在赤道為 1，在緯度 +-30 度為 1.15，在緯度 +-60 度為 2。<br>在調適型投影中顯示分箱資料通常比在麥卡托投影中看起來更好。 |
| dataset | Dataset | *預設值：無。* | 包含要為其產生分箱之點幾何圖形的資料集。支援從載入指令碼傳送時串流此資料集，這表示允許較大的表格。 |
| precision | integer | *預設值：6* | 設定座標中要捨入的小數位數。<br>預設值為 6 個小數位，精確度約為 10 公分。<br>如果您不希望捨入座標，請將該值設定為負數。 |

## Closest

傳回一個資料集中的物件與另一個資料集中最接近物件之間的關係和距離 (如果有任何物件的距離小於最大距離)。 成本也可以沿著道路計算，在這種情況下，可以選擇使用旅行時間。 此操作在許多情況下都很有用，不僅可用於取得與最接近物件的關係，還可用於取得一組點之間的距離矩陣。

傳回下列欄：

* &lt;dataset1 name&gt;\_&lt;dataset2 name&gt;\_RelationId - 為兩個幾何圖形之間的關係產生的索引鍵。
* &lt;dataset1 key column&gt; - 來自輸入 dataset1 的索引鍵欄位。
* &lt;dataset2 key column&gt; - 來自輸入 dataset2 的索引鍵欄位。
* Distance - 以 *costUnit* 中指定之單位表示的距離。
* Status - 傳回的狀態為 "ok" 或 "failed:"，後接錯誤訊息。
* LowResLine - 路線的低解析度版本，僅適用於非 *bird* 距離類型。
* 來自輸入 *dataset1* 資料集的所有欄 (索引鍵欄位除外)，並以資料集名稱作為前置詞。
* 來自輸入 *dataset2* 資料集的所有欄 (索引鍵欄位除外)，並以資料集名稱作為前置詞。

支援：

* 載入指令碼中的 ScriptEval。

此範例尋找距離表格中各點最近的機場：

```
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);
```

Closest 的參數

| 參數 | 類型 | 使用 | 說明 |
| --- | --- | --- | --- |
| distance | real | *預設值：無。* | 與「成本單位」中指定之單位的最大距離。距離大於此值的項目將被忽略。 |
| costUnit | string | *預設值：meters* | 應為 meters (公尺)、yards (碼)、kilometers (公里)、miles (英里)、seconds (秒)、minutes (分鐘) 或 hours (小時) 之一。<br>使用時間單位表示將旅行時間用作成本，而長度單位表示使用距離。<br>距離類型 Bird 不允許使用時間單位。 |
| distanceType | real | *預設值：Bird* | 決定距離的測量方式。允許下列值：<br><br><ul><li> Bird - 測量物件之間的直線距離 (直線飛行距離)。</li><li> Car - 沿著有汽車限制的道路測量。僅支援點資料集。</li><li> Bike - 沿著有自行車限制的道路測量。僅支援點資料集。</li><li> Pedestrian - 沿著有行人限制的道路測量。僅支援點資料集。</li><li> Truck - 沿著有卡車限制的道路測量。僅支援點資料集。</li></ul> |
| closestCount | real | *預設值：1* | 第二個資料集中要與第一個資料集中的物件建立關聯的物件數量。<br>值為 1 表示僅最接近的物件，2 表示兩個最接近的物件，依此類推。 |
| dataset1 | Dataset | *預設值：&lt;第一個資料集&gt;* | 要檢查與 dataset2 (如果已指定) 中物件之接近程度的物件，否則檢查與其自身中物件的接近程度。<br>在檢查單一資料集中物件之間的接近程度時，絕不會新增從物件到其自身的關係。<br>支援從載入指令碼傳送且已定義 *dataset2* 時串流此資料集，這表示允許較大的表格。 |
| dataset2 | Dataset | *預設值：&lt;第二個資料集 (如果有)&gt;* | 要與 dataset1 中物件建立關聯的物件。 |
| precision | integer | *預設值：6* | 設定座標中要捨入的小數位數。<br>預設值為 6 個小數位，精確度約為 10 公分。<br>如果您不希望捨入座標，請將該值設定為負數。 |

## Cluster

根據點之間的地理接近程度，從點資料集產生叢集。叢集的產生由 *distance* 參數控制，該參數定義點與其所屬叢集的最大距離。 傳回包含點與叢集之間關係的表格。 同時傳回名為 Clusters 的聯結表格，其中包含叢集幾何圖形。 它包含欄位 ClusterID、ClusterCenter (點幾何圖形) 和 PointCount。 計數欄位包含叢集中的點數。

傳回下列欄：

* &lt;dataset key column&gt; - 來自輸入資料集的索引鍵欄位。
* ClusterID - 點所屬叢集的識別碼。
* Clusters.ClusterPoint - 叢集的中心點。
* Clusters.PointCount - 屬於該叢集的原始點數。
* 來自輸入資料集的所有欄 (索引鍵欄位除外)，並以資料集名稱作為前置詞。

支援：

* 載入指令碼中的 ScriptEval。

此範例將美國的機場進行叢集化，使距離小於 50 公里的機場屬於同一個叢集：

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

Cluster 的參數

| 參數 | 類型 | 使用 | 說明 |
| --- | --- | --- | --- |
| distance | real | *預設值：無。* | 點與其叢集之間的距離不能大於此距離 (以公尺為單位)。 |
| dataset | Dataset | *預設值：無。* | 包含要進行叢集化之點的資料集。 |
| precision | integer | *預設值：6* | 設定座標中要捨入的小數位數。<br>預設值為 6 個小數位，精確度約為 10 公分。<br>如果您不希望捨入座標，請將該值設定為負數。 |

## Dissolve

根據舊區域識別碼 (或幾何圖形) 與新區域識別碼之間的對應，融合並簡化區域以形成更大的區域。 這通常用於建立由較小且定義明確的區域 (例如郵遞區或行政區) 所組成的自訂區域。

傳回下列欄：

* &lt;dissolveField&gt; - 在輸入資料中指定為 *dissolveField* 的欄位。
* DissolvedPolygon - 新融合區域的幾何圖形。

支援：

* 載入指令碼中的 ScriptEval。

幾何圖形資料集是選用的。如果未提供，則假設幾何圖形可在融合定義資料集中取得。

請注意，除了 *Source* 之外，所有解析度中的多邊形重疊都會被移除。

此範例建立兩個區域，一個由 CA 和 AZ 組成，另一個由 WA 和 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);
```

Dissolve 的參數

| 參數 | 類型 | 使用 | 說明 |
| --- | --- | --- | --- |
| dissolveField | string | *預設值：&lt;與 dissolveDataset 中的索引鍵欄位同名&gt;* | *dissolveDataset* 中包含新區域識別碼的欄位名稱。 |
| resolution | string | *預設值：Auto* | 產生的資料集會被簡化，而簡化程度由這個屬性控制。可用的值包括：<br><br><ul><li><strong> auto</strong> - 操作會根據資料計算解析度。</li><li><strong> autolow</strong> - 低於 (一半) Auto 解析度的解析度。</li><li><strong> autohigh</strong> - 高於 (兩倍) Auto 解析度的解析度。</li><li><strong> source</strong> - 不執行簡化。                        請注意，如果 <em> dissolveDataset</em> 在兩個不同的新區域中包含兩次相同的舊區域，則必須使用 <em> source</em>。                    </li></ul> |
| areaDatasetKeyField | string | *預設值：&lt;areaDataset 中的索引鍵欄位&gt;* | *areaDataset* 中原始區域的識別碼。僅在指定 *areaDataset* 時才會使用此參數。 |
| dissolveDataset | Dataset | *預設值：&lt;第一個資料集&gt;* | 定義每個舊區域屬於哪個新區域，即舊區域與新區域識別碼之間的對應。<br>如果已指定，索引鍵欄位應對應至 *areaDataset* 中的索引鍵。<br>如果未提供 *areaDataset*，則幾何圖形應可在此資料集中取得。 |
| areaDataset | Dataset | *預設值：&lt;第二個資料集 (如果有)&gt;* | 包含要融合之區域幾何圖形的資料集。<br>可以為無，這表示幾何圖形應可在 *dissolveDataset* 中取得。<br>此資料集中的 *areaDatasetKeyField* 必須連結至 *dissolveDataset* 中的索引鍵欄位。 |
| precision | integer | *預設值：6* | 設定座標中要捨入的小數位數。<br>預設值為 6 個小數位，精確度約為 10 公分。<br>如果您不希望捨入座標，請將該值設定為負數。 |

## Intersects

傳回一個表格，該表格對應 dataset1 中的索引鍵與 dataset2 中的索引鍵，適用於所有相交的物件。 如果兩個資料集都包含多邊形，則會傳回與各自資料集中的區域相比的相對重疊區域。

透過指定 *intersectsCount*，可以限制第二個資料集中應對應至第一個資料集中每個幾何圖形的相交幾何圖形數量。 然後會依序傳回最相交的幾何圖形。如果未指定 *intersectsCount*，則該操作是對稱的。

傳回下列欄：

* &lt;dataset1 name&gt;\_&lt;dataset2 name&gt;\_RelationId - 為兩個幾何圖形之間的關係產生的索引鍵。
* &lt;dataset1 key column&gt; - 來自輸入 dataset1 的索引鍵欄位。
* &lt;dataset2 key column&gt; - 來自輸入 dataset2 的索引鍵欄位。
* &lt;dataset1 name&gt;.RelativeOverlap - 與 dataset1 中多邊形相比的重疊。僅在兩個資料集都包含多邊形時傳回。要求此欄位會有效能損失。
* &lt;dataset2 name&gt;.RelativeOverlap - 與 dataset2 中多邊形相比的重疊。僅在兩個資料集都包含多邊形時傳回。要求此欄位會有效能損失。
* 來自輸入 *dataset1* 資料集的所有欄 (索引鍵欄位除外)，並以資料集名稱作為前置詞。
* 來自輸入 *dataset2* 資料集的所有欄 (索引鍵欄位除外)，並以資料集名稱作為前置詞。

支援：

* 載入指令碼中的 ScriptEval。

此範例計算某些線條與哪些州/省相交：

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);

Intersects 的參數

| 參數 | 類型 | 使用 | 說明 |
| --- | --- | --- | --- |
| dataset1 | Dataset | *預設值：&lt;第一個資料集&gt;* | 包含幾何圖形的資料集，用於測試哪些幾何圖形與另一個資料集 (如果已指定) 中的幾何圖形相交，或者如果未指定，則測試此資料集中物件之間的相交。<br>在檢查單一資料集中物件之間的相交時，絕不會新增從物件到其自身的關係。<br>支援從載入指令碼傳送且已定義 *dataset2* 時串流此資料集，這表示允許較大的表格。 |
| dataset2 | Dataset | *預設值：&lt;第二個資料集 (如果有)&gt;* | 包含幾何圖形的資料集，用於測試哪些幾何圖形與另一個資料集中的幾何圖形相交。如果未指定，則計算 *dataset1* 中物件之間的相交。 |
| intersectsCount | integer | *預設值：0* | 如果大於 0，則每個 *dataset1* 幾何圖形最多傳回此數量的 *dataset2* 相交幾何圖形。僅傳回最相交 (最大重疊區域或長度) 的幾何圖形。 |
| precision | integer | *預設值：6* | 設定座標中要捨入的小數位數。<br>預設值為 6 個小數位，精確度約為 10 公分。<br>如果您不希望捨入座標，請將該值設定為負數。 |

## IpLookup

傳回表格中 IP 位址的位置資訊和點幾何圖形。 這在分析 Web 服務的存取資料時非常有用。 傳回的表格包含下列欄位：

* 索引鍵欄位 - 與名稱表格的索引鍵欄位相同。
* &lt;Address Table Ip Field&gt; - 與查閱的 IP 欄位相同。僅在與索引鍵欄位不同時才可用。
* IpPoint - 找到項目的點。
* CountryIso2 - 找到項目的國家/地區代碼。
* Adm1Code - 找到項目的一級行政區代碼。請注意，此代碼並不總是與位置服務傳回的代碼相容。
* City - 找到項目的城市。
* 來自輸入資料集的所有欄 (索引鍵欄位除外)，並以資料集名稱作為前置詞。

IP 地理定位本質上是不精確的。對於許多 IP 位址，可以精確定位到城市，但對於其他 IP 位址，只能解析到國家/地區。

最佳實務是僅將 Ip 欄傳送至 *IpLookup* 操作。查閱一些 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});

相同的 IP 在許多列中重複是很常見的。因此，像此範例一樣先篩選出唯一的 IP 可以提高效能：

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;

本產品包含由 MaxMind 建立的 GeoLite2 資料，可從 [MaxMind](https://www.maxmind.com/) 取得。

IpLookup 的參數

| 參數 | 類型 | 使用 | 說明 |
| --- | --- | --- | --- |
| ipField | string | *選用* | 包含要查閱之 IP 位址的欄位。如果未指定，則使用資料集的索引鍵欄位。 |
| dataset | Dataset | *預設值：無。* | 包含將在地理編碼器中查閱之 IP 位址的資料集。支援從載入指令碼傳送時串流此資料集，這表示允許較大的表格。 |
| precision | integer | *預設值：6* | 設定座標中要捨入的小數位數。<br>預設值為 6 個小數位，精確度約為 10 公分。<br>如果您不希望捨入座標，請將該值設定為負數。 |

## Load

載入資料集而不套用任何操作。這使得載入 GeoOperations 支援的所有格式成為可能。 請注意，如果幾何圖形很詳細且顯示緩慢， *Simplify* 可能是 *Load* 的良好替代選項。

傳回下列欄：

* 來自 *dataset* 的所有欄。

支援：

* 載入指令碼中的 ScriptEval。

從瑞典載入郵遞區號的範例：

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

由於 WKT 支援作為 *INTABLE* 中資料的幾何圖形格式，因此 *Load* 操作非常適合將從資料庫載入的地理幾何圖形轉換為 Sense 幾何圖形格式，以便顯示。 下列範例顯示如何轉換 WKT 資料 (在此情況下為來自 *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);

Load 的參數

| 參數 | 類型 | 使用 | 說明 |
| --- | --- | --- | --- |
| dataset | Dataset | *預設值：&lt;第一個資料集&gt;* | 要載入的資料集。支援從載入指令碼傳送時串流此資料集，這表示允許較大的表格。 |
| precision | integer | *預設值：6* | 設定座標中要捨入的小數位數。<br>預設值為 6 個小數位，精確度約為 10 公分。<br>如果您不希望捨入座標，請將該值設定為負數。 |

## PointToAddressLookup

傳回清單中各點最接近的地址，也稱為反向地理編碼。 此操作需要特殊授權。 靠近街道的點將獲得街道層級的地址，否則將退而傳回郵遞區或城市層級的命中結果。對於太遠的點，不會傳回任何資料。

資訊備註 您必須具有使用者角色權限 Use : 才能使用 PointToAddressLookup。

傳回下列欄：

* &lt;dataset key column&gt; - 來自輸入資料集的索引鍵欄位。
* Address - 找到的地址，格式化為該國的地址標準。
* Geometry - 找到項目的點。
* HouseNumber - 找到項目的門牌號碼。
* Street - 找到項目的街道。
* PostalCode - 找到項目的郵遞區號。
* City - 找到項目的城市層級行政區劃名稱。
* Adm1 - 找到項目的一級行政區劃 (州/省) 名稱或縮寫名稱。
* CountryIso2 - 找到項目的國家/地區代碼。
* Distance - 到找到地址的距離 (以公尺為單位)。
* 來自 *dataset* 的所有欄 (索引鍵欄位除外)，並以資料集名稱作為前置詞。

請注意，在不適用或無法取得資料的情況下，傳回的欄位可能是空白的。

取得某些點之地址的範例：

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);

PointToAddressLookup 的參數

| 參數 | 類型 | 使用 | 說明 |
| --- | --- | --- | --- |
| language | string | *預設值：* | 回覆中地址偏好語言的兩個字母語言代碼。如果要求的語言<br>無法提供該地址，則會以該位置的預設語言傳回。 |
| dataset | Dataset | *預設值：無。* | 包含將在地理編碼器中查閱之點的資料集。支援從載入指令碼傳送時串流此資料集，這表示允許較大的表格。 |
| precision | integer | *預設值：6* | 設定座標中要捨入的小數位數。<br>預設值為 6 個小數位，精確度約為 10 公分。<br>如果您不希望捨入座標，請將該值設定為負數。 |

## Routes

計算表格中兩個位置之間的路線，包括長度和持續時間。

請注意，起點是資料集中的幾何圖形欄。 目的地欄在操作參數中指定，因為資料集只知道一個幾何圖形欄。

如果您使用 **bird** 作為交通類型，它會在起點和目的地之間產生大圓弧。

傳回下列欄：

* &lt;dataset key column&gt; - 來自輸入資料集的索引鍵欄位。
* Distance - 路線距離 (以公尺為單位)。
* Duration - 估計的路線旅行時間 (以秒為單位)。
* Status - 傳回的狀態為 "ok" 或 "failed:"，後接錯誤訊息。
* LowResLine - 路線的低解析度版本。
* 來自輸入資料集的所有欄 (索引鍵欄位除外)，並以資料集名稱作為前置詞。

支援：

* 載入指令碼中的 ScriptEval。
* 圖指令碼中的 ScriptEvalStr，用於取得路線。
* 圖指令碼中的 ScriptEval，用於取得距離或持續時間。

這是計算資料集中各點之間路線的範例：

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);

這是直接在線條圖層中計算路線的範例。每次選取範圍變更時，都會為選取範圍呼叫該操作。 通常應該有一個計算條件，如果只選取了幾個點，該條件為 true (否則最好在載入指令碼中計算路線)。 這應該放在載入指令碼中以載入資料。例如：

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

在線條圖層中使用下列維度：

LocationDbId

在線條圖層中使用計算條件：

Count(LocationDbId)&lt;10

在 Location 屬性 (應設定為 *Line geometry*) 中，放入此內容以計算從固定位置到所選點的路線：

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

Routes 的參數

| 參數 | 類型 | 使用 | 說明 |
| --- | --- | --- | --- |
| dataset | Dataset | *預設值：無。* | 包含要計算之路線的起點和目的地的資料集。起點應位於資料集的幾何圖形中。<br>支援從載入指令碼傳送時串流此資料集，這表示允許較大的表格。 |
| criteria | string | *預設值：fastest* | 選擇要計算 *fastest* (最快) 還是 *shortest* (最短) 路線。 |
| transportation | string | *預設值：car* | 交通模式，為 *car* (汽車)、 *truck* (卡車)、 *bike* (自行車)、 *pedestrian* (行人) 或 *bird* (鳥，以 10 m/s 飛行) 之一。 |
| destField | string | *預設值：無。* | 資料集中指定目的地的欄位。請注意，起點是資料集中指定的幾何圖形欄位。 |
| geometryType | string | *預設值：POINT* | *destField* 中的幾何圖形類型。允許的值為 *Point*、 *NamedPoint* 和 *LatLon*。<br>如果是具名點，則會在位置服務中查閱幾何圖形，並新增幾何圖形的欄。 |
| suffix | string | *預設值：無。* | 適用於進階使用者。指定的字串會附加至所有 ID。<br>這是一種向伺服器型位置服務指定更多資訊 (例如國家/地區代碼或類型) 的便捷方式。<br>替代選項是在將表格載入 Qlik 時附加額外資料。<br>使用下列尾碼，所有項目都指定為瑞典的城市：<br><br>,SE:city<br><br><br>如需有關要使用之語法的詳細資訊，請參閱 *Location Service Guide*。 |
| precision | integer | *預設值：6* | 設定座標中要捨入的小數位數。<br>預設值為 6 個小數位，精確度約為 10 公分。<br>如果您不希望捨入座標，請將該值設定為負數。 |

## Simplify

簡化資料集中的線條和區域幾何圖形。 使用 *Simplify* 操作而不是 *Load* 操作來載入地理資料通常很有用，可以獲得更有效率且顯示更快的幾何圖形。

簡化程度會根據區域、物件數量和物件大小自動計算。 然後可以使用 *resolution* 參數將其調整為更高或更低的解析度。

區域簡化是使用處理拓撲的演算法完成的，可以移除間隙並連接島嶼。

線條簡化是使用中斷點縮減演算法完成的。

請注意，多邊形的重疊會被移除。輸出中不會有重疊的多邊形。

傳回下列欄：

* &lt;dataset key column&gt; - 來自輸入 *dataset1* 的索引鍵欄位。
* Simplified\_&lt;geometry column name&gt; - 原始幾何圖形的簡化版本。
* 來自 *dataset* 的所有欄 (索引鍵欄位除外)，並以資料集名稱作為前置詞。

支援：

* 載入指令碼中的 ScriptEval。

載入美國各州簡化版本的範例：

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

Simplify 的參數

| 參數 | 類型 | 使用 | 說明 |
| --- | --- | --- | --- |
| resolution | string | *預設值：Auto* | 產生的資料集會被簡化，而簡化程度由這個屬性控制。可用的值包括：<br><br><ul><li><strong> Auto</strong> - 操作會根據資料計算解析度。</li><li><strong> AutoLow</strong> - 低於 (一半) Auto 解析度的解析度。</li><li><strong> AutoHigh</strong> - 高於 (兩倍) Auto 解析度的解析度。</li></ul> |
| dataset | Dataset | *預設值：&lt;第一個資料集&gt;* | 包含要簡化之幾何圖形的資料集。 |
| precision | integer | *預設值：6* | 設定座標中要捨入的小數位數。<br>預設值為 6 個小數位，精確度約為 10 公分。<br>如果您不希望捨入座標，請將該值設定為負數。 |

## TravelAreas

計算旅行時間 ISO 區域。 傳回區域內的所有位置都可以在特定時間內到達，或者沿著道路的距離小於特定距離。 傳回包含 ID、旅行區域幾何圖形、中心點、成本、成本單位和狀態 (OK 或 failed) 的表格。

如果您使用 "bird" 作為交通類型，它會在起點周圍產生地理上正確的圓圈。

傳回下列欄：

* &lt;dataset key column&gt; - 來自輸入資料集的索引鍵欄位。
* TravelArea - 定義旅行區域的多邊形幾何圖形。
* Cost - 在 costValue 或 costField 中指定的成本。
* CostUnit - 在 costUnit 中指定的成本單位。
* Status - 傳回的狀態為 "OK" 或 "failed:"，後接錯誤訊息。
* 來自輸入資料集的所有欄 (索引鍵欄位除外)，並以資料集名稱作為前置詞。

支援：

* 載入指令碼中的 ScriptEval。
* 圖指令碼中的 ScriptEvalStr，用於取得旅行區域幾何圖形。
* 圖指令碼中的 ScriptEval，用於取得成本。

此載入指令碼範例從座標在邁阿密和奧蘭多產生 10 分鐘的旅行區域：

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);

此載入指令碼範例使用具名點在邁阿密和奧蘭多產生 10 分鐘的旅行區域：

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});

這是直接在區域圖層中計算點周圍旅行區域的範例。每次選取範圍變更時，都會為選取範圍呼叫該操作。 這應該放在載入指令碼中以載入範例的資料：

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

在區域圖層中使用下列維度：

LocationDbId

在區域圖層中使用計算條件：

Count(LocationDbId)&lt;10

在 Location 屬性中放入此內容：

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

TravelAreas 的參數

| 參數 | 類型 | 使用 | 說明 |
| --- | --- | --- | --- |
| dataset | Dataset | *預設值：&lt;第一個資料集&gt;* | 包含旅行區域計算之起點和 (選用) 成本的資料集。支援從載入指令碼傳送時串流此資料集，這表示允許較大的表格。 |
| costValue | number | *預設值：無。* | 傳回區域邊界處的成本。成本可以是長度或時間。(請參閱下方的 costUnit。)<br>允許每個區域有獨立成本的替代選項是改為指定 costField。 |
| costField | string | *預設值：無。* | 資料集中指定成本的欄位。僅在 costValue 為空白時使用。 |
| costUnit | string | *預設值：seconds* | 應為 seconds (秒)、minutes (分鐘)、hours (小時)、meters (公尺)、yards (碼)、kilometers (公里) 或 miles (英里) 之一。<br>使用時間單位時，會計算在該時間內到達的區域；使用長度單位時，會計算旅行距離短於指定距離的區域。 |
| transportation | string | *預設值：car* | 交通模式，為 car (汽車)、truck (卡車)、bike (自行車)、pedestrian (行人) 或 bird (鳥，以 10 m/s 飛行) 之一。 |
| precision | integer | *預設值：6* | 設定座標中要捨入的小數位數。<br>預設值為 6 個小數位，精確度約為 10 公分。<br>如果您不希望捨入座標，請將該值設定為負數。 |

## Within

傳回兩個資料集之間的關係，其中一個資料集 (被包含) 中的幾何圖形完全位於另一個資料集 (包含) 的區域內。 傳回一個表格，該表格對應被包含中的索引鍵與包含中的索引鍵，適用於所有找到的關係。

通常使用 within 來尋找資料所在的區域； 例如，測試 GPS 位置以了解它們位於哪個行政區。 這是一種反向地理編碼。

傳回下列欄：

* &lt;enclosed name&gt;\_&lt;enclosing name&gt;\_RelationId - 為兩個幾何圖形之間的關係產生的索引鍵。
* &lt;enclosed key column&gt; - 來自輸入 dataset1 的索引鍵欄位。
* &lt;enclosing key column&gt; - 來自輸入 dataset2 的索引鍵欄位。
* 來自 *enclosed* 資料集的所有欄 (索引鍵欄位除外)，並以資料集名稱作為前置詞。
* 來自 *enclosing* 資料集的所有欄 (索引鍵欄位除外)，並以資料集名稱作為前置詞。

支援：

* 載入指令碼中的 ScriptEval。

為了補償資料中的不準確性，有時最好使用 *Closest* 而不是 *Within*。例如，如果您有沿海地區的點資料，並希望將其與行政區建立關聯，微小的不準確性可能會使點稍微落在區域之外。

這是計算哪些點位於哪些州/省內的載入指令碼範例：

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);

Within 的參數

| 參數 | 類型 | 使用 | 說明 |
| --- | --- | --- | --- |
| enclosed | Dataset | *預設值：&lt;第一個資料集&gt;* | 包含幾何圖形的資料集，用於測試它們被哪些區域包含。支援從載入指令碼傳送時串流此資料集，這表示允許較大的表格。 |
| enclosing | Dataset | *預設值：&lt;第二個資料集&gt;* | 包含區域幾何圖形的資料集，用於測試它們包含哪些幾何圖形。支援從載入指令碼傳送時串流此資料集，這表示允許較大的表格。 |
| precision | integer | *預設值：6* | 設定座標中要捨入的小數位數。<br>預設值為 6 個小數位，精確度約為 10 公分。<br>如果您不希望捨入座標，請將該值設定為負數。 |