Поделиться через


клиентская библиотека поиска Azure Maps для JavaScript версии 1.0.0-beta.2

/Typescript

Служба "Поиск" Azure Maps — это набор API на принципах RESTful, предназначенный для поиска адресов, мест и основных сведений о компаниях по названию, категории и другим географическим сведениям. Помимо традиционного геокодирования, поддерживается также обратное геокодирование для поиска адресов и пересекающих улиц по широте и долготе. Значения широты и долготы, возвращенные при поиске, можно указывать как параметры в других службах Azure Maps, например Построение маршрутов и Погода.

Этот пакет содержит изоморфный пакет SDK (выполняется как в Node.js, так и в браузерах) для клиента поиска Azure Maps.

Исходный код | Пакет (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.

Установите клиентская библиотека поиска 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 и средству ведения журнала.

Дальнейшие действия

Подробные примеры использования этой библиотеки см. в каталоге примеров .

Участие

Если вы хотите вносить изменения в эту библиотеку, ознакомьтесь с руководством по внесению изменений, в котором содержатся сведения о создании и тестировании кода.

Просмотры