4 个版本 (2 个重大变更)
0.3.1 | 2023年5月1日 |
---|---|
0.3.0 | 2023年4月28日 |
0.2.0 | 2023年1月29日 |
0.1.0 | 2022年9月21日 |
#688 in 数据结构
58KB
1K SLoC
HexTree
hextree提供了用H3单元表示地理区域的树结构。
主要结构包括
- HexTreeMap:H3单元到值的映射。
- HexTreeSet:用于碰撞检测的H3单元集合。
可以将HexTreeMap
与HexTreeSet
视为与HashMap
与HashSet
类似。
这与HashMap<H3Cell, V>
有何不同?
hextree的关键特性是其键(H3单元)是分层的。例如,如果您之前插入了一个低分辨率单元的条目,但后来查询一个更高分辨率的子单元,则树返回低分辨率单元的值。此外,通过压缩,树可以自动将相邻的高分辨率单元合并到其父单元中。对于非常大的区域,压缩过程可以继续到最低分辨率单元(res-0),可能从树中删除数百万个冗余单元。例如,表示北美的一个由4,795,661个res-7单元组成的集合,合并为一个包含42,383个元素的HexTreeSet
。
hextree的内部结构正好符合H3单元的语义。树的根有122个分辨率-0节点,接着是15级的7叉节点。占用节点或叶子节点的级别与其对应的H3单元分辨率相同。
功能
serde
:通过serde进行序列化的支持。
许可证
许可协议为以下之一
- Apache许可证,版本2.0(《LICENSE-APACHE》或http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(《LICENSE-MIT》或http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确表示,否则根据Apache-2.0许可证定义的您有意提交以包含在作品中的任何贡献,应如上双许可,不附加任何额外条款或条件。
依赖项
~175KB