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 cliente que deixa o campo de código postal em branco não necessariamente forneceu dados ruins. A geocodificação direta geralmente consegue preencher essa lacuna a partir do restante do endereço.
Envie o texto que você tiver, no mínimo rua e cidade, para /v1/forward. O objeto components do resultado inclui o código postal da melhor correspondência, mesmo que a entrada nunca tenha mencionado um.
GET /v1/forward?q=1600 Pennsylvania Avenue, Washington&limit=1{
"status": "ok",
"query": "1600 Pennsylvania Avenue, Washington",
"results": [
{
"formatted": "1600 Pennsylvania Avenue NW, Washington, DC 20500",
"lat": 38.8977,
"lon": -77.0365,
"type": "address",
"precision": "house",
"confidence": 0.97,
"place_id": "def456",
"components": {"postcode": "20500", "city": "Washington", "region": "DC", "country": "US"}
}
]
}Nem todo endereço é tão completo. Uma consulta só com cidade e região, como "Springfield, Illinois", ainda pode retornar um resultado, mas o código postal em components vai cobrir a cidade inteira em vez de um prédio, e o campo precision vai indicar algo mais grosseiro do que "house". Essa diferença importa se você pretende imprimir o código postal retornado em uma etiqueta de envio, e não apenas usá-lo para uma estimativa regional, já que um código postal de nível de cidade não oferece a mesma garantia que um de nível de casa.
Verifique os campos precision e confidence antes de tratar o código postal retornado como confiável. Uma precisão "house" com uma pontuação de confiança alta significa que a correspondência foi específica o suficiente para confiar diretamente no valor do código postal. Uma precisão mais grosseira, como uma correspondência em nível de rua ou de cidade, significa que o código postal cobre uma área maior e pode não corresponder ao endereço exato que o cliente quis dizer.
Esta é uma única consulta, uma requisição da sua cota diária para um endereço. Fazer isso para cada envio de formulário de checkout ou de cadastro que chega sem código postal é um uso normal e raramente vai chegar perto das 2.500 requisições gratuitas incluídas todos os dias com uma chave ou a partir de um único endereço IP sem chave.
Um array de resultados vazio, ou um resultado com pontuação de confiança baixa, significa que o endereço era vago demais para ser resolvido. Nesse caso, peça o código postal diretamente ao cliente em vez de adivinhar, já que um código postal errado em uma etiqueta de envio causa mais problemas do que um em branco.
Alguns países não usam códigos postais, ou os usam de forma tão inconsistente que o objeto components simplesmente omite o campo em determinado resultado. Não trate a ausência do campo de código postal como um erro por si só: verifique primeiro o país no objeto components e só sinalize a linha para revisão se o país em questão for um em que normalmente se espera um código postal.
Depois de ter um código postal candidato, uma chamada direta a /v1/postcode com esse código e o país do objeto components é uma forma rápida de conferi-lo de maneira independente, especialmente útil quando a confiança da geocodificação direta original ficou no limite, em vez de claramente alta ou claramente baixa.
Preencher um código postal ausente dessa forma economiza um campo de formulário e uma ida e volta com o cliente. As definições completas dos campos estão na documentação da consulta de código postal e na documentação da geocodificação direta.