1
  1. 如果我们使用该kRing(H3Index origin, int k, H3Index* out)函数来获取周围的六边形,并且我们要在客户端(即haversine)上改进结果,我们就不必担心五边形,对吗?因为,AFAIK,五边形也有 H3 索引,并且出于所有意图和目的,就像六边形一样对待,对吗?

  2. 它是hexRange(H3Index origin, int k, H3Index* out)关心五边形的函数,对吗?

4

1 回答 1

1

出于某些意图和目的,是的,五边形只是去掉了一个轴向尺寸的六边形。它们具有正常的 H3 索引表示,可以与大多数将 H3 单元格作为输入的函数一起正常工作,并且在您描述的情况下应该没问题。主要考虑因素是:

  • 他们只有 5 个邻居,所以任何假设有 6 个邻居的代码都可能不正确
  • 它们返回 5 个顶点h3ToGeoBoundary,或 10 个顶点用于奇数分辨率(以考虑二十面体边缘的失真)
  • 它们的面积约为最小六边形单元的 5/6。
  • 如果您在运行时遇到五边形kRing,则不能再对返回集的形状做出任何假设 - 例如,与仅遇到六边形时相比,排列方式不同的单元格可能会更少。
  • 如果遇到五边形,某些函数(hexRange、和其他一些函数)将失败并显示错误代码。特别是一种快速算法,它在引擎盖下使用,如果遇到五边形,则退回到缓慢但正确的算法。仅当性能非常重要并且您愿意处理故障时才应使用。不处理五边形的函数通常在文档中明确指定。hexRinghexRangekRingkRinghexRange
于 2020-02-28T18:05:06.567 回答