клиентская библиотека поиска Azure Maps для JavaScript версии 1.0.0-beta.2
/Typescript
Служба "Поиск" Azure Maps — это набор API на принципах RESTful, предназначенный для поиска адресов, мест и основных сведений о компаниях по названию, категории и другим географическим сведениям. Помимо традиционного геокодирования, поддерживается также обратное геокодирование для поиска адресов и пересекающих улиц по широте и долготе. Значения широты и долготы, возвращенные при поиске, можно указывать как параметры в других службах Azure Maps, например Построение маршрутов и Погода.
Этот пакет содержит изоморфный пакет SDK (выполняется как в Node.js, так и в браузерах) для клиента поиска Azure Maps.
Исходный код | Пакет (NPM) | Образцы | Сведения о продукте
Начало работы
Поддерживаемые в настоящее время среды
- LTS версии Node.js
- Последние версии Safari, Chrome, Edge и Firefox.
Предварительные требования
- Подписка Azure.
- Учетная запись Azure Maps. Вы можете создать ресурс с помощью портала 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
.
Установите клиентская библиотека поиска Azure Maps с помощью npm
:
npm install @azure/maps-search
Создание и проверка подлинности MapsSearchClient
Чтобы создать клиентский объект для доступа к API поиска Azure Maps, потребуется credential
объект . Клиент поиска Azure Maps может использовать учетные данные Azure Active Directory или ключ Azure для проверки подлинности.
Использование учетных данных Azure Active Directory
Вы можете пройти проверку подлинности в Azure Active Directory с помощью библиотеки удостоверений Azure. Чтобы использовать поставщика DefaultAzureCredential, показанного ниже, или других поставщиков учетных данных, предоставляемых пакетом SDK для Azure, установите @azure/identity
пакет :
npm install @azure/identity
Вам также потребуется зарегистрировать новое приложение AAD и предоставить доступ к Azure Maps, назначив соответствующую роль субъекту-службе. См. страницу Управление проверкой подлинности .
Задайте значения идентификатора клиента, идентификатора клиента и секрета клиента приложения AAD в качестве переменных среды: AZURE_CLIENT_ID
, AZURE_TENANT_ID
, AZURE_CLIENT_SECRET
.
Кроме того, необходимо указать Azure Maps ресурс, который вы планируете использовать, указав clientId
в параметрах клиента .
Идентификатор клиента Azure Maps ресурса можно найти в разделах Проверка подлинности ресурса 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 Maps.
const { MapsSearchClient, AzureKeyCredential } = require("@azure/maps-search");
const credential = new AzureKeyCredential("<subscription-key>");
const client = new MapsSearchClient(credential);
Основные понятия
MapsSearchClient
MapsSearchClient
— это основной интерфейс для разработчиков, использующих клиентную библиотеку поиска Azure Maps. Изучите методы этого клиентского объекта, чтобы понять различные функции Azure Maps служба , к которым можно получить доступ.
Примеры
В следующих разделах представлено несколько фрагментов кода, охватывающих некоторые из наиболее распространенных задач поиска Azure Maps, в том числе:
- Запрос координат широты и долготы для адреса
- Поиск адреса или точки интереса
- Создание обратного поиска адресов для преобразования координатного расположения в адрес улицы
- Перевод координатного положения в понятный человеку перекрестный перекресток
Запрос координат широты и долготы для адреса
Для преобразования адреса в координаты широты и долготы можно использовать клиент, прошедший проверку подлинности. Этот процесс называется еще геокодированием. Кроме координат, в ответе также возвращаются подробные свойства адреса, такие как название улицы, почтовый индекс, муниципальное образование и страна или регион.
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
. Кроме того, ведение журнала можно включить во время выполнения, вызвав setLogLevel
в @azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Более подробные инструкции по включению журналов см. в документации по пакету @azure и средству ведения журнала.
Дальнейшие действия
Подробные примеры использования этой библиотеки см. в каталоге примеров .
Участие
Если вы хотите вносить изменения в эту библиотеку, ознакомьтесь с руководством по внесению изменений, в котором содержатся сведения о создании и тестировании кода.
Связанные проекты
Azure SDK for JavaScript