Qualidade dos dados

Por que o arredondamento de coordenadas importa mais do que as pessoas pensam

É comum ver coordenadas cortadas para poucas casas decimais antes de serem armazenadas ou exibidas, muitas vezes só para deixar um número com aparência mais organizada em uma tabela ou em uma URL. O que é fácil de não perceber é que cada casa decimal de um valor de latitude ou longitude corresponde a uma distância específica e calculável no solo, e arredondar dígitos é descartar precisão física real, e não apenas poluição visual.

Perto da linha do equador, uma coordenada com quatro casas decimais distingue locais a cerca de dez metros de distância, perto da largura de um prédio. Use duas casas decimais em vez disso, e você passa a distinguir locais a quase um quilômetro de distância, o que facilmente é a diferença entre um bairro e o seguinte. Arredonde para zero casas decimais e você só consegue distinguir graus inteiros, que abrangem muitos quilômetros. A distância exata por casa decimal diminui um pouco à medida que você se afasta do equador em direção aos polos, especificamente no caso da longitude, já que os meridianos convergem, mas a relação geral entre casas decimais e distância no mundo real vale em qualquer lugar.

Isso se torna um problema real em algumas situações comuns. Armazenar coordenadas em uma coluna de banco de dados com precisão decimal insuficiente trunca os dados silenciosamente na entrada, e nada nessa falha parece um erro, já que o número resultante continua sendo uma coordenada válida, apenas menos precisa. Passar coordenadas por um sistema que arredonda para fins de exibição e depois usar esse valor arredondado em um cálculo posterior, como uma verificação de distância ou uma busca por proximidade, propaga o arredondamento original para todos os resultados seguintes. Copiar coordenadas manualmente entre sistemas, quando uma pessoa corta dígitos porque o valor completo parecia desnecessariamente longo, tem o mesmo efeito.

O hábito seguro é armazenar e repassar coordenadas com precisão decimal suficiente para o seu caso de uso real, em geral pelo menos cinco a seis casas decimais para qualquer coisa que precise continuar significativamente precisa no nível de prédio ou de rua, e só arredondar para exibição na última etapa, logo antes de mostrar um número a uma pessoa, nunca antes de um cálculo. Se você realmente só precisa distinguir cidades, arredondar antes não tem problema, mas isso deve ser uma escolha deliberada baseada no que a sua aplicação precisa, e não um acidente causado pela largura de uma coluna do banco de dados ou por um hábito de formatação.

As coordenadas retornadas pela geocodificação direta e pela geocodificação reversa aqui têm precisão decimal suficiente para casos de uso no nível de prédio. O que você faz com essa precisão depois, especialmente em relação ao armazenamento e ao arredondamento, vale a pena ser verificado de forma deliberada, em vez de presumir que ela passa inalterada por todas as etapas do seu pipeline.