• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

maplibre/maplibre-rs: Native Maps for Web, Mobile and Desktop

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

maplibre/maplibre-rs

开源软件地址(OpenSource Url):

https://github.com/maplibre/maplibre-rs

开源编程语言(OpenSource Language):

Rust 96.7%

开源软件介绍(OpenSource Introduction):

maplibre-rs

Native Maps for Web, Mobile and Linux
A map rendering library written in Rust.

Project State

This project is in a proof-of-concept state. The proof of concept is done except for text rendering. The Rust ecosystem is suited very well for this project.

In the future, this project could be adopted and supported by Maplibre to implement a next-gen mapping solution.

Description

maplibre-rs is a portable and performant vector maps renderer. We aim to support web, mobile and desktop applications. This is achieved by the novel WebGPU specification. Plenty of native implementations are already implementing this specification. On the web, it is implemented by Firefox, Chrome and Safari. There are also standalone implementations that directly use Vulkan, OpenGL or Metal as a backend. Those backends allow maplibre-rs to run on mobile and desktop applications.

Rust is used as a Lingua-franka on all platforms. This is made possible by WebAssembly, which allows us to use Rust for web development.

The goal of maplibre-rs is to render maps to visualize data. Right now the goal of maplibre-rs is not to replace existing vector map renderers like Google Maps, Apple Maps or MapLibre. The current implementation serves as a proof-of-concept of the used technology stack. It is unclear whether the high-performance requirements of rendering maps using vector graphics are achievable using the current stack.

Talk: World in Vectors

(External Link)

(Older Talk on YouTube)

Current Features

  • Runs on Linux, Android, iOS, macOS, Firefox and Chrome
  • Render a vector tile dataset
  • Simple navigation powered by winit
  • Multithreaded on all platforms
  • Querying feature data

Missing Features

  • Rendering Text
  • Per-Feature Rendering
  • Rendering:
    • Labels
    • Symbols
    • Raster data
    • 3D terrain
    • Hill-shade (DEM)
  • Collision detection
  • Support for:
    • GeoJSON
  • API for:
    • TypeScript
    • Swift
    • Java/Kotlin

Building & Running

Clone the project

git clone https://github.com/maplibre/maplibre-rs.git

Build and run it on a desktop

cargo run -p maplibre-demo

More information about running the demos on different platforms can be found here.

Rust Setup

Install rustup because this is the recommended way of setting up Rust toolchains.

The toolchain will be automatically downloaded when building this project. See ./rust-toolchain.toml for more details about the toolchain.

Documentation

This generates the documentation for this crate and opens the browser. This also includes the documentation of every dependency.

cargo doc --open

You can also view the up-to-date documentation here.

Acknowledgements

The renderer of maplibre-rs is heavily based on the renderer of bevy. Bevy's renderer was forked into this project in order to have a solid and generic base.




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap