在任何给定分辨率下计算 h3 的地理空间索引

calculating geospatial indexes for h3 at any given resolution

我刚开始使用 Uber 的 h3geo (JavaScript),并且在每个分辨率下获得的索引数量是 what the docs suggest 的一半。

const nw = [-180,  90];
const ne = [ 180,  90];
const se = [ 180, -90];
const sw = [-180, -90];
let rect = [nw, ne, se, sw];
const res = 0;
const grid = h3.polyfill(rect, res);
console.log(grid.length);
// res 0 output → 61, should output 122
// res 1 output → 421, should 842
// res 2 output → 2951, should 5882
// res 3 output → 20580; should output 41162
// and so on

我做错了什么?

此外,h3geo docs for regions 首先显示 lat,然后显示 lng。如上图,我使用的是[lng, lat]。如果我翻转它们,我总是得到 grid.length 作为 0。如果我给一个 geoJson,我得到一个错误说 coordinates don't have a length property。我错过了什么?

已部分回答 here,但为了能见度也在这里回复:

  • h3.polyfill 需要 [lat, lng] 对,除非您为第三个 isGeoJson 参数传递 true。所以你目前正在填充反向坐标,这就是你得到错误数量的单元格的原因。
  • H3 polyfill 功能目前仅适用于宽度 < 180 度经度的形状。我们忽略缠绕顺序并尽可能使用较小的形状。如果将边界框分成两个形状,您应该会得到预期的结果。这就是 [lat, lng] 输入没有结果的原因。
  • h3-js 不支持完整的 GeoJSON 输入,您需要 geojson2h3 来处理 GeoJSON 结构。

这确实是 H3 的文档问题,我们会尝试更新它。