Zonkod está diseñado para ser simple, rápido y universal. Pero hay mucha tecnología detrás. ¡Vamos a explorarla!

La Tierra dividida en exactamente 10.000 superficies de precisión similar. Una idea aproximada de cómo funciona Zonkod.

Hace algunos años, durante un viaje, intenté introducir las coordenadas geográficas de un restaurante en el sistema de navegación de un coche de alta gama. A pesar de ser ingeniero con doctorado, estuve quince minutos intentándolo sin éxito.
En ese momento comprendí que había un problema real sin resolver. Por suerte, logré cenar esa noche ;)

Esa era LA solución: un número de teléfono geográfico: fácil de marcar, universal y conocido por todos en la Tierra.
Excepto que es sumamente difícil dividir una esfera en exactamente 100.000.000.000.000 superficies idénticas. De hecho, es imposible.

Luego llegó la segunda gran idea: olvidarse de las superficies idénticas y centrarse en lo que realmente importa: la precisión.
Toma una ubicación. Codifica su posición en un número y luego decodifica ese número para obtener una nueva ubicación. Lo único que importa es que esas dos ubicaciones no estén demasiado separadas. La precisión del sistema reside en la distancia máxima entre ellas en el peor de los casos. ¡Esto es lo único que importa!
También tenía que ser simple y reconocible a primera vista, de ahí la precisión simple y el ZK: inicial.

Otra limitación es la facilidad de codificación y decodificación, así como la reproducibilidad total. Todos los sistemas (desde un pequeño dispositivo IoT integrado hasta un teléfono móvil, un ordenador de sobremesa o un ordenador central) deben ofrecer siempre el mismo resultado.
Pero las computadoras tienen una precisión finita. Para la computación científica y técnica, utilizan lo que se conoce como números de coma flotante. Estos también son obligatorios al usar trigonometría u otras funciones complejas. Desafortunadamente, existen muchos sistemas, lenguajes y bibliotecas diferentes, todos con pequeñas diferencias entre sí. Además, los sistemas de coma flotante son lentos, costosos o ambas cosas.
Entonces: sin trigonometría, sin coma flotante, solo aritmética de enteros, porque es la única solución determinista.
El diseño de este sistema llevó mucho tiempo, pero finalmente se logró. El resultado, disponible hoy, es Zonkod. Esta tecnología está en trámite de patente. Uno de sus objetivos principales es establecer un estándar garantizando que solo exista un ZK:, evitando así futuras disputas sobre formatos.
Podemos calcular la mejor precisión teórica posible para una longitud numérica determinada. Para 14 dígitos, es de 1,5969 m. La codificación Zonkod es casi perfecta: su precisión es de 1,5988 m, o 99,9 % de la óptima. En todas partes. Esto es importante porque maximiza la utilidad de cada dígito.

Zonkod se ha implementado en muchos lenguajes diferentes, incluidos C, JavaScript, WASM, FORTRAN y Python. Todos dan exactamente los mismos resultados, hasta el último dígito.
Incluso se ha adaptado a COBOL, un lenguaje diseñado en 1959 para contabilidad empresarial, que nunca se concibió para realizar cálculos geodésicos. Y, sin embargo, funciona. Si Zonkod funciona en COBOL, funciona en cualquier plataforma.

La velocidad y la compacidad también son importantes.
En un Arduino Nano (ATmega328P de 8 bits, 16 MHz), un programa completo de codificación y decodificación sin sistema operativo (incluyendo E/S y un generador de números pseudoaleatorios) ocupa 11.956 bytes de ROM y 192 bytes de RAM.
Realiza un viaje de ida y vuelta completo en 1,48 ms de media. En un teléfono móvil o un ordenador de sobremesa, lo hacemos en nanosegundos.
Zonkod transforma un complejo problema geométrico en una simple operación con números enteros. El resultado es un código de ubicación lo suficientemente compacto para un microcontrolador de 8 bits, lo suficientemente rápido para ejecutarse en cualquier sistema, lo suficientemente preciso para el uso diario e idéntico en todos los dispositivos del planeta. Un número, un estándar, un ZK:.