Procurar uma localização utilizando os serviços de Pesquisa do Azure Maps
O serviço de Pesquisa é um conjunto de APIs RESTful projetado para ajudar os desenvolvedores a pesquisar endereços, locais e fichas de empresas por nome, categoria e outras informações geográficas. Além de suportar a geocodificação tradicional, os serviços também podem inverter endereços de geocodificação e cruzar 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 Maps, como Rota e Tempo.
Este artigo demonstra como:
- Solicite coordenadas de latitude e longitude para um endereço (geocódigo, endereço, localização) usando Endereço de pesquisa.
- Procure um endereço ou Ponto de Interesse (POI) usando a Pesquisa Fuzzy.
- Use a Pesquisa reversa de endereços para traduzir a localização da coordenada para o endereço.
- Traduza a localização da coordenada em uma rua transversal compreensível por humanos usando o Search Address Reverse Cross Street, na maioria das vezes necessário em aplicativos de rastreamento que recebem um feed GPS de um dispositivo ou ativo e desejam saber onde a coordenada está localizada.
Pré-requisitos
Este tutorial usa o aplicativo Postman , mas você pode escolher um ambiente de desenvolvimento de API diferente.
Solicitar latitude e longitude para um endereço (geocodificação)
O exemplo nesta seção usa Obter Endereço de Pesquisa para converter um endereço em coordenadas de latitude e longitude. Este processo também é chamado de geocodificação. Além de retornar as coordenadas, a resposta também retorna propriedades detalhadas do endereço, como rua, código postal, município e informações de país/região.
Gorjeta
Se você tiver um conjunto de endereços para geocodificar, poderá usar Post Search Address Batch para enviar um lote de consultas em uma única solicitação.
No aplicativo Postman, selecione Novo para criar a solicitação. Na janela Criar novo, selecione Solicitação HTTP. Insira um Nome da solicitação para a solicitação.
Selecione o método HTTP GET na guia builder e digite o seguinte URL. Neste pedido, estamos à procura de um endereço específico:
400 Braod St, Seattle, WA 98109
. Para esta solicitação e outras solicitações mencionadas neste artigo, substitua{Your-Azure-Maps-Subscription-key}
por sua chave de assinatura do Azure Maps.https://atlas.microsoft.com/search/address/json?&subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&language=en-US&query=400 Broad St, Seattle, WA 98109
Selecione o botão azul Enviar . O corpo da resposta contém dados para um único local.
Em seguida, pesquise um endereço que tenha mais de um local possível. Na seção Params, altere a
query
chave para400 Broad, Seattle
. Selecione o botão azul Enviar .Em seguida, tente definir a
query
chave como400 Broa
.Selecione o botão Enviar . A resposta inclui resultados de vários países/regiões. Para geobias resultados para a área relevante para os seus utilizadores, adicione sempre o maior número possível de detalhes de localização ao pedido.
Pesquisa difusa
A Pesquisa Fuzzy suporta pesquisas padrão de linha única e de forma livre. Recomendamos que você use a API Fuzzy de Pesquisa do Azure Maps quando não souber o tipo de entrada do usuário para uma solicitação de pesquisa. A entrada de consulta pode ser um endereço total ou parcial. Também pode ser um token de Ponto de Interesse (POI), como um nome de POI, categoria de POI ou nome de marca. Além disso, para melhorar a relevância dos resultados da pesquisa, restrinja os resultados da consulta usando um local e um raio de coordenadas ou definindo uma caixa delimitadora.
Gorjeta
A maioria das consultas de pesquisa usa como maxFuzzyLevel=1
padrão para melhorar o desempenho e reduzir resultados incomuns. Ajuste os níveis de imprecisão usando os maxFuzzyLevel
parâmetros ou minFuzzyLevel
. Para obter mais informações e maxFuzzyLevel
uma lista completa de todos os parâmetros opcionais, consulte Parâmetros de URI de pesquisa difusa.
Procurar um endereço usando a Pesquisa Fuzzy
O exemplo nesta seção usa Fuzzy Search
para pesquisar pizza no mundo inteiro e, em seguida, pesquisa sobre o escopo de um país/região específico. Finalmente, ele demonstra como usar um local de coordenadas e um raio para definir o escopo de uma pesquisa em uma área específica e limitar o número de resultados retornados.
Importante
Para geobias resultados para a área relevante para seus usuários, sempre adicione o maior número possível de detalhes de localização. Para obter mais informações, consulte Práticas recomendadas para pesquisa.
No aplicativo Postman, selecione Novo para criar a solicitação. Na janela Criar novo, selecione Solicitação HTTP. Insira um Nome da solicitação para a solicitação.
Selecione o método HTTP GET na guia builder e digite o seguinte URL. Para esta solicitação e outras solicitações mencionadas neste artigo, substitua
{Your-Azure-Maps-Subscription-key}
por sua chave de assinatura do Azure Maps.https://atlas.microsoft.com/search/fuzzy/json?&api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=pizza
Nota
O atributo json no caminho da URL determina o formato de resposta. Este artigo usa json para facilidade de uso e legibilidade. Para encontrar outros formatos de resposta suportados, consulte a definição de parâmetro na documentação de
format
referência do parâmetro URI.Selecione Enviar e revise o corpo da resposta.
A cadeia de caracteres de consulta ambígua para "pizza" retornou 10 resultados de ponto de interesse (POI) nas categorias "pizza" e "restaurante". Cada resultado inclui detalhes como endereço, valores de latitude e longitude, porta de visualização e pontos de entrada para o local. Os resultados agora são variados para essa consulta e não estão vinculados a nenhum local de referência.
Na próxima etapa, você usará o
countrySet
parâmetro para especificar apenas os países/regiões para os quais seu aplicativo precisa de cobertura. Para obter uma lista completa dos países/regiões suportados, consulte Cobertura da pesquisa.O comportamento padrão é pesquisar o mundo inteiro, potencialmente retornando resultados desnecessários. Em seguida, procure por pizza apenas nos Estados Unidos. Adicione a
countrySet
chave à seção Params e defina seu valor comoUS
. Definir acountrySet
chave paraUS
limitar os resultados aos Estados Unidos.Os resultados agora são limitados pelo código do país e a consulta retorna pizzarias nos Estados Unidos.
Para obter uma pesquisa ainda mais direcionada, você pode pesquisar sobre o escopo de um par de coordenadas lat/lon. O exemplo a seguir usa as coordenadas lat/lon da Agulha Espacial de Seattle. Como só queremos retornar resultados dentro de um raio de 400 metros, adicionamos o
radius
parâmetro. Além disso, adicionamos olimit
parâmetro para limitar os resultados às cinco pizzarias mais próximas.Na seção Params, adicione os seguintes pares chave/valor:
Key valor lat 47.620525 Lon -122.349274 raio 400 limit 5 Selecione Enviar. A resposta inclui resultados para pizzarias perto do Seattle Space Needle.
Procurar um endereço usando a Pesquisa de Endereço Inverso
Get Search Address Reverse traduz coordenadas em endereços legíveis por humanos. Essa API é frequentemente usada para aplicativos que consomem feeds GPS e desejam descobrir endereços em pontos de coordenadas específicos.
Importante
Para geobias resultados para a área relevante para seus usuários, sempre adicione o maior número possível de detalhes de localização. Para obter mais informações, consulte Práticas recomendadas para pesquisa.
Gorjeta
Se você tiver um conjunto de locais de coordenadas para reverter o geocódigo, poderá usar o Lote reverso de endereço de pesquisa posterior para enviar um lote de consultas em uma única solicitação.
Este exemplo demonstra como fazer pesquisas reversas usando alguns dos parâmetros opcionais disponíveis. Para obter a lista completa de parâmetros opcionais, consulte Parâmetros de pesquisa inversa.
No aplicativo Postman, selecione Novo para criar a solicitação. Na janela Criar novo, selecione Solicitação HTTP. Insira um Nome da solicitação para a solicitação.
Selecione o método HTTP GET na guia builder e digite o seguinte URL. Para esta solicitação e outras solicitações mencionadas neste artigo, substitua
{Your-Azure-Maps-Subscription-key}
por sua chave de assinatura do Azure Maps. A solicitação deve se parecer com a seguinte URL:https://atlas.microsoft.com/search/address/reverse/json?api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=47.591180,-122.332700&number=1
Selecione Enviar e revise o corpo da resposta. Você verá um resultado de consulta. A resposta inclui informações de endereço chave sobre o Safeco Field.
Em seguida, adicione os seguintes pares chave/valor à seção Params :
Key valor Devolve number 5 A resposta pode incluir o lado da rua (Esquerda/Direita) e também uma posição de deslocamento para o número. returnSpeedLimit verdadeiro Devolve o limite de velocidade na morada. regressoUtilização da estrada verdadeiro Retorna os tipos de uso da estrada no endereço. Para todos os tipos possíveis de utilização da estrada, consulte Tipos de utilização da estrada. returnMatchType verdadeiro Retorna o tipo de correspondência. Para obter todos os valores possíveis, consulte Resultados da pesquisa de endereço reverso. Selecione Enviar e revise o corpo da resposta.
Em seguida, adicionamos a
entityType
chave e definimos seu valor comoMunicipality
. AentityType
chave substitui areturnMatchType
chave na etapa anterior.returnSpeedLimit
ereturnRoadUse
também precisam ser removidos, pois você está solicitando informações sobre o município. Para todos os tipos de entidade possíveis, consulte Tipos de entidade.Selecione Enviar. Compare os resultados com os resultados retornados na etapa 5. Como o tipo de entidade solicitada é agora
municipality
, a resposta não inclui informações de endereço. Além disso, o retornadogeometryId
pode ser usado para solicitar polígono de limite por meio da API Get Search Polygon do Azure Maps.
Gorjeta
Para obter mais informações sobre esses e outros parâmetros, consulte Parâmetros de pesquisa inversa.
Procurar por rua transversal usando a Pesquisa de Rua Cruzada de Endereço Inverso
Este exemplo demonstra como procurar uma rua transversal com base nas coordenadas de um endereço.
No aplicativo Postman, selecione Novo para criar a solicitação. Na janela Criar novo, selecione Solicitação HTTP. Insira um Nome da solicitação para a solicitação.
Selecione o método HTTP GET na guia builder e digite o seguinte URL. Para esta solicitação e outras solicitações mencionadas neste artigo, substitua
{Your-Azure-Maps-Subscription-key}
por sua chave de assinatura do Azure Maps. A solicitação deve se parecer com a seguinte URL:https://atlas.microsoft.com/search/address/reverse/crossstreet/json?&api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=47.591180,-122.332700
Selecione Enviar e revise o corpo da resposta. Observe que a resposta contém um
crossStreet
valor deSouth Atlantic Street
.