Azure 地圖服務適用于 JavaScript 的搜尋用戶端程式庫 - 1.0.0-Beta.2 版
/TypeScript
Azure 地圖服務搜尋服務是一組 RESTful API,目的在於協助開發人員依名稱、類別和其他地理資訊搜尋地址、地點和公司清單。 除了支援傳統地理編碼之外,服務也可根據經緯度反向搜尋地理編碼地址和交叉路口。 搜尋傳回的緯度與經度值可用來做為其他 Azure 地圖服務的參數,例如路線和氣象服務。
此套件包含Node.js和瀏覽器) 中執行Azure 地圖服務搜尋用戶端的等型 SDK (。
開始使用
目前支援的環境
- Node.js 的 LTS 版本
- 最新版的 Safari、Chrome、Edge 和 Firefox。
必要條件
- Azure 訂用帳戶。
- Azure 地圖服務帳戶。 您可以透過Azure 入口網站、Azure PowerShell或Azure CLI來建立資源。
如果您使用 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_ID
AZURE_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 套件文件。
下一步
如需如何使用此程式庫的詳細 範例 ,請參閱範例目錄。
參與
如果您希望向此程式庫投稿,請參閱投稿指南,深入瞭解如何組建與測試程式碼。