TG 是一个面向 C 语言的几何图形库,体积小,速度快,易于使用。它专为需要实时地理空间的程序而设计,例如地理围栏、监控和流式分析。
- 实现 OGC 简单特征,包括 Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon 和 GeometryCollection。
- 优化了 多边形索引,引入了两种新结构。
- 读取和写入 GeoJSON、WKT、WKB 和 GeoBIN。
- 提供一个纯粹的功能性 API,可重入且线程安全。
- 空间谓词,包括"交叉","覆盖","接触","相等"等
- 使用 Emscripten 编译为 WebAssembly
- 使用清洁器和 Valgrind 的测试套件 (tests/README.md), 覆盖率为 100%。
- 独立的库,封装在单个 tg.c 源文件中。
- 表现相当不错。[基准测试]
性能
TG 使用 全新的 索引结构来加速 几何体谓词。在现代硬件上,它可以每秒索引超过 10GB 的点数据,同时使用不到 7% 的额外内存,并且可以每秒执行超过 1000 万次点到多边形的操作,即使使用包含超过 10K 个点的大型多边形时也是如此。以下基准测试提供了一个示例: