Maps for Native and Multi-platform Apps¶
Numerous frameworks will help you integrate Stadia Maps in your mobile, desktop, or multi-platform application. The variety of choices can be overwhelming at first, so we've written a high-level overview of some popular options. This should help you decide what's best for your use case.
MapLibre Native¶
MapLibre Native is the premier open-source vector map rendering library. Ongoing development is sponsored by a number of industry leaders, and Stadia Maps was instrumental in creating the organization. The core is mostly written in C++, has wrappers that provide a more native interface for iOS, Android, and other platforms, and supports native rendering APIs per-platform (ex: Metal on iOS).
Tip
If you are developing a native iOS, Android, or desktop app with the first-party stack (ex: Xcode + Swift for iOS), MapLibre Native is probably the best fit.
Get Started with MapLibre Native
Flutter MapLibre GL¶
Flutter MapLibre GL is a Flutter wrapper around MapLibre Native (iOS and Android) and MapLibre GL JS (web).
Tip
This package should probably be your first choice if you need to use vector tiles in a Flutter application, or if you care a lot about rendering performance and smoothness.
Flutter MapLibre GL uses the battle-tested MapLibre libraries under the hood, so it's both correct and performant on a variety of platforms. If you've used MapLibre on other platforms, this will feel at least somewhat familiar. And it even makes it easy to add annotations in a cross-platform way.
Get Started with Flutter MapLibre GL
flutter_map
¶
flutter_map
is a Flutter-first map library.
It is currently built from the ground up (not a wrapper for an existing native library),
and boasts broad cross-platform compatibility due to its design.
It is loosely inspired by Leaflet, a JavaScript raster map library known for its simple API,
and features a wide range of plugins.
Tip
flutter_map
excels at interactive raster maps. Of the available multi-platform libraries, it
has the simplest API and has compatibility with the greatest number of platforms.
flutter_map
is a good choice if you only need a 2D raster map and want broad compatibility.
However, if you want to render vector tiles,
Flutter MapLibre GL is a better choice at this time.
There are ongoing efforts within the flutter_map
community to add a performant vector tile renderer.
MapLibre React Native¶
MapLibre React Native is a React Native wrapper
around MapLibre Native.
You get all the performance of native and any improvements in the core library for free!
If you previously used rnmapbox
, it is essentially a drop-in replacement.
The project also has extensive examples and documentation in the project's
GitHub repository.