如何解决从 h3 中的 Hexagon 层获取生成的十六进制数据
我一直在使用deck.HexagonLayer 并取得了巨大的成功。以下是我们如何每周显示 http 请求的屏幕截图:
目前它是一个周数组 data = new Array(51).fill(randomLatitiude(),randomLongitude())
,我们只是根据我们想要显示的周重新创建图层,例如 data[weekNumber]
这很棒,但我想显示基于总平均值的变化。示例结果将类似于此 Google 日历图表,但使用 Hexagon 层,显示与平均值的百分比差异:
计算方法是简单地获取每天的平均值并将百分比差异分配给每天的值,+% 或 -%。
六边形层有点棘手,您需要获得每个 weekNumber
的平均值,但是分配给 hex_id 的每个值都应该是平均值,而不是计数。现在我找不到一种方法来在创建图层时提取结果数据 new deck.HexagonLayer({ id: 'hexgaon-log-layer',data: hex_locations[week],...})
这将允许我手动执行。
我唯一的选择是重新创建每个 hex_id 的数据然后创建图层吗? 或者是否有更简单的方法来提取结果数据或设置一些选项来执行此操作?
手动执行可能需要使用 h3.geo_to_h3(latitude,longitude,level)
进行循环,如果可能,我想避免这种情况
解决方法
我认为这里可能有些混乱 - HexagonLayer
是基于视口的 hexbin 图层,不使用 H3 - 它在地图上绘制六边形,但这些六边形是动态创建的,并且不没有 H3 id。 H3HexagonLayer
使用 H3,并将 H3 索引作为输入。我不认为 Deck.gl 有一个层(还)可以为您将 lat/lng 转换为 H3 地址。
我认为你确实需要做你所描述的:
- 使用
h3.geoToH3
索引数据中的所有行。即使在浏览器中,这通常也是 100 到 1000 次操作/秒的数量级,因此它可能比您想象的要便宜。 - 计算指标列的总体平均值,然后计算平均值与每一行的偏差。
- 将预先计算的数据传递给 Deck.gl 进行渲染。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。