5个不稳定版本
0.3.0 | 2020年2月27日 |
---|---|
0.2.2 | 2020年2月19日 |
0.2.1 | 2020年2月18日 |
0.2.0 | 2020年2月18日 |
0.1.0 | 2020年2月15日 |
879 在 数据结构 中排名
每月下载量 21
在 spaceindex-py 中使用
68KB
1.5K SLoC
spaceindex
spaceindex 是构建r-trees的工具。
- API文档
- Cargo包:spaceindex
安装
将以下内容添加到您的 Cargo.toml
[dependencies]
spaceindex = "0.3"
基本用法
要创建一个新的 RTree
,使用
use spaceindex::rtree::RTree;
// Creates a 2-dimensional RTree
let mut rtree : RTree<()> = RTree::new(2);
// This region is the rectangle whose lower-left corner is at (0,0) and whose upper-right corner is at (2, 2)
rtree.insert(((0.0, 0.0), (2.0, 2.0)), ()).expect("failed to insert");
// This region goes from (1, 0) to (3, 3).
rtree.insert(((1.0, 0.0), (3.0, 3.0)), ()).expect("failed to insert");
// Both rectangles contain the point (1, 1)
assert_eq!(rtree.point_lookup((1.0, 1.0)).len(), 2);
// No rectangle should contain the point (-1, 0)
assert!(rtree.point_lookup((-1.0, 0.0)).is_empty());
Python模块
还包括 pyspaceindex
,这是一个Python模块,提供了一个简单的接口来操作二维RTree。
构建说明
要构建 pyspaceindex
- 从pypi安装出色的 maturin 包。
- 导航到此存储库中的
pyspaceindex
目录,然后运行maturin build
来构建一个wheel副本。要安装模块到当前虚拟环境,运行maturin develop
代替。
示例用法
import pyspaceindex as psi
# Make an RTree instance
tree = psi.RTree()
# A region is described by a tuple (min_x, min_y, max_x, max_y).
tree.insert((0, 0, 3, 3), 12)
# A tree can contain data, as well.
tree.insert((-1, -1, 2, 2), 99)
# Query the tree for whether it contains a point
assert sorted(tree.query(0.5, 1.0)) == [12, 99]
许可证
许可协议为以下之一
- Apache许可证,版本2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT),任选其一。
依赖项
~1–2.8MB
~52K SLoC