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.

  1. 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.

  2. 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
    
  3. Selecione o botão Criar.

  4. 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.

  5. Na seção Params, altere a query tecla para 400 Broad, Seattlee, em seguida, selecione o botão Executar.

    Procurar endereço

  6. Em seguida, tente definir a query chave como 400 Broae, 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.

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.

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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 como US. Definir a countrySet chave para US limitar os resultados aos Estados Unidos.

    Pesquisa de pizza nos Estados Unidos

    Os resultados agora são limitados pelo código do país e a consulta retorna pizzarias nos Estados Unidos.

  5. 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 o limit 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
  6. Selecione Executar. A resposta inclui resultados para pizzarias perto do Seattle Space Needle.

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.

  1. 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.

  2. 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
    
  3. 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.

  4. 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.

    Pesquisa inversa.

  5. Selecione o botão Executar e revise o corpo da resposta.

  6. Em seguida, adicione a entityType chave e defina seu valor como Municipality. A entityType chave substitui a returnMatchType chave na etapa anterior. returnSpeedLimit e returnRoadUse 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.

    Pesquisar entity reverse Type.

  7. 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 retornado geometryId 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.

Este exemplo demonstra como procurar uma rua transversal com base nas coordenadas de um endereço.

  1. 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.

  2. 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
    
  3. Selecione o botão Executar e revise o corpo da resposta. Observe que a resposta contém um crossStreet valor de South Atlantic Street.

Próximos passos