Monitore o uso da sua chave antes de atingir um limite
Acompanhar seus cabeçalhos de cota ao longo do caminho mostra quando um limite está se aproximando, bem antes de uma requisição ser realmente rejeitada.
Um localizador de lojas precisa de duas coisas funcionando juntas: uma forma de saber onde o cliente está e uma lista de coordenadas das lojas para comparar. A geocodificação reversa resolve bem a primeira parte.
Depois de obter as coordenadas do cliente, seja de um local que ele digitou ou de uma consulta de IP, faça a geocodificação reversa delas para mostrar ao cliente um nome de lugar legível, confirmando o local da busca antes de exibir os resultados.
GET /v1/reverse?lat=51.5074&lon=-0.1278{
"status": "ok",
"formatted": "Trafalgar Square, London, UK",
"lat": 51.5074,
"lon": -0.1278,
"type": "address",
"precision": "street",
"confidence": 0.9,
"place_id": "lm345",
"components": {"city": "London", "country": "GB"}
}A API retorna coordenadas, não distâncias entre dois pontos quaisquer; então, depois de obter a latitude e a longitude do cliente, calcule a distância até cada loja da sua lista usando a matemática padrão de distância de círculo máximo sobre os dois pares de coordenadas. Ordene a sua lista de lojas por essa distância calculada e mostre as mais próximas.
Nem todo visitante vai compartilhar a localização. Para uma busca por endereço digitado, geocodifique primeiro o texto informado com /v1/forward para obter as coordenadas e depois execute o mesmo cálculo de distância até a loja mais próxima com base nesse resultado. Se você quiser que sugestões apareçam enquanto o cliente digita, em vez de esperar um endereço completo, o /v1/autocomplete pode dar suporte a um campo de sugestões que envia um place_id ou um texto resolvido para a mesma etapa de geocodificação direta.
Um aplicativo nativo pode pular a etapa de geocodificação reversa para encontrar lojas próximas, já que ele tem as coordenadas brutas do dispositivo para comparar diretamente com a sua lista de lojas. Mesmo assim, a geocodificação reversa se justifica ali pelo texto de confirmação mostrado ao cliente, algo como "Mostrando lojas perto de Trafalgar Square, Londres" em vez de um simples par de números, o que tranquiliza o cliente de que o aplicativo entendeu corretamente a localização dele antes de rolar pelos resultados.
Não presuma que todo endereço digitado será geocodificado com precisão de número de casa antes de executar o cálculo de distância. Uma consulta ampla, como apenas o nome de uma cidade, ainda retorna um resultado, mas com uma precisão mais grosseira, e tratar esse ponto aproximado como se identificasse o prédio exato do cliente deixará a sua classificação de "loja mais próxima" menos confiável do que os campos confidence e precision teriam indicado.
Quando duas lojas aparecem com distâncias calculadas quase idênticas, a distância sozinha não vai dizer ao cliente qual delas realmente lhe convém mais. Mostrar as duas, junto com detalhes como horário de funcionamento ou disponibilidade de estoque, dá ao cliente o fator decisivo em vez de uma ordenação arbitrária.
Mostre o endereço formatado do resultado da geocodificação reversa ao lado dos resultados das lojas, para que o cliente veja imediatamente se o local detectado ou resolvido corresponde ao lugar de onde ele realmente queria buscar e possa corrigi-lo se não corresponder.
Cada busca é uma requisição de geocodificação reversa ou direta, independentemente de com quantas lojas você a compare depois, já que o próprio cálculo de distância acontece no seu código quando você tem as coordenadas dos dois lados. Um localizador de lojas com uma quantidade moderada de tráfego diário cabe facilmente nas 2.500 requisições gratuitas por dia incluídas em toda chave.
Um localizador de lojas construído dessa forma precisa de exatamente uma requisição de geocodificação por busca do cliente, com tudo o que vem depois tratado localmente com base na sua própria lista de lojas. Todos os campos da resposta estão na documentação de geocodificação reversa.