Azure Maps 搜索 JavaScript/ TypeScript 客户端库
Azure地图搜索服务是一组RESTful API,旨在帮助开发者按名称,类别,和其他地理信息搜索地址,地点,和企业上市. 除了支持传统的地理编码外,服务还可以倒转以纬度和经度为基础的地理编码地址并横穿街道. 搜索返回的纬度和经度值可作为参数用于其他 Azure 映射服务,例如 路线 财务报告和审定财务报表 天气 服务.
这个软件包包含一个Azure Maps搜索客户端的同位素 SDK(运行于Node.js和浏览器中).
开始
目前得到支持的环境
- 节点.js的LTS版本
- 最新版本有"萨法里","克罗姆","边缘"和"火狐"等.
先决条件
- 一个 Azure 订阅。 。 。 .
- 一个 Azure 地图账户您可以通过 Azure 门户,则 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 软件包
安装 Azure 地图搜索客户端库 npm数字 :
npm install @azure/maps-search
创建和认证 a MapsSearchClient
要创建访问 Azure 映射搜索 API 的客户端对象, 您需要一个 credential 对象。 Azure地图搜索客户端可以使用Azure Active Directory证书或Azure密钥证书认证.
使用 Azure 活动目录证书
您可以使用 Azure 活动目录认证 Azure 身份库使用 默认标记 下面显示的提供者,或提供Azure SDK的其他证书提供者,请安装 @azure/identity 软件包 :
npm install @azure/identity
您还需要注册一个新的 AAD 申请,并通过指定您的服务负责人承担合适的角色来获取 Azure 地图。 请参看 管理认证 页 次.
设置客户端ID, 租户ID, 以及客户端AAD应用程序秘密的值为环境变量 : AZURE_CLIENT_ID, (中文(简体) ), AZURE_TENANT_ID, (中文(简体) ), AZURE_CLIENT_SECRET。 。 。 .
您还需要指定您打算使用的 Azure 映射资源, 请指定 clientId 在客户端选项中.
Azure Maps 资源客户端 id 在 Azure Maps 资源中的认证部分中可以找到. 请参看 文档 关于如何找到它.
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 是使用 Azure Maps 搜索客户端库开发者的主要界面. 探索此客户端上的方法对象,以了解Azure地图搜索服务的不同特性,您可以访问.
实例
以下各节提供多个代码片段,涵盖一些最常用的Azure地图搜索任务,包括:
请求获得经纬度坐标地址
您可以使用认证的客户端将地址转换为经纬度坐标. 这个过程也叫地理编码. 除回回坐标外,答复还将回回街道、邮政编码、市政府和国家/区域信息等详细的地址属性.
const searchResult = await client.searchAddress("400 Broad, Seattle");
for (const {
position: { lat, lon },
} of searchResult.results) {
console.log(`Latitude: ${lat}, Longitude: ${lon}`);
}
搜索地址或利益点
您可以使用Fuzzy Search搜索地址或兴趣点(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。或者,可以在运行时拨打 setLogLevel 输入 @azure/logger数字 :
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
关于如何启用日志的更详细指示,您可以查看 @ azure/ logger 包文件。 。 。 .
今后的步骤
请看一下 样本 关于如何使用此库的详细示例的目录.
捐款
如果您想为图书馆捐钱 请读一下 贡献指南 学习如何构建和测试密码.
相关项目
