0

I am getting to understand the theory behind H3 index system. I've been reading several papers on the topic of discrete global grid system, however, it seems to me there's nothing specifically about the algorithm of H3 index system. So, I have the following questions regarding the construction of H3:

  1. I know that the general method for creating grids is to start with a base regular polygon (e.g icosahedron), then divide its faces into smaller triangles, and projecting all the new vertices onto a sphere. There are many ways for the subdivision step, so what is the method that H3 is using for this subdivision step? Also, how the projection onto sphere works in H3?
  2. Does H3 use any special data structure to represent faces, vertices, edges, grids as well as polygon mesh (especially after project them to sphere?) and how i
  3. How does the lat/long to cell work?

Actually there are many other questions about this system I'd like to understand, but it happened that I could not find any online documentation about the theory/implementation of H3. If anyone has any related papers, please shere to me!!

I should mention that I'm looking for a method to divide the sphere into multiple grids where the grids somewhat have equal size, and it should be fast in the process of converting long/lat to grid and grid to long/lat. It seems to me that H3 is a suitable tool, but there might be other approach which has more documention to research. I would love to see your suggestions!

Any help would be appreciate!!

1 Answers1

0

Have you read the H3 docs? They include a fairly good overview of the algorithm.

Roughly speaking, the H3 grid is constructed by:

  • Starting with an icosahedron, oriented using the Dymaxion orientation
  • Establishing a base hexagon grid (resolution 0) on each face of the icosahedron, using a planar grid that is then projected with a gnomonic projection
  • Subdividing each cell into 7 children (or 6 for pentagons) to create increasingly finer resolutions.

I'm not precisely sure what you mean by "special data structure" here - H3 stores the base parameters for the grid in lookup tables, and uses a 64-bit index to represent cells, edges, and vertices.

You can find more information about the lat/lng to cell and cell to lat/lng algorithms in the docs.

nrabinowitz
  • 55,314
  • 10
  • 149
  • 165