Share via


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.

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

  2. 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
    
  3. Selecione o botão azul Enviar . O corpo da resposta contém dados para um único local.

  4. Em seguida, pesquise um endereço que tenha mais de um local possível. Na seção Params, altere a query chave para 400 Broad, Seattle. Selecione o botão azul Enviar .

    Search for address

  5. Em seguida, tente definir a query chave como 400 Broa.

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

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

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

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

  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.

    Search for pizza in the United States

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

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

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

    Search reverse.

  5. Selecione Enviar e revise o corpo da resposta.

  6. Em seguida, adicionamos a entityType chave e definimos 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.

    Search reverse entityType.

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

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

    Search cross street.

  3. Selecione Enviar e revise o corpo da resposta. Observe que a resposta contém um crossStreet valor de South Atlantic Street.

Próximos passos