-
Notifications
You must be signed in to change notification settings - Fork 42
Add additional roadmap items MapLibre Native #480
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
CommanderStorm
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have a few rewordings, most of them to make the engineering-heavy text a bit more than one sentence each 😉
|
|
||
| We are experimenting with various ways to add plugins for extending MapLibre Native. | ||
|
|
||
| [Plugin Layers](https://maplibre.org/maplibre-native/ios/latest/documentation/maplibre-native-for-ios/pluginlayers) allow custom rendering to intergrate with custom style layers (as of October 2025, only available for iOS). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| [Plugin Layers](https://maplibre.org/maplibre-native/ios/latest/documentation/maplibre-native-for-ios/pluginlayers) allow custom rendering to intergrate with custom style layers (as of October 2025, only available for iOS). | |
| [Plugin Layers](https://maplibre.org/maplibre-native/ios/latest/documentation/maplibre-native-for-ios/pluginlayers) allow custom rendering to intergrate with custom style layers. | |
| As of October 2025 they are available for iOS. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you put it on a separate line it is not clear what it belongs to. Maybe sections:
Plugin Layers
Plugin Layers allow custom rendering to intergrate with custom style layers.
As of October 2025, available for iOS.
Other Plugin APIs
See #3703 for other suggested plugin APIs.
Cross-Platform Plugins
Meta developed a cross-platform plugin API that allows extending MapLibre Native with plugins written in C++. They have pledged to upstream this work.
| Instead of storing glyphs and icons per tile, store them in a dynamic texture atlas shared between all tiles. This allows for lower memory usage. | ||
|
|
||
| This was implemented in [#3198](https://github.com/maplibre/maplibre-native/pull/3198). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Instead of storing glyphs and icons per tile, store them in a dynamic texture atlas shared between all tiles. This allows for lower memory usage. | |
| This was implemented in [#3198](https://github.com/maplibre/maplibre-native/pull/3198). | |
| Instead of storing glyphs and icons per tile, we now store them in a dynamic texture atlas shared between all tiles. | |
| This allows for on average 4,5x lower memory usage in our benchmarks. | |
| This was implemented in [#3198](https://github.com/maplibre/maplibre-native/pull/3198) by Alex Cristici. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The memory usage is not the total memory usage but for the glyphs. I think it is a bit misleading that way.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fair, thanks
How about:
| Instead of storing glyphs and icons per tile, store them in a dynamic texture atlas shared between all tiles. This allows for lower memory usage. | |
| This was implemented in [#3198](https://github.com/maplibre/maplibre-native/pull/3198). | |
| Instead of storing glyphs and icons per tile, we now store them in a dynamic texture atlas shared between all tiles. | |
| This allows for significantly lower memory usage for glyphs and icons. | |
| This was implemented in [#3198](https://github.com/maplibre/maplibre-native/pull/3198) by Alex Cristici. |
| Level-of-detail (LOD) controls allow control over what zoom level is rendered for tiles that are further away. This is especially important for navigation use cases where the camera pitch can cause many tiles to be visible. | ||
|
|
||
| Implemented in [#2958](https://github.com/maplibre/maplibre-native/pull/2958). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
again a bit more fluff
| Level-of-detail (LOD) controls allow control over what zoom level is rendered for tiles that are further away. This is especially important for navigation use cases where the camera pitch can cause many tiles to be visible. | |
| Implemented in [#2958](https://github.com/maplibre/maplibre-native/pull/2958). | |
| Level-of-detail (LOD) controls allow control over what zoom level is rendered for tiles that are further away. | |
| This is especially important for navigation use cases where the camera pitch can cause many tiles to be visible. | |
| Developers can now dynamically adjust the zoom level of tiles based on runtime conditions, such as drops in FPS or camera tilt during active navigation. | |
| For example, tiles farther from the camera can automatically use lower zoom levels when the screen is tilted, ensuring smooth performance on large display infotainment devices without compromising the user experience. | |
| Implemented in [#2958](https://github.com/maplibre/maplibre-native/pull/2958) by [@alasram](https://github.com/alasram). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why 'automatically'? You need to manually control it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I mean if I control it, it is automatic.
I can see how it is misleading.
| Level-of-detail (LOD) controls allow control over what zoom level is rendered for tiles that are further away. This is especially important for navigation use cases where the camera pitch can cause many tiles to be visible. | |
| Implemented in [#2958](https://github.com/maplibre/maplibre-native/pull/2958). | |
| Level-of-detail (LOD) controls allow control over what zoom level is rendered for tiles that are further away. | |
| This is especially important for navigation use cases where the camera pitch can cause many tiles to be visible. | |
| Developers can now dynamically adjust the zoom level of tiles based on runtime conditions, such as drops in FPS or camera tilt during active navigation. | |
| For example, tiles farther from the camera can use lower zoom levels when the screen is tilted, ensuring smooth performance on large display infotainment devices without compromising the user experience. | |
| Implemented in [#2958](https://github.com/maplibre/maplibre-native/pull/2958) by [@alasram](https://github.com/alasram). |
| Some of our users run MapLibre Native for many hours, sometimes days on end. To ensure stability, we wanted to develop a long running test. We are distributing this test so that everyone can run it with hardware they have laying around. | ||
|
|
||
| Implementation Android in [#3512](https://github.com/maplibre/maplibre-native/pull/3512). See the [latest releases](https://github.com/maplibre/maplibre-native/releases?q=android-testapp&expanded=true) on GitHub. | ||
|
|
||
| A similar test for iOS will be available [soon](https://github.com/maplibre/maplibre-native/pull/3592). | ||
|
|
||
| --- | ||
|
|
||
| After a vote by the developers, this ‘long running test’ is was officially called Desert Bus, named after a game from the 90’s where you had to drive a bus from Arizona to Nevada (an exciting 8 hour playthrough can be found on [YouTube](https://www.youtube.com/watch?v=2LtiHla1dNg)). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Some of our users run MapLibre Native for many hours, sometimes days on end. To ensure stability, we wanted to develop a long running test. We are distributing this test so that everyone can run it with hardware they have laying around. | |
| Implementation Android in [#3512](https://github.com/maplibre/maplibre-native/pull/3512). See the [latest releases](https://github.com/maplibre/maplibre-native/releases?q=android-testapp&expanded=true) on GitHub. | |
| A similar test for iOS will be available [soon](https://github.com/maplibre/maplibre-native/pull/3592). | |
| --- | |
| After a vote by the developers, this ‘long running test’ is was officially called Desert Bus, named after a game from the 90’s where you had to drive a bus from Arizona to Nevada (an exciting 8 hour playthrough can be found on [YouTube](https://www.youtube.com/watch?v=2LtiHla1dNg)). | |
| Some of our users run MapLibre Native for many hours, sometimes days on end. | |
| To ensure stability, we developed a long running test. | |
| We are distributing this test so that everyone can run it with hardware they have laying around. | |
| After a vote by the developers, this ‘long running test’ is was officially called Desert Bus, named after a game from the 90’s where you had to drive a bus from Arizona to Nevada (an exciting 8 hour playthrough can be found on [YouTube](https://www.youtube.com/watch?v=2LtiHla1dNg)). | |
| Please head over to [our testapp releases on GitHub](https://github.com/maplibre/maplibre-native/releases?q=android-testapp&expanded=true) to help us gain test data. | |
| Implementation Android in [#3512](https://github.com/maplibre/maplibre-native/pull/3512) by Adrian Cojocaru. | |
| A similar test for iOS will be available [soon](https://github.com/maplibre/maplibre-native/pull/3592). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I put the desert bus comment at the bottom because it is less important.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it really less important than when it was implemented by whom?
I'd argue that this is much more interesting marketing wise
| ### iOS | ||
|
|
||
| - [Action Journal Example](https://maplibre.org/maplibre-native/ios/latest/documentation/maplibre-native-for-ios/actionjournalexample/) | ||
|
|
||
| ### Android | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| ### iOS | |
| - [Action Journal Example](https://maplibre.org/maplibre-native/ios/latest/documentation/maplibre-native-for-ios/actionjournalexample/) | |
| ### Android | |
| - [Action Journal Example](https://maplibre.org/maplibre-native/ios/latest/documentation/maplibre-native-for-ios/actionjournalexample/) |
| status: in-progress | ||
| --- | ||
|
|
||
| Add support for reading vector-tile sources in the [MapLibre Tile Format](https://github.com/maplibre/maplibre-tile-spec) (MLT). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
more fluff
| Add support for reading vector-tile sources in the [MapLibre Tile Format](https://github.com/maplibre/maplibre-tile-spec) (MLT). | |
| Add support for reading vector-tile sources in the [MapLibre Tile Format](https://github.com/maplibre/maplibre-tile-spec) (MLT). | |
| MLT is a next-generation tile format and a successor to MVT. | |
| Our early benchmarks show 2-6x smaller tiles and some decoding benefits. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mentioning benchmarks without a link, reproduction or specifics is not useful IMO. I think we should keep this information in the repo where we can keep it up to date.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Add support for reading vector-tile sources in the [MapLibre Tile Format](https://github.com/maplibre/maplibre-tile-spec) (MLT). | |
| Add support for reading vector-tile sources in the [MapLibre Tile Format](https://github.com/maplibre/maplibre-tile-spec) (MLT). | |
| MLT is a next-generation tile format and a successor to MVT. |
| status: in-progress | ||
| --- | ||
|
|
||
| We are experimenting with various ways to add plugins for extending MapLibre Native. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| We are experimenting with various ways to add plugins for extending MapLibre Native. | |
| We are currently experimenting with various ways to add plugins for extending MapLibre Native. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As of October 2025, we are
Maybe
|
@louwers |
|
@CommanderStorm Oh we should prevent merging when there are comments. |
|
@CommanderStorm Left some comments, feel free to make a PR. |
|
Enabled 'require conversations to be resolved for merging'. |
|
Thanks, did not know that this is an option Honestly, it would be intersting to have these settings better synced across repos. |
Adds additional roadmap items, including ones that were delivered this year.