🧭 Guardrails de Geocoding (OpenCage)
Documentação KOLOS

🧭 Guardrails de Geocoding (OpenCage)

Contexto

Usuários podem perceber que o ponto exibido no Google Maps “não bate” com o endereço digitado.

As causas mais comuns são:

  • 🌍 Geocoding por texto: quando o GPS não está disponível, usamos geocoding forward. Se a consulta for ambígua ou pouco precisa, o provedor pode retornar um ponto aproximado.

Nota: a opção de GPS no cadastro foi removida (ver mudança específica), então o cadastro depende do endereço para obter latitude/longitude.

Decisão

  • Adicionar um limite mínimo de confiança do OpenCage (confidence) para aceitar resultados.
  • Melhorar a UX do cadastro para deixar explícito que GPS = localização atual.

Alternativa descartada (por ora):

  • Implementar seleção manual em mapa (mais esforço e UI complexa).

Implementação

  • OpenCage client passa a rejeitar resultados com confidence abaixo de um limiar configurável.
  • Configuração exposta via OPENCAGE_MIN_CONFIDENCE (default 7).
  • UI do cadastro explica o comportamento do GPS e oferece botão para limpar coordenadas.

Passos (configuração)

  • Defina (opcional) no .env:
    • OPENCAGE_MIN_CONFIDENCE=7

Validação

  • Conclua o cadastro: o sistema usa OpenCage para preencher latitude/longitude quando faltarem.
  • Se o ponto ainda ficar impreciso, verifique se o endereço tem número e CEP corretos.

Impacto

  • Ajustes em OpenCageGeocodingClient para aplicar guardrail por confiança.
  • Ajustes na tela de cadastro para explicitar GPS e permitir “Limpar GPS”.