A maioria dos localizadores de lojas são listas disfarçadas de mapas. O cliente escolhe um estado, depois uma cidade, e então rola uma lista em ordem alfabética que não tem nada a ver com qual local é realmente o mais próximo. Uma rede de utilidades domésticas com algumas dezenas de lojas concluiu que isso estava ao contrário e reconstruiu a ferramenta em torno da distância.
A reconstrução começou pela entrada. Em vez de pedir ao cliente que escolhesse em listas suspensas, o novo localizador permitia que ele começasse a digitar um endereço ou um bairro e oferecia sugestões à medida que digitava, usando o /v1/autocomplete. Esse endpoint recebe um endereço parcial e retorna correspondências candidatas feitas exatamente para esse tipo de caixa de busca em tempo real, de modo que um cliente que digita "Oak" recebe uma pequena lista de nomes reais de ruas e lugares para escolher, em vez de digitar um endereço completo e torcer para que corresponda a algo no banco de dados da loja.
Depois que o cliente escolhia uma sugestão ou permitia que a página usasse sua localização aproximada, a rede precisava de mais uma coisa: um ponto de partida em coordenadas. Para os clientes que digitavam um endereço, isso vinha da geocodificação da sugestão escolhida pelo /v1/forward, que retorna uma correspondência de local com campos de latitude e longitude para um determinado endereço. Para os clientes que não digitavam nada, o site recorria ao /v1/ip, que lê o endereço IP do visitante e retorna coordenadas junto com cidade e região, dando ao localizador um ponto de partida razoável sem pedir nada.
A própria lista de lojas foi geocodificada uma vez, em um único lote, já que uma requisição em lote conta cada endereço de loja como um item cobrado. Com as coordenadas de todas as lojas cadastradas, a classificação virou aritmética: calcular a distância do ponto do cliente até cada loja, ordenar e mostrar as cinco mais próximas. Sem menus suspensos, sem rolagem alfabética, sem adivinhar em qual cidade vizinha uma loja poderia estar listada.
A rede manteve a ferramenta honesta sobre o que ela podia prometer. Como a geocodificação direta retorna uma correspondência para o que foi digitado, e não uma garantia de que o endereço existe exatamente como foi informado, o localizador sempre acompanhava a lista classificada de uma etapa de confirmação, permitindo que o cliente ajustasse o ponto de partida se o local sugerido não estivesse bem certo. Essa pequena verificação importava mais do que qualquer parte da lógica de classificação, já que um ponto de partida errado torna inútil até um cálculo de distância perfeito.
O tráfego do localizador era modesto, alguns milhares de consultas por mês somando preenchimento automático e geocodificação, o que ficava bem dentro da cota diária gratuita que vem com uma chave da My Geocode. A rede nunca precisou pensar no modelo de preços no dia a dia, já que o tráfego comum de varejo em um localizador de lojas raramente chega ao ponto em que o crédito pré-pago ou uma chave Unlimited se tornam a melhor opção, mas saber que essa margem existe a € 0,0001 por requisição significava que uma campanha de marketing ou o anúncio da inauguração de uma loja não quebraria nada.
Um localizador de lojas é um recurso pequeno, mas muitas vezes é o último passo do cliente antes de decidir ir até algum lugar, e acertar a classificação muda qual loja recebe a visita. Os detalhes dos dois endpoints, incluindo o formato dos campos e os limites de taxa, estão em /docs/address-autocomplete/, /docs/forward-geocoding/ e /docs/rate-limits/.
Um código postal e uma cidade que não batem em um formulário de pedido parecem um pequeno erro de digitação até virarem uma entrega enviada para uma região totalmente diferente do país.
Uma empresa de logística queria um alerta simples no momento em que um caminhão de entregas entrasse ou saísse do local de um cliente específico, sem construir ou licenciar uma plataforma completa de rastreamento de frota.
Uma ferramenta de colaboração queria que os colegas de equipe vissem, de relance, onde um colega estava e mais ou menos que horas eram para ele, sem que ninguém precisasse digitar isso no perfil.