#pbf #mvt #rust

mvt-reader

一个用于解码和读取Mapbox矢量瓦片的Rust和WebAssembly库

10个版本 (6个稳定版)

1.5.0 2024年7月21日
1.4.0 2024年6月4日
1.2.0 2023年10月26日
1.1.0 2023年6月20日
1.0.0-alpha.32023年5月29日

#139 in WebAssembly

Download history 13/week @ 2024-04-19 9/week @ 2024-04-26 1/week @ 2024-05-03 26/week @ 2024-05-10 25/week @ 2024-05-17 61/week @ 2024-05-24 282/week @ 2024-05-31 102/week @ 2024-06-07 47/week @ 2024-06-14 18/week @ 2024-06-21 2/week @ 2024-06-28 23/week @ 2024-07-12 155/week @ 2024-07-19 69/week @ 2024-07-26 13/week @ 2024-08-02

每月260次下载

MIT 许可

30KB
436

mvt-reader

Rust中的Mapbox矢量瓦片读取器
一个用于解码和读取Mapbox矢量瓦片的Rust和WebAssembly库

特性

  • 在Rust中解码和读取Mapbox矢量瓦片
  • 提供API以访问矢量瓦片中的图层名称和功能
  • 可以作为JavaScript中的WebAssembly模块使用(由wasm功能启用)

构建项目

cargo build --release

运行测试

cargo test
wasm-pack build --release --target nodejs -d pkg/node -- --features wasm && npm test

用法

要在Rust项目中使用mvt-reader库,请将以下内容添加到您的Cargo.toml文件中

[dependencies]
mvt-reader = "1.5.0"

然后,您可以在代码中导入并使用此库

use mvt_reader::{Reader, ParserError};

fn main() -> Result<(), ParserError> {
  // Read a vector tile from file or data
  let data = vec![/* Vector tile data */];
  let reader = Reader::new(data)?;

  // Get layer names
  let layer_names = reader.get_layer_names()?;
  for name in layer_names {
    println!("Layer: {}", name);
  }

  // Get features for a specific layer
  let layer_index = 0;
  let features = reader.get_features(layer_index)?;
  for feature in features {
    todo!()
  }

  Ok(())
}

WebAssembly用法

要将mvt-reader库作为JavaScript中的WebAssembly模块使用,您可以使用npm安装它并在JavaScript代码中使用它

const { Reader } = require('mvt-reader')
const fs = require('fs')

// Example usage
const reader = new Reader(fs.readFileSync('path/to/tile.mvt'))
const layerNames = reader.getLayerNames()
console.log(layerNames)

// More code...

许可

本项目遵循MIT许可

依赖

~1–3.5MB
~56K SLoC