Не существует реализации псевдокода, о которой я знаю, но есть довольно подробное объяснение в документации . Грубо говоря:
- Выберите грань икосаэдра (0-20), на которой лежит точка (используя квадратное расстояние в трехмерном пространстве)
- Проецируйте точку в координаты IJK, ориентированные на грань
- Преобразование координат IJK в индекс H3 путем вычисления цифр индекса при каждом разрешении и установки соответствующих битов
Основные логи c можно найти здесь и здесь . Это не тривиально для реализации - если нет веской причины избегать установки, это будет гораздо более простой и надежный вариант.