Compartilhar via


Azure Mapas Pesquisar biblioteca de clientes para JavaScript – versão 1.0.0-beta.2

/Máquina

O Serviço de Pesquisa do Azure Mapas é um conjunto de APIs RESTful projetado para ajudar os desenvolvedores a pesquisar endereços, locais e listagens de negócios por nome, categoria e outras informações geográficas. Além de oferecer suporte à geocodificação tradicional, os serviços também podem inverter endereços de geocodificação e fazer o cruzamento de ruas com base em latitudes e longitudes. Os valores de latitude e longitude retornados pela pesquisa podem ser usados como parâmetros em outros serviços do Azure Mapas, como Rota e Clima.

Esse pacote contém um SDK isomórfico (executado em Node.js e em navegadores) para Azure Mapas cliente de Pesquisa.

Código-fonte | Pacote (NPM) | Amostras | Informações do produto

Introdução

Ambientes com suporte no momento

Pré-requisitos

Se você usar a CLI do Azure, substitua <resource-group-name> e <map-account-name> de sua escolha e selecione um tipo de preço adequado com base em suas necessidades por meio do <sku-name> parâmetro . Consulte este artigo para obter mais detalhes.

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

Instalar o pacote @azure/maps-search

Instale a biblioteca de clientes do Azure Mapas Search com npm:

npm install @azure/maps-search

Criar e autenticar um MapsSearchClient

Para criar um objeto cliente para acessar as APIs Azure Mapas Search, você precisará de um credential objeto . O cliente Azure Mapas Search pode usar uma credencial do Azure Active Directory ou uma credencial da Chave do Azure para autenticar.

Usando uma credencial do Azure Active Directory

Você pode autenticar com o Azure Active Directory usando a biblioteca de Identidade do Azure. Para usar o provedor DefaultAzureCredential mostrado abaixo ou outros provedores de credenciais fornecidos com o SDK do Azure, instale o @azure/identity pacote:

npm install @azure/identity

Você também precisará registrar um novo aplicativo do AAD e conceder acesso a Azure Mapas atribuindo a função adequada à sua entidade de serviço. Consulte a página Gerenciar autenticação .

Defina os valores da ID do cliente, da ID do locatário e do segredo do cliente do aplicativo AAD como variáveis de ambiente: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET.

Você também precisará especificar o recurso Azure Mapas que pretende usar especificando o clientId nas opções do cliente. A ID do cliente do recurso Azure Mapas pode ser encontrada nas seções Autenticação no recurso Azure Mapas. Consulte a documentação sobre como encontrá-lo.

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

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

Usando uma credencial de chave de assinatura

Você pode autenticar com sua chave de assinatura Azure Mapas.

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

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

Principais conceitos

MapsSearchClient

MapsSearchClienté a interface primária para desenvolvedores que usam a biblioteca de clientes Azure Mapas Search. Explore os métodos neste objeto cliente para entender os diferentes recursos do Azure Mapas serviço Pesquisa que você pode acessar.

Exemplos

As seções a seguir fornecem vários snippets de código que abrangem algumas das tarefas mais comuns Azure Mapas Search, incluindo:

Solicitar coordenadas de latitude e longitude para um endereço

Você pode usar um cliente autenticado para converter um endereço em coordenadas de latitude e longitude. Esse processo é chamado geocodificação. Além de retornar as coordenadas, a resposta também retornará propriedades detalhadas do endereço, como rua, código postal, município e informações de país/região.

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

Pesquisar um endereço ou ponto de interesse

Você pode usar a Pesquisa Difusa para pesquisar um endereço ou um POI (ponto de interesse). O exemplo a seguir demonstra como pesquisar pizza sobre o escopo de um país específico (Franceneste exemplo).

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

Fazer uma Pesquisa de Endereço Inverso para traduzir o local da coordenada para o endereço da rua

Você pode traduzir coordenadas em endereços de rua legíveis por humanos. Esse processo também é chamado de geocodificação reversa. Isso geralmente é usado para aplicativos que consomem feeds GPS e desejam descobrir endereços em pontos de coordenadas específicos.

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

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

Traduzir localização de coordenadas em uma rua transversável humana

Traduzir o local da coordenada em um cruzamento entre as ruas compreensível por humanos usando a API de Pesquisa de endereço inverso entre ruas. Com frequência, isso é necessário no rastreamento de aplicativos que recebem um feed de GPS de um dispositivo ou de um ativo, e se deseja saber onde a coordenada está localizada.

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

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

Solução de problemas

Log

A habilitação do log pode ajudar a descobrir informações úteis sobre falhas. Para ver um log de solicitações e respostas HTTP, defina a variável de ambiente AZURE_LOG_LEVEL como info. Como alternativa, o log pode ser habilitado no runtime chamando setLogLevel em @azure/logger:

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

Para obter instruções mais detalhadas sobre como habilitar logs, veja os documentos do pacote @azure/logger.

Próximas etapas

Examine o diretório de exemplos para obter exemplos detalhados sobre como usar essa biblioteca.

Contribuição

Se você quiser contribuir com essa biblioteca, leia o guia de contribuição para saber como criar e testar o código.

Impressões