Pegue uma linha de endereço como “12B Flat 3” e pergunte o que cada parte significa, e você vai descobrir que a resposta depende da convenção, não da string em si. “12B” é um número de prédio com um sufixo de letra, ou um andar e uma unidade combinados? “Flat 3” é um qualificador separado para uma unidade específica dentro do prédio 12B, ou é redundante com ele? Uma pessoa familiarizada com a convenção local resolve isso na hora. Um software que analisa texto livre arbitrário de qualquer lugar do mundo precisa se esforçar muito mais, porque os mesmos caracteres têm significados diferentes dependendo da origem do endereço.
Os designadores de unidade e de apartamento variam muito entre países e até dentro deles. Abreviações como “Apt”, “Unit”, “Ste”, “Fl” ou um número solto depois de uma vírgula podem indicar, cada uma, uma subunidade de um prédio, e países diferentes, e até regiões diferentes dentro de um mesmo país, preferem convenções diferentes. Um analisador ajustado aos hábitos de uma região vai interpretar errado os de outra com frequência, descartando totalmente a informação da unidade ou associando-a à parte errada do endereço.
As caixas postais acrescentam uma complicação à parte, porque representam um destino de correspondência sem nenhuma relação direta com um prédio físico. Uma caixa postal tem uma localização real e significativa no sentido de que pertence a uma agência de correios específica, mas geocodificá-la para as coordenadas dessa agência é algo diferente de geocodificar um endereço de rua, e tratar os dois da mesma forma produz um resultado de aparência plausível, mas funcionalmente sem sentido, se o seu caso de uso realmente precisa de um ponto físico de entrega.
Os campos de precisão e de confiança existem em parte para revelar exatamente esse tipo de ambiguidade, em vez de escondê-la. Um endereço que inclui um designador de unidade não resolvido ou ambíguo ainda pode ser geocodificado com sucesso no nível do prédio, com precision indicando que a correspondência foi obtida no nível do prédio, sem confirmar que a subunidade específica foi analisada corretamente. Ler apenas as coordenadas e ignorar a precisão aqui pode criar uma falsa confiança de que um apartamento específico foi localizado, quando na verdade apenas o prédio foi.
Se a sua aplicação depende de precisão no nível da unidade, como a entrega em um apartamento específico dentro de um grande condomínio, vale a pena validar que o campo de unidade ou de apartamento foi realmente analisado e preservado separadamente, e não incorporado silenciosamente a uma correspondência que só resolveu o prédio. Testar a entrada de endereços com exemplos reais que contenham designadores de unidade, caixas postais e identificadores de prédio com várias partes, de vários países diferentes, e não apenas no formato do seu mercado de origem, vai revelar esse tipo de lacuna bem antes de um usuário encontrá-la. O nosso endpoint de geocodificação direta retorna os campos type e precision justamente para que você possa distinguir uma correspondência completa de uma aproximação no nível do prédio.
Um endereço no centro de uma cidade bem mapeada quase não diz nada sobre como o seu sistema lida com uma estrada rural, uma fronteira disputada ou uma consulta perto dos polos. Teste os casos difíceis de propósito.
Nem todo conjunto de dados com informações de localização de aparência pública pode ser usado legalmente dentro de um produto pago. Os termos de licenciamento, e não a disponibilidade técnica, costumam definir o limite real.
Quando uma consulta realmente não pode ser resolvida de forma confiável, não retornar nada é uma resposta melhor do que retornar um palpite disfarçado de fato. Veja o raciocínio por trás dessa escolha.