7 个版本 (破坏性更新)
新增 0.5.0 | 2024年8月16日 |
---|---|
0.4.1 | 2023年9月17日 |
0.4.0 | 2023年7月25日 |
0.3.0 | 2023年4月20日 |
0.0.1 | 2022年11月4日 |
#89 在 WebAssembly
每月下载量:181
2.5MB
2K SLoC
mapbox-gl-rs
mapbox-gl-js 的非官方 Rust 绑定
这是什么?
mapbox-gl-js 是一个开源库,用于在网页浏览器中渲染美丽的基于矢量的地图,由 Mapbox 和 OSS 社区构建。本项目旨在通过 WebAssembly 创建 mapbox-gl-js
的 Rust 绑定,以便 Rustacean 可以仅使用 Rust 构建具有美丽 Mapbox 地图的 web 应用。
注意: mapbox-gl-rs
处于超级初生阶段。大多数功能都是 WIP。如果您感兴趣,请耐心等待!此外,任何贡献,例如错误报告、功能请求、发送补丁都受到欢迎。
它是如何工作的?
wasm-bindgen 提供了一个 Rust 库和工具,用于将 Rust 代码编译成 WebAssembly,这使得基于 Rust 的应用程序,例如 egui 和 RustPython 可以在网页浏览器上运行。大多数人不知道 wasm-bindgen
还允许从 Rust 调用 JavaScript 代码。本项目利用这一特性为 mapbox-gl-js
提供了 Rust 绑定。
使用方法
将 mapboxgl
添加到您的 Cargo.toml
mapboxgl = "0.4"
在 html 中添加以下 CSS 和 JavaScript 片段,以便加载 mapboxgl JavaScript 模块。
<link href='https://api.mapbox.com/mapbox-gl-js/v2.10.0/mapbox-gl.css' rel='stylesheet' />
<script src="https://api.mapbox.com/mapbox-gl-js/v2.10.0/mapbox-gl.js"></script>
构建并运行您的应用程序。如果您是 Yew 用户,以下命令将自动构建并启动一个 web 服务器
trunk serve
支持的功能
- 地图
- 事件
- 标记和控件
- 地理和几何
- 用户交互处理器
- 源
- 事件和事件类型
示例
- simple: Hello world
- on-load: 捕获地图加载事件
- popup: 显示弹出控制
- geojson-source: 加载GeoJSON源并显示线条
- set-data: 使用set-data实时更新路径
- add-image: 在地图上显示图像
许可证
本项目采用MIT许可证。
依赖项
~9–12MB
~223K SLoC