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
Importante
Nos exemplos de URL neste artigo, você precisará substituir {Your-Azure-Maps-Subscription-key}
por sua chave de assinatura do Azure Maps.
Este artigo usa o aplicativo bruno , 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.
Abra o aplicativo bruno, selecione NOVA SOLICITAÇÃO para criar a solicitação. Na janela NEW REQUEST, defina Type como HTTP. Insira um Nome para a solicitação.
Selecione o método HTTP GET na lista suspensa URL e insira o seguinte URL:
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 Criar.
Selecione o botão Executar.
Este pedido procura um endereço específico:
400 Broad St, Seattle, WA 98109
. Em seguida, pesquise um endereço que tenha mais de um local possível.Na seção Params, altere a
query
tecla para400 Broad, Seattle
e, em seguida, selecione o botão Executar.Em seguida, tente definir a
query
chave como400 Broa
e, em seguida, selecione o botão Executar.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.
Abra o aplicativo bruno, selecione NOVA SOLICITAÇÃO para criar a solicitação. Na janela NEW REQUEST, defina Type como HTTP. Insira um Nome para a solicitação.
Selecione o método HTTP GET na lista suspensa URL e insira o seguinte URL:
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
format
parâmetro na documentação de referência do parâmetro URI.Selecione o botão Executar e, em seguida, reveja o corpo da resposta.
A seqüência de consulta ambígua para "pizza" retornou 10 pontos 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 de geocodificação do Azure Maps.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 Executar. 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.
Abra o aplicativo bruno, selecione NOVA SOLICITAÇÃO para criar a solicitação. Na janela NEW REQUEST, defina Type como HTTP. Insira um Nome para a solicitação.
Selecione o método HTTP GET na lista suspensa URL e insira o 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
Selecione o botão Executar 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 Devoluções Número 1 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 o botão Executar e revise o corpo da resposta.
Em seguida, adicione a
entityType
chave e defina 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 o botão Executar. 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.
Abra o aplicativo bruno, selecione NOVA SOLICITAÇÃO para criar a solicitação. Na janela NEW REQUEST, defina Type como HTTP. Insira um Nome para a solicitação.
Selecione o método HTTP GET na lista suspensa URL e insira o 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 o botão Executar e revise o corpo da resposta. Observe que a resposta contém um
crossStreet
valor deSouth Atlantic Street
.