首页 > 解决方案 > H3 索引(分辨率 8)和 kepler.gl 映射问题

问题描述

我正在尝试在 kepler.gl 中映射附加的 h3index 数据集。我使用以下 scala 函数以分辨率索引 8 生成这些。

val geoToH3 = udf{ (latitude: Double, longitude: Double, resolution: Int) => 
  H3.instance.geoToH3(latitude, longitude, resolution) 

https://drive.google.com/file/d/1Wffsi1GoRGox8r3s_HYWRqFTtKKP_s8B/view?usp=sharing

当我在终端中使用 h3 获取相同的经纬度值时,它给了我不同的 hex_index:

例子:

./bin/geoToH3 --resolution 8 --latitude 46.81355 --longitude -71.22968

返回882bac516bfffff

这两个 hex_indexes 都正确吗?

此外,当我尝试在 kepler.gl 中进行映射时,我什么也看不到。

标签: kepler.glh3

解决方案


H3 索引是一个 64 位整数,通常编码为十六进制字符串。看起来您的 Scala 代码正在以 base-10 格式输出整数,这在内存中可能很好(对于支持 64 位整数的语言),但通常不用作数据交换格式。特别是 Javascript,不支持 64 位整数,需要十六进制字符串。

所以 CLI 输出882bac516bfffff, 是正确的。您可能需要更新 Scala 代码以十六进制打印其输出。

至于开普勒,你用的是H3层吗?您需要在数据中指定 H3 层和包含 H3 索引的列。


推荐阅读