共用方式為


Azure 地圖服務適用于 JavaScript 的搜尋用戶端程式庫 - 1.0.0-Beta.2 版

/TypeScript

Azure 地圖服務搜尋服務是一組 RESTful API,目的在於協助開發人員依名稱、類別和其他地理資訊搜尋地址、地點和公司清單。 除了支援傳統地理編碼之外,服務也可根據經緯度反向搜尋地理編碼地址和交叉路口。 搜尋傳回的緯度與經度值可用來做為其他 Azure 地圖服務的參數,例如路線氣象服務。

此套件包含Node.js和瀏覽器) 中執行Azure 地圖服務搜尋用戶端的等型 SDK (。

| 原始程式碼套件 (NPM) | 樣品 | 產品資訊

開始使用

目前支援的環境

必要條件

如果您使用 Azure CLI,請取代 <resource-group-name><map-account-name> 選擇,並根據您的需求透過 <sku-name> 參數選取適當的定價層。 如需詳細資訊,請參閱此頁面

az maps account create --resource-group <resource-group-name> --name <map-account-name> --sku <sku-name>

安裝 @azure/maps-search 套件

使用 npm 安裝Azure 地圖服務搜尋用戶端程式庫:

npm install @azure/maps-search

建立和驗證 MapsSearchClient

若要建立用戶端物件來存取Azure 地圖服務搜尋 API,您需要 物件 credential 。 Azure 地圖服務搜尋用戶端可以使用 Azure Active Directory 認證或 Azure 金鑰認證進行驗證。

使用 Azure Active Directory 認證

您可以使用 Azure 身分識別程式庫向 Azure Active Directory 進行驗證。 若要使用如下所示的 DefaultAzureCredential 提供者,或其他 Azure SDK 提供的認證提供者,請安裝 @azure/identity 套件:

npm install @azure/identity

您也需要註冊新的 AAD 應用程式,並將適當的角色指派給服務主體,以授與Azure 地圖服務的存取權。 請參閱 管理驗證 頁面。

將 AAD 應用程式的用戶端識別碼、租使用者識別碼和用戶端密碼的值設定為環境變數: AZURE_CLIENT_ID 、、 AZURE_TENANT_IDAZURE_CLIENT_SECRET

您也必須在用戶端選項中指定 clientId ,以指定您想要使用的Azure 地圖服務資源。 Azure 地圖服務資源用戶端識別碼可在Azure 地圖服務資源的 [驗證] 區段中找到。 請參閱有關如何尋找的檔

const { MapsSearchClient } = require("@azure/maps-search");
const { DefaultAzureCredential } = require("@azure/identity");

const credential = new DefaultAzureCredential();
const client = new MapsSearchClient(credential, "<maps-account-client-id>");

使用訂用帳戶金鑰認證

您可以使用Azure 地圖服務訂用帳戶金鑰進行驗證。

const { MapsSearchClient, AzureKeyCredential } = require("@azure/maps-search");

const credential = new AzureKeyCredential("<subscription-key>");
const client = new MapsSearchClient(credential);

重要概念

MapsSearchClient

MapsSearchClient是開發人員使用 Azure 地圖服務 Search 用戶端程式庫的主要介面。 探索此用戶端物件上的方法,以瞭解您可以存取之Azure 地圖服務 搜尋服務的不同功能。

範例

下列各節提供數個程式碼片段,涵蓋一些最常見的Azure 地圖服務搜尋工作,包括:

要求位址的緯度和經度座標

您可以使用已驗證的用戶端,將位址轉換成緯度和經度座標。 此流程也稱為地理編碼。 除了傳回座標以外,回應也會傳回詳細的地址屬性,例如街道、郵遞區號、自治區和國家/區域資訊。

const searchResult = await client.searchAddress("400 Broad, Seattle");
for (const {
  position: { lat, lon },
} of searchResult.results) {
  console.log(`Latitude: ${lat}, Longitude: ${lon}`);
}

搜尋位址或景點

您可以使用模糊搜尋來搜尋位址或 (POI) 的景點。 下列範例示範如何搜尋 pizza 特定國家/地區 (France 的範圍,在此範例中) 。

const fuzzySearchResult = await client.fuzzySearch({ query: "pizza", countryCodeFilter: ["fr"] });
for (const result of fuzzySearchResult.results) {
  console.log(result);
}

建立反向位址搜尋,將座標位置轉譯為街地道址

您可以將座標轉譯成人類可讀取的街地道址。 此程式也稱為反向地理編碼。 這通常用於取用 GPS 摘要,並想要在特定座標點探索位址的應用程式。

const coordinates: LatLon = [47.59118, -122.3327]; // [latitude, longitude]

const { addresses } = await client.reverseSearchAddress(coordinates);
for (const { address } of addresses) {
  console.log(address);
}

將座標位置轉譯為人類可理解的交叉街

使用搜尋地址反向交叉路口 API,將座標位置轉譯成人類可理解的交叉路口。 在追蹤從裝置或資產接收 GPS 摘要的應用程式,並想要知道座標位置時,最常使用此功能。

const coordinates: LatLon = [47.59118, -122.3327];

const { addresses } = await client.reverseSearchCrossStreetAddress(coordinates);
for (const { address } of addresses) {
  console.log(address);
}

疑難排解

記錄

啟用記錄有助於找出失敗的相關實用資訊。 若要查看 HTTP 的要求和回應記錄,請將 AZURE_LOG_LEVEL 環境變數設定為 info。 或者,您可以在 @azure/logger 中呼叫 setLogLevel,以在執行階段啟用記錄:

const { setLogLevel } = require("@azure/logger");
setLogLevel("info");

如需如何啟用記錄的詳細指示,可參閱 @azure/logger 套件文件

下一步

如需如何使用此程式庫的詳細 範例 ,請參閱範例目錄。

參與

如果您希望向此程式庫投稿,請參閱投稿指南,深入瞭解如何組建與測試程式碼。

曝光數