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
- Versões LTS do Node.js
- Versões mais recentes do Safari, Chrome, Edge e Firefox.
Pré-requisitos
- Uma assinatura do Azure.
- Uma conta do Azure Mapas. Você pode criar o recurso por meio do Portal do Azure, do Azure PowerShell ou da CLI do Azure.
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
- Pesquisar um endereço ou ponto de interesse
- Fazer uma Pesquisa de Endereço Inverso para traduzir o local da coordenada para o endereço da rua
- Traduzir localização de coordenadas em uma rua transversável humana
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 (France
neste 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.
Projetos relacionados
Azure SDK for JavaScript