Можем ли мы считать пентагоны равными шестиугольникам для неточных геокурений с H3? - PullRequest
1 голос
/ 28 февраля 2020
  1. Если мы используем функцию kRing(H3Index origin, int k, H3Index* out), чтобы получить окружающие шестиугольники, и мы собираемся уточнить результаты на клиенте (то есть haversine), нам никогда не придется беспокоиться о пятиугольниках, не так ли? Потому что, AFAIK, у пятиугольников также есть индексы H3, и они, для всех намерений и целей, обрабатываются точно так же, как шестиугольники, правильно?

  2. Это функция hexRange(H3Index origin, int k, H3Index* out), которая заботится о пятиугольниках, правильно ?

1 Ответ

1 голос
/ 28 февраля 2020

Для некоторых намерений и целей, да, пятиугольники - это просто шестиугольники с одним удаленным осевым измерением. Они имеют нормальное представление индекса H3, будут корректно работать с большинством функций, которые принимают ячейки H3 в качестве входных данных, и должны подойти в случае, который вы описываете. Основные соображения:

  • Они имеют только 5 соседей, поэтому любой код, предполагающий шесть соседей, может быть неправильным
  • Они возвращают 5 вершин из h3ToGeoBoundary или 10 вершин для нечетных разрешений (чтобы учесть искажения на краях икосаэдра)
  • Они имеют примерно 5/6 площади самых маленьких шестиугольных ячеек.
  • Если вы столкнулись с пятиугольником при запуске kRing, вы не можете больше делать предположения о форме возвращаемого набора - например, у вас может быть меньше ячеек в другом расположении, чем если бы вы встречали только шестиугольники.
  • Некоторые функции (hexRange, hexRing и несколько других) потерпит неудачу с кодом ошибки, если они встретят пятиугольник. hexRange в частности, это быстрый kRing алгоритм, который kRing использует под капотом, возвращаясь к медленному, но правильному аль go, если встречается пятиугольник. Вы должны использовать hexRange, только если производительность очень важна, и вы готовы справиться со сбоями. Функции, которые не обрабатывают пятиугольники, как правило, четко определены в документах.
...