Práticas recomendadas para o serviço de Pesquisa do Azure Maps
O serviço de Pesquisa do Azure Maps inclui uma API que oferece várias capacidades para ajudar os programadores a pesquisar endereços, locais, fichas de empresas por nome ou categoria e outras informações geográficas. Por exemplo, o Search Fuzzy permite que os usuários pesquisem um endereço ou Ponto de Interesse (POI).
Este artigo explica como aplicar práticas sólidas quando você chama dados do serviço Azure Maps Search. Saberá como:
- Crie consultas para retornar correspondências relevantes
- Limitar os resultados da pesquisa
- Conheça as diferenças entre os tipos de resultados
- Leia a estrutura de pesquisa-resposta de endereço
Pré-requisitos
Você pode usar qualquer ambiente de desenvolvimento de API, como Postman ou bruno , para executar os exemplos de solicitação HTTP mostrados neste artigo ou para criar chamadas REST.
Práticas recomendadas para geocodificar endereços
Quando você pesquisa um endereço completo ou parcial usando o serviço de Pesquisa do Azure Maps, a API lê palavras-chave da sua consulta de pesquisa. Em seguida, ele retorna as coordenadas de longitude e latitude do endereço. Este processo é chamado de geocodificação.
A capacidade de geocodificar num país/região depende da disponibilidade de dados rodoviários e da precisão do serviço de geocodificação. Para obter mais informações sobre os recursos de geocodificação do Azure Maps por país ou região, consulte Cobertura de geocodificação.
Limitar os resultados da pesquisa
A API de Pesquisa do Azure Maps pode ajudá-lo a limitar os resultados da pesquisa adequadamente. Você limita os resultados para que possa exibir dados relevantes para seus usuários.
Nota
As APIs de pesquisa suportam mais parâmetros do que apenas aqueles que este artigo aborda.
Resultados de pesquisa geoenviesados
Para geobias resultados para a área relevante para o seu usuário, sempre adicione tantos detalhes de localização quanto possível. Talvez você queira restringir os resultados da pesquisa especificando alguns tipos de entrada:
Defina o
countrySet
parâmetro. Você pode defini-lo comoUS,FR
, por exemplo. Por padrão, a API pesquisa o mundo inteiro, para que possa retornar resultados desnecessários. Se a sua consulta não tiver nenhumcountrySet
parâmetro, a pesquisa poderá retornar resultados imprecisos. Por exemplo, uma pesquisa por uma cidade chamada Bellevue retorna resultados dos EUA e da França porque ambos os países/regiões contêm uma cidade chamada Bellevue.Você pode usar os
btmRight
parâmetros etopleft
para definir a caixa delimitadora. Esses parâmetros restringem a pesquisa a uma área específica no mapa.Para influenciar a área de relevância para os resultados, defina os
lat
parâmetros elon
coordene. Use oradius
parâmetro para definir o raio da área de pesquisa.
Parâmetros de pesquisa difusos
Recomendamos que você use o Search Fuzzy quando não souber as entradas do usuário para uma consulta de pesquisa. Por exemplo, a entrada do usuário pode ser um endereço ou o tipo de Ponto de Interesse (POI), como shopping center. A API combina pesquisa POI e geocodificação em uma pesquisa canônica de linha única:
Os
minFuzzyLevel
parâmetros emaxFuzzyLevel
ajudam a retornar correspondências relevantes, mesmo quando os parâmetros de consulta não correspondem exatamente às informações desejadas pelo usuário. Para maximizar o desempenho e reduzir resultados incomuns, defina as consultas de pesquisa como padrões deminFuzzyLevel=1
emaxFuzzyLevel=2
.Por exemplo, quando o
maxFuzzyLevel
parâmetro é definido como 2, o termo de pesquisa restrant é correspondido a restaurante. Você pode substituir os níveis difusos padrão quando precisar.Use o
idxSet
parâmetro para priorizar o conjunto exato de tipos de resultados. Para priorizar um conjunto exato de resultados, você pode enviar uma lista de índices separados por vírgula. Na sua lista, a ordem dos itens não importa. O Azure Maps dá suporte aos seguintes índices:Addr
- Intervalos de endereços: pontos de endereço interpolados do início e do fim da rua. Esses pontos são representados como intervalos de endereços.Geo
- Geografias: Divisões administrativas de terras. Uma geografia pode ser um país/região, estado ou cidade, por exemplo.PAD
- Endereços de pontos: endereços que incluem um nome e um número de rua. Os endereços de pontos podem ser encontrados em um índice. Um exemplo é Soquel Dr 2501. Um endereço de ponto fornece o mais alto nível de precisão disponível para endereços.POI
- Pontos de interesse: Pontos em um mapa que são considerados dignos de atenção ou que podem ser interessantes. O endereço de pesquisa não retorna POIs.Str
- Ruas: Ruas no mapa.XStr
- Ruas transversais ou cruzamentos: Cruzamentos ou locais onde duas ruas se cruzam.
Exemplos de utilização
idxSet=POI
- Pesquise apenas POIs.idxSet=PAD,Addr
- Pesquise apenas endereços.PAD
indica o endereço do ponto eAddr
indica o intervalo de endereços.
Inverter geocodificação e filtro para um tipo de entidade geográfica
Quando você faz uma pesquisa de geocódigo reverso usando Search Address Reverse, o serviço pode retornar polígonos para áreas administrativas. Por exemplo, você pode querer buscar o polígono de área para uma cidade. Para restringir a pesquisa a tipos específicos de entidades geográficas, inclua o entityType
parâmetro em suas solicitações.
A resposta resultante contém o ID geográfico e o tipo de entidade que foi correspondido. Se você fornecer mais de uma entidade, o ponto de extremidade retornará a menor entidade disponível. Você pode usar a ID de geometria retornada para obter a geometria da geografia por meio do serviço Polígono de Pesquisa.
Pedido de amostra
https://atlas.microsoft.com/search/address/reverse/json?api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&query=47.6394532,-122.1304551&language=en-US&entityType=Municipality
Response
{
"summary": {
"queryTime": 14,
"numResults": 1
},
"addresses": [
{
"address": {
"routeNumbers": [],
"countryCode": "US",
"countrySubdivision": "WA",
"countrySecondarySubdivision": "King",
"countryTertiarySubdivision": "Seattle East",
"municipality": "Redmond",
"country": "United States",
"countryCodeISO3": "USA",
"countrySubdivisionName": "Washington"
},
"position": "47.639454,-122.130455",
"dataSources": {
"geometry": {
"id": "00005557-4100-3c00-0000-0000596ae571"
}
},
"entityType": "Municipality"
}
]
}
Definir o idioma dos resultados
Use o language
parâmetro para definir o idioma dos resultados de pesquisa retornados. Se a solicitação não definir o idioma, por padrão, o serviço de Pesquisa usará o idioma mais comum no país ou região. Quando nenhum dado está disponível no idioma especificado, o idioma padrão é usado.
Para obter mais informações, consulte Idiomas suportados do Azure Maps.
Usar o modo preditivo (sugestões automáticas)
Para encontrar mais correspondências para consultas parciais, defina o typeahead
parâmetro como true
. Esta consulta é interpretada como uma entrada parcial e a pesquisa entra no modo preditivo. Se você não definir o typeahead
parâmetro como true
, o serviço assumirá que todas as informações relevantes foram passadas.
Na consulta de exemplo a seguir, o serviço Endereço de Pesquisa é consultado para Microso. Aqui, o typeahead
parâmetro definido como true
. A resposta mostra que o serviço de pesquisa interpretou a consulta como uma consulta parcial. A resposta contém resultados para uma consulta sugerida automaticamente.
Consulta de exemplo
https://atlas.microsoft.com/search/address/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&typeahead=true&countrySet=US&lat=47.6370891183&lon=-122.123736172&query=Microsoft
Response
{
"summary": {
"query": "microsoft",
"queryType": "NON_NEAR",
"queryTime": 18,
"numResults": 7,
"offset": 0,
"totalResults": 7,
"fuzzyLevel": 1,
"geoBias": {
"lat": 47.6370891183,
"lon": -122.123736172
}
},
"results": [
{
"type": "Street",
"id": "US/STR/p0/9438784",
"score": 2.594099998474121,
"dist": 314.0590106663596,
"address": {
"streetName": "Microsoft Way",
"municipalitySubdivision": "Redmond",
"municipality": "Redmond",
},
"position": {
"lat": 47.63988,
"lon": -122.12438
},
"viewport": {
"topLeftPoint": {
"lat": 47.64223,
"lon": -122.1256,
"valid": true
},
"btmRightPoint": {
"lat": 47.63748,
"lon": -122.12309,
"valid": true
}
}
},
{
"type": "Street",
"id": "US/STR/p0/1756074",
"score": 2.592679977416992,
"dist": 876.0272035824189,
"address": {
"streetName": "Microsoft Road",
"municipalitySubdivision": "Redmond",
"municipality": "Redmond",
"countrySecondarySubdivision": "King",
"countryTertiarySubdivision": "Seattle East",
"countrySubdivision": "WA",
"countrySubdivisionName": "Washington",
"postalCode": "98052",
"countryCode": "US",
"country": "United States",
"countryCodeISO3": "USA",
"freeformAddress": "Microsoft Road, Redmond, WA 98052"
},
"position": {
"lat": 47.64032,
"lon": -122.1344
},
"viewport": {
"topLeftPoint": {
"lat": 47.64253,
"lon": -122.13535,
"valid": true
},
"btmRightPoint": {
"lat": 47.63816,
"lon": -122.13305,
"valid": true
}
}
},
{
"type": "Street",
"id": "US/STR/p0/1470668",
"score": 2.5290400981903076,
"dist": 2735.4883918101486,
"address": {
"streetName": "Microsoft West Campus Road",
"municipalitySubdivision": "Redmond",
"municipality": "Bellevue",
"countrySecondarySubdivision": "King",
"countryTertiarySubdivision": "Seattle East",
"countrySubdivision": "WA",
"countrySubdivisionName": "Washington",
"postalCode": "98007",
"countryCode": "US",
"country": "United States",
"countryCodeISO3": "USA",
"freeformAddress": "Microsoft West Campus Road, Bellevue, WA 98007"
},
"position": {
"lat": 47.65784,
"lon": -122.14335
},
"viewport": {
"topLeftPoint": {
"lat": 47.65785,
"lon": -122.14335,
"valid": true
},
"btmRightPoint": {
"lat": 47.65784,
"lon": -122.14325,
"valid": true
}
}
},
{
"type": "Street",
"id": "US/STR/p0/12812615",
"score": 2.527509927749634,
"dist": 2870.9579016916873,
"address": {
"streetName": "Microsoft West Campus Road",
"municipalitySubdivision": "Redmond",
"municipality": "Redmond",
"countrySecondarySubdivision": "King",
"countryTertiarySubdivision": "Seattle East",
"countrySubdivision": "WA",
"countrySubdivisionName": "Washington",
"postalCode": "98052",
"countryCode": "US",
"country": "United States",
"countryCodeISO3": "USA",
"freeformAddress": "Microsoft West Campus Road, Redmond, WA 98052"
},
"position": {
"lat": 47.66034,
"lon": -122.1404
},
"viewport": {
"topLeftPoint": {
"lat": 47.66039,
"lon": -122.14325,
"valid": true
},
"btmRightPoint": {
"lat": 47.65778,
"lon": -122.13749,
"valid": true
}
}
},
{
"type": "Street",
"id": "US/STR/p0/197588",
"score": 2.4630401134490967,
"dist": 878.1404663812472,
"address": {
"streetName": "157th Avenue Northeast",
"municipalitySubdivision": "Redmond",
"municipality": "Redmond",
"countrySecondarySubdivision": "King",
"countryTertiarySubdivision": "Seattle East",
"countrySubdivision": "WA",
"countrySubdivisionName": "Washington",
"postalCode": "98052",
"extendedPostalCode": "980525344, 980525398, 980525399",
"countryCode": "US",
"country": "United States",
"countryCodeISO3": "USA",
"freeformAddress": "157th Avenue Northeast, Redmond, WA 98052"
},
"position": {
"lat": 47.64351,
"lon": -122.13056
},
"viewport": {
"topLeftPoint": {
"lat": 47.64473,
"lon": -122.13058,
"valid": true
},
"btmRightPoint": {
"lat": 47.6425,
"lon": -122.13016,
"valid": true
}
}
},
{
"type": "Street",
"id": "US/STR/p0/3033991",
"score": 2.0754499435424805,
"dist": 3655467.8844475765,
"address": {
"streetName": "Microsoft Way",
"municipalitySubdivision": "Yorkmount, Charlotte",
},
"position": {
"lat": 35.14267,
"lon": -80.91824
},
"viewport": {
"topLeftPoint": {
"lat": 35.14287,
"lon": -80.91839,
"valid": true
},
"btmRightPoint": {
"lat": 35.14267,
"lon": -80.91814,
"valid": true
}
}
},
{
"type": "Street",
"id": "US/STR/p0/8395877",
"score": 2.0754499435424805,
"dist": 3655437.0037482483,
"address": {
"streetName": "Microsoft Way",
"municipalitySubdivision": "Charlotte",
"municipality": "Charlotte",
"countrySecondarySubdivision": "Mecklenburg",
"countryTertiarySubdivision": "Township 1 Charlotte",
"countrySubdivision": "NC",
"countrySubdivisionName": "North Carolina",
"postalCode": "28273",
"extendedPostalCode": "282738105, 282738106, 282738108, 2827382, 282738200",
"countryCode": "US",
"country": "United States",
"countryCodeISO3": "USA",
"freeformAddress": "Microsoft Way, Charlotte, NC 28273"
},
"position": {
"lat": 35.14134,
"lon": -80.9198
},
"viewport": {
"topLeftPoint": {
"lat": 35.14274,
"lon": -80.92159,
"valid": true
},
"btmRightPoint": {
"lat": 35.14002,
"lon": -80.91824,
"valid": true
}
}
}
]
}
Codifique um URI para manipular caracteres especiais
Para encontrar endereços cruzados, você deve codificar o URI para manipular caracteres especiais no endereço. Considere este exemplo de endereço: 1st Avenue & Union Street, Seattle. Aqui, codifice o caractere comercial (&
) antes de enviar a solicitação.
Recomendamos que você codifique dados de caracteres em um URI. Em um URI, você codifica todos os caracteres usando um sinal de porcentagem (%
) e um valor hexadecimal de dois caracteres que corresponde ao código UTF-8 dos caracteres.
Exemplos de utilização
Comece com este endereço:
query=1st Avenue & E 111th St, New York
Codifique o endereço:
query=1st%20Avenue%20%26%20E%20111th%20St%2C%20New%20York
Pode utilizar os seguintes métodos.
JavaScript ou TypeScript:
encodeURIComponent(query)
C# ou Visual Basic:
Uri.EscapeDataString(query)
Java:
URLEncoder.encode(query, "UTF-8")
Python:
import urllib.parse
urllib.parse.quote(query)
C++:
#include <curl/curl.h>
curl_easy_escape(query)
PHP:
urlencode(query)
Ruby:
CGI::escape(query)
Rápido:
query.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())
Vai:
import ("net/url")
url.QueryEscape(query)
Práticas recomendadas para pesquisa de POI
Em uma pesquisa de POI, você pode solicitar resultados de POI pelo nome. Por exemplo, você pode pesquisar uma empresa pelo nome.
É altamente recomendável que você use o countrySet
parâmetro para especificar países/regiões onde seu aplicativo precisa de cobertura. O comportamento padrão é pesquisar o mundo inteiro. Essa pesquisa ampla pode retornar resultados desnecessários e a pesquisa pode levar muito tempo.
Pesquisa de marca
Para melhorar a relevância dos resultados e das informações na resposta, uma resposta de pesquisa POI inclui informações da marca. Você pode usar essas informações para analisar melhor a resposta.
Em uma solicitação, você pode enviar uma lista separada por vírgulas de nomes de marcas. Use a lista para restringir os resultados a marcas específicas definindo o brandSet
parâmetro. Na sua lista, a ordem dos itens não importa. Quando você fornece várias listas de marcas, os resultados retornados devem pertencer a pelo menos uma de suas listas.
Para explorar a pesquisa de marca, vamos fazer uma solicitação de pesquisa de categoria POI. No exemplo a seguir, procuramos postos de gasolina perto do campus da Microsoft em Redmond, Washington. A resposta mostra as informações da marca para cada POI que foi retornado.
Consulta de exemplo
https://atlas.microsoft.com/search/poi/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&query=gas%20station&limit=3&lat=47.6413362&lon=-122.1327968
Response
{
"summary": {
"query": "gas station",
"queryType": "NON_NEAR",
"queryTime": 276,
"numResults": 3,
"offset": 0,
"totalResults": 762680,
"fuzzyLevel": 1,
"geoBias": {
"lat": 47.6413362,
"lon": -122.1327968
}
},
"results": [
{
"type": "POI",
"id": "US/POI/p0/8831765",
"score": 5.6631999015808105,
"dist": 1037.0280221303253,
"info": "search:ta:840531000004190-US",
"poi": {
"name": "Chevron",
"phone": "+(1)-(425)-6532200",
"brands": [
{
"name": "Chevron"
}
],
"categorySet": [
{
"id": 7311
}
],
"url": "www.chevron.com",
"categories": [
"petrol station"
],
"classifications": [
{
"code": "PETROL_STATION",
"names": [
{
"nameLocale": "en-US",
"name": "petrol station"
}
]
}
]
},
"address": {
"streetNumber": "2444",
"streetName": "Bel Red Rd",
"municipalitySubdivision": "Northeast Bellevue, Bellevue",
},
"position": {
"lat": 47.63201,
"lon": -122.13281
},
"viewport": {
"topLeftPoint": {
"lat": 47.63291,
"lon": -122.13414,
"valid": true
},
"btmRightPoint": {
"lat": 47.63111,
"lon": -122.13148,
"valid": true
}
},
"entryPoints": [
{
"type": "main",
"position": {
"lat": 47.63222,
"lon": -122.13312,
"valid": true
}
}
]
},
{
"type": "POI",
"id": "US/POI/p0/8831752",
"score": 5.662710189819336,
"dist": 1330.1278248163273,
"info": "search:ta:840539001100326-US",
"poi": {
"name": "76",
"phone": "+(1)-(425)-7472126",
"brands": [
{
"name": "76"
}
],
"categorySet": [
{
"id": 7311
}
],
"url": "www.76.com",
"categories": [
"petrol station"
],
"classifications": [
{
"code": "PETROL_STATION",
"names": [
{
"nameLocale": "en-US",
"name": "petrol station"
}
]
}
]
},
"address": {
"streetNumber": "2421",
"streetName": "148Th Ave Ne",
"municipalitySubdivision": "Redmond, Bridle Trails, Bellevue",
"municipality": "Redmond, Bellevue",
"countrySecondarySubdivision": "King",
"countryTertiarySubdivision": "Seattle East",
"countrySubdivision": "WA",
"countrySubdivisionName": "Washington",
"postalCode": "98007",
"countryCode": "US",
"country": "United States",
"countryCodeISO3": "USA",
"freeformAddress": "2421 148Th Ave Ne, Bellevue, WA 98007",
"localName": "Bellevue"
},
"position": {
"lat": 47.63187,
"lon": -122.14365
},
"viewport": {
"topLeftPoint": {
"lat": 47.63277,
"lon": -122.14498,
"valid": true
},
"btmRightPoint": {
"lat": 47.63097,
"lon": -122.14232,
"valid": true
}
},
"entryPoints": [
{
"type": "minor",
"position": {
"lat": 47.63187,
"lon": -122.14374,
"valid": true
}
},
{
"type": "main",
"position": {
"lat": 47.63186,
"lon": -122.14313,
"valid": true
}
}
]
},
{
"type": "POI",
"id": "US/POI/p0/8831764",
"score": 5.662449836730957,
"dist": 1458.645407416307,
"info": "search:ta:840539000488527-US",
"poi": {
"name": "BROWN BEAR CAR WASH",
"phone": "+(1)-(425)-6442868",
"brands": [
{
"name": "Texaco"
}
],
"categorySet": [
{
"id": 7311
}
],
"url": "www.texaco.com/",
"categories": [
"petrol station"
],
"classifications": [
{
"code": "PETROL_STATION",
"names": [
{
"nameLocale": "en-US",
"name": "petrol station"
}
]
}
]
},
"address": {
"streetNumber": "15248",
"streetName": "Bel Red Rd",
"municipalitySubdivision": "Redmond",
},
"position": {
"lat": 47.62843,
"lon": -122.13628
},
"viewport": {
"topLeftPoint": {
"lat": 47.62933,
"lon": -122.13761,
"valid": true
},
"btmRightPoint": {
"lat": 47.62753,
"lon": -122.13495,
"valid": true
}
},
"entryPoints": [
{
"type": "main",
"position": {
"lat": 47.62827,
"lon": -122.13628,
"valid": true
}
}
]
}
]
}
Pesquisa de aeroportos
Usando a API Search POI, você pode procurar aeroportos usando seu código oficial. Por exemplo, você pode usar o SEA para encontrar o Aeroporto Internacional de Seattle-Tacoma:
https://atlas.microsoft.com/search/poi/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&query=SEA
Pesquisa nas proximidades
Para recuperar resultados de POI em um local específico, você pode tentar usar a Pesquisa nas proximidades. O ponto de extremidade retorna apenas resultados de POI. Ele não aceita um parâmetro de consulta de pesquisa.
Para limitar os resultados, recomendamos que defina o raio.
Compreender as respostas
Vamos encontrar um endereço em Seattle fazendo uma solicitação de pesquisa de endereço para o serviço de Pesquisa do Azure Maps. No URL de solicitação a seguir, definimos o countrySet
parâmetro para US
procurar o endereço nos EUA.
Consulta de exemplo
https://atlas.microsoft.com/search/address/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1&query=400%20Broad%20Street%2C%20Seattle%2C%20WA&countrySet=US
Tipos de resultados suportados
Endereço do ponto: pontos em um mapa que têm um endereço específico com um nome e número de rua. Point Address fornece o mais alto nível de precisão para endereços.
Intervalo de endereços: o intervalo de pontos de endereço que são interpolados do início e do fim da rua.
Geografia: Áreas em um mapa que representam divisões administrativas de uma terra, por exemplo, país/região, estado ou cidade.
POI: Pontos num mapa que merecem atenção e que podem ser interessantes.
Rua: Ruas no mapa. Os endereços são resolvidos para as coordenadas de latitude e longitude da rua que contém o endereço. O número da casa pode não ser processado.
Rua Transversal: Interseções. As ruas transversais representam cruzamentos onde duas ruas se cruzam.
Response
Vejamos a estrutura de resposta. Na resposta a seguir, os tipos dos objetos de resultado são diferentes. Se você olhar com cuidado, verá três tipos de objetos de resultado:
- Endereço do ponto
- Rua
- Rua Cross
Observe que a pesquisa de endereço não retorna POIs.
O Score
parâmetro para cada objeto de resposta indica como a pontuação correspondente se relaciona com as pontuações de outros objetos na mesma resposta. Para obter mais informações sobre parâmetros de objeto de resposta, consulte Obter endereço de pesquisa.
{
"summary": {
"query": "400 broad street seattle wa",
"queryType": "NON_NEAR",
"queryTime": 146,
"numResults": 6,
"offset": 0,
"totalResults": 7,
"fuzzyLevel": 1
},
"results": [
{
"type": "Point Address",
"id": "US/PAD/p0/28725082",
"score": 9.893799781799316,
"address": {
"streetNumber": "400",
"streetName": "Broad Street",
},
"position": {
"lat": 47.62039,
"lon": -122.34928
},
"viewport": {
"topLeftPoint": {
"lat": 47.62129,
"lon": -122.35061,
"valid": true
},
"btmRightPoint": {
"lat": 47.61949,
"lon": -122.34795,
"valid": true
}
},
"entryPoints": [
{
"type": "main",
"position": {
"lat": 47.61982,
"lon": -122.34886,
"valid": true
}
}
]
},
{
"type": "Street",
"id": "US/STR/p0/6700384",
"score": 8.129190444946289,
"address": {
"streetName": "Broad Street",
},
"position": {
"lat": 47.61724,
"lon": -122.35207
},
"viewport": {
"topLeftPoint": {
"lat": 47.61825,
"lon": -122.35336,
"valid": true
},
"btmRightPoint": {
"lat": 47.61626,
"lon": -122.35078,
"valid": true
}
}
},
{
"type": "Street",
"id": "US/STR/p0/9701953",
"score": 8.129190444946289,
"address": {
"streetName": "Broad Street",
},
"position": {
"lat": 47.61965,
"lon": -122.349
},
"viewport": {
"topLeftPoint": {
"lat": 47.62066,
"lon": -122.35041,
"valid": true
},
"btmRightPoint": {
"lat": 47.61857,
"lon": -122.34761,
"valid": true
}
}
},
{
"type": "Street",
"id": "US/STR/p0/11721297",
"score": 8.129190444946289,
"address": {
"streetName": "Broad Street",
"municipalitySubdivision": "Seattle, Downtown Seattle, Denny Regrade, Belltown",
"municipality": "Seattle",
"countrySecondarySubdivision": "King",
"countryTertiarySubdivision": "Seattle",
"countrySubdivision": "WA",
"countrySubdivisionName": "Washington",
"postalCode": "98121",
"extendedPostalCode": "981211237",
"countryCode": "US",
"country": "United States",
"countryCodeISO3": "USA",
"freeformAddress": "Broad Street, Seattle, WA 98121"
},
"position": {
"lat": 47.61825,
"lon": -122.35078
},
"viewport": {
"topLeftPoint": {
"lat": 47.61857,
"lon": -122.35078,
"valid": true
},
"btmRightPoint": {
"lat": 47.61825,
"lon": -122.35041,
"valid": true
}
}
},
{
"type": "Cross Street",
"id": "US/XSTR/p1/232144",
"score": 6.754479885101318,
"address": {
"streetName": "Broad Street & Valley Street",
"municipalitySubdivision": "South Lake Union, Seattle",
},
"position": {
"lat": 47.62545,
"lon": -122.33974
},
"viewport": {
"topLeftPoint": {
"lat": 47.62635,
"lon": -122.34107,
"valid": true
},
"btmRightPoint": {
"lat": 47.62455,
"lon": -122.33841,
"valid": true
}
}
}
]
}
Geometria
Um tipo de resposta de Geometria pode incluir a ID de geometria retornada no dataSources
objeto em geometry
e id
. Por exemplo, você pode usar o serviço Pesquisar Polígono para solicitar os dados de geometria em um formato GeoJSON. Usando este formato, você pode obter um esboço de cidade ou aeroporto para um conjunto de entidades. Em seguida, você pode usar esses dados de limite para configurar uma cerca geográfica ou Pesquisar POIs dentro da geometria.
As respostas para o Endereço de Pesquisa ou para o Fuzzy de Pesquisa podem incluir o ID de geometria retornado no dataSources
objeto em geometry
e id
:
"dataSources": {
"geometry": {
"id": "00005557-4100-3c00-0000-000059690938" // The geometry ID is returned in the dataSources object under "geometry" and "id".
}
}
Próximos passos
Para saber mais, consulte: