2个版本
新 0.1.1 | 2024年8月13日 |
---|---|
0.1.0 | 2024年8月13日 |
#66 in 地理空间
每月 190 次下载
415KB
2.5K SLoC
geojson-vt-rs — GeoJSON矢量瓦片
将C++ GeoJSON-VT 库移植到Rust,用于动态将GeoJSON切片成矢量瓦片。
这是一个用于动态将GeoJSON数据切片成矢量瓦片的高度有效率的Rust库,主要设计用于在浏览器端(不使用服务器)渲染和交互大型地理空间数据集。
创建用于驱动 maplibre-rs 中的GeoJSON,但也可以用于其他可视化平台,如 Leaflet、OpenLayers 和 d3,以及Node.js服务器应用程序。
生成的瓦片符合矢量瓦片规范的JSON等效标准。为了使数据渲染和交互快速,瓦片被简化,保留了每个缩放级别合适的最低细节水平(简化形状,过滤掉微小的多边形和多段线)。
有关库如何工作的更多信息,请参阅Mapbox博客。
还有一个C++11版本的移植: geojson-vt-cpp
选项
您可以使用选项结构对结果进行微调,尽管默认值是合理的,并且适用于大多数用例。
Options {
max_zoom: 18, // max zoom to preserve detail on; can't be higher than 24
index_max_zoom: 5, // max zoom in the tile index
index_max_points: 100000, // max number of points per tile in the tile index
generate_id: false, // whether to generate feature ids, overriding existing ids
tile: TileOptions {
tolerance: 3., // simplification tolerance (higher means simpler)
extent: 4096, // tile extent
buffer: 64, // tile buffer on each side
line_metrics: false, // enable line metrics tracking for LineString/MultiLineString features
}
}
默认情况下,大于 index_max_zoom
缩放级别的瓦片是动态生成的,但您可以通过将 index_max_zoom
和 max_zoom
设置为相同的值并将 indexMaxPoints
设置为 0
来预先生成所有可能的瓦片。
generate_id
选项忽略特征对象上的现有 id
值。
该库仅在最高24个缩放级别上操作。
依赖项
~1.7–2.7MB
~56K SLoC