¿Qué algoritmos usa Google en la geocodificación y búsqueda?

Es la Biblioteca de Geometría S2.

El código geográfico que usa en pocas palabras:

  • comenzar con un mapa de cubos
  • crear un árbol cuádruple con 30 niveles en cada cara
  • etiquetar las hojas y los nodos internos con 64 bits
  • use 3 bits para el índice de la cara
  • use n * 2 bits para identificar un nodo a profundidad n
  • agregar un solo 1 bit
  • almohadilla con 0 bits según sea necesario

Este código tiene varias propiedades agradables, por ejemplo, la profundidad de un nodo se puede calcular a partir del índice del bit menos establecido en su código. También es bastante sorprendente que cuando se usa S2 para geocodificar la superficie de la Tierra, los nodos de las hojas son más pequeños que 1 cm ^ 2.

Sin embargo, asegúrese de verificar el código, ya que tiene muchos detalles inteligentes, como el uso de la curva de Hilbert que ordena las etiquetas para que los nodos vecinos obtengan códigos cercanos.

Las áreas se representan como conjuntos de nodos, por lo que la mayoría de las operaciones en áreas son operaciones de conjuntos simples implementadas de una manera que elimina la redundancia (asegura que los nodos principales absorban a sus hijos).

Consulte Geometría en la esfera: Biblioteca S2 de Google para obtener una explicación detallada.