Skip to content
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

Suggest content for next MapLibre Newsletter #291

Open
wipfli opened this issue Jan 3, 2024 · 53 comments
Open

Suggest content for next MapLibre Newsletter #291

wipfli opened this issue Jan 3, 2024 · 53 comments

Comments

@wipfli
Copy link
Contributor

wipfli commented Jan 3, 2024

If you would like to add something to the next MapLibre Newsletter, feel free to post a section here in this issue and then we will incorporate it in the next Newsletter.

@nyurik
Copy link
Member

nyurik commented Jan 3, 2024

Martin Tile Server v0.13 is out, adding support for tile cache. Users can control how much memory to use for caching Postgres query results, as well as MBTiles and PMTiles access. Note that compression results are not yet cached (see #1112), and neither are font and sprites.

P.S. I think we should start this issue and link to it on every newsletter - this way people will know where to post things.

@nyurik
Copy link
Member

nyurik commented Jan 9, 2024

A big discussion about on-boarding Maputnik is at maplibre/maplibre#352

Maputnik is now part of MapLibre!

@acalcutt
Copy link

acalcutt commented Jan 27, 2024

a new maplibre-native node version has been release, node-v5.3.1, which adds support for index-of and slice expressions, webp decoding support. This follows node-v5.3.0 which added support for node 20 and Ubuntu 22.04

Not sure this is newsletter worthy but I did have people asking for these features in node over the year.

@HarelM
Copy link
Collaborator

HarelM commented Jan 30, 2024

Version 4 of maplibre web has a release candidate with tons of improvements and should be released shortly, we are waiting for some feedback before we release it.
Sky spec was approved and should hopefully be incorporated in a future version, the original PR was updated.
Globe branch opened to allow PRs related to globe view.
A proposal to facilitate spec extension was made to the spec.

@wipfli
Copy link
Contributor Author

wipfli commented Feb 27, 2024

Anything you would like to add to the Feb newsletter @HarelM @louwers ?

@HarelM
Copy link
Collaborator

HarelM commented Feb 27, 2024

Version 4.0.0, 4.0.1 and 4.0.2 were released and we are back with releasing versions more often after we finalized all the breaking changes in version 4.
We had an interesting discussion about geometry-type in the monthly meeting and we are looking for more feedback from the community around how to move forward:
maplibre/maplibre-style-spec#536
Sergei Bachinin was added as a contributor to maplibre-gl-js.

@louwers
Copy link
Collaborator

louwers commented Feb 27, 2024

Yes, I will write it tomorrow (Thursday).

@louwers
Copy link
Collaborator

louwers commented Feb 28, 2024

MapLibre Native

Core

  • Support for multiple sprite sources is now available in the main branch and will be part of the next platform releases. Thanks to @geolives for their contribution.

iOS

  • After some trial and error, the release process for iOS is now fully automated. When the VERSION file and CHANGELOG.md are updated as part of a PR, the release workflow will automatically run. By getting changes in the hands of end-users quicker, we hope to encourage contributions for the iOS platform.
  • The legacy MGLStyleLayer allowed using custom OpenGL ES code and shaders. A similar custom layer has been revived with the MapLibre Native iOS 6.1 release with MLNCustomStyleLayer, but now of course now Metal needs to be used.
  • New documentation for iOS is available. It uses the DocC documentation generator from Apple.

Android

  • The pre-release of MapLibre Native Android 11.0.0 is out. Since the library underwent significant changes to the rendering architecture, we are gathering feedback before making a final release. Once the 11.0.0 release is out we will have a more regular release cadence again for MapLibre Native Android.
  • For those interested, download statistics for MapLibre Native Android can be found below.

maplibre_android_downloads

@HarelM
Copy link
Collaborator

HarelM commented Mar 24, 2024

Globe first PR was merged to a dedicated branch to foster collaboration.
Maplibre gl inspect was on boarded.
Versions 4.1.0 and 4.1.1 were released.
geometry-type was decided on and schedule for the next breaking change version.

@louwers
Copy link
Collaborator

louwers commented Mar 25, 2024

  • The MapLibre Native for Android 11.0.0 pre-release) has been out for almost a month now. We thank everyone for their feedback so far! Please give it a spin, and report any issues you encounter. The latest pre-release can be found on Maven Central. The final release is set for the 28th of March if no critical issues are reported.

  • We have additional benchmarks (using Google's Benchmark library) that are running on CI now. Keep an eye out for the results that show up on PRs. Contributors are invited to add additional benchmarks for performance critical code.

  • Tim Sylvester added a PR to track what dependencies are used by expressions (#2113).

  • Marc Wilson fixed an implementation issue with the location indicator on Android, which was causing threads to be constantly created and destroyed (#2182).

  • A #maplibre-swift channel was created on Slack for discussion about a possible Swift-based iOS platform.

  • Due to the switch to OpenGL ES 3.0 last year, builds for macOS from the main branch were temporarily not possible. Now that MapLibre Native has a Metal backend, macOS support can return on main. This was delayed a few times, but this month rendering for macOS was made possible again, by brining sample AppKit app back (#2205). Next GLFW will be made to run on macOS (useful for development purposes), and later Qt and Node.js are to return again macOS with Metal support. To everyone interested in using MapLibre Native on macOS, thanks for your patience!

image

@louwers
Copy link
Collaborator

louwers commented Mar 25, 2024

Maybe another point:

  • We have a new release policy or statement on releases from the maintainer concerning iOS and Android releases.

@louwers
Copy link
Collaborator

louwers commented Apr 29, 2024

MapLibre Native

Metal-cpp comes with its own smart pointers. We were using them inappropriately in a few places, resulting in a memory leak. Resolved by #2254 and #2257.

We now go through the entire iOS test app in an UI test to make sure nothing crashes as a smoke test (#2258). We also run that UI test with an undefined-behavior sanitizer on CI (#2280).

Some uniform buffer objects were moved to the global level, others to the layer level, resulting in fewer binds (#2266 and #2247 and #2292).

Allow changing User-Agent on iOS #2293. This was the first pull request from @hactar. 💪

MapLibre Native for Node.js 5.4.0 was released.

A (wide vector) shader was successfully transplanted from another mapping toolkit (#2183). We want to make it possible to extend MapLibre Native. As seen in the PR, we're not quite at the point where you can do this without changing internals, but it's becoming easier.

MapLibre Native is being deployed in larger settings and several crashes have been reported this month. We now include debug symbols for iOS and Android in every release. If you encounter a crash, you can symbolicate the crash report to more easily identify where the issue occurred.

The long awaited Android 11.0.0 release is around the corner! Last-minute blocking issues can be reported in the pre-release thread. Several issues have been addressed this month (e.g. #2296). We have a milestone with currently one to-be-resolved issue before we will push out the Android 11.0.0 release. Thanks to everyone that helped with testing!

@HarelM
Copy link
Collaborator

HarelM commented Apr 29, 2024

Web

Versions 4.1.2 and 4.1.3 were released this month.
We have recently merged a text fit feature by Microsoft that will be available in the next minor release that should allow keeping the aspect ratio of an image in some cases (Shields are obviously the main motivation here).
Globe branch is progressing nicely with the addition of fill-extrusion, hill-shade and lines.
Atmosphere is in discussion in terms of spec, and has an initial implementation that look really awesome!
globe with atmosphere

Style Spec

The style spec docs were rewritten to use the awesome Material for MkDocs, which allows search and super easy maintenance.

While the spec is not changing rapidly as we invest a lot of effort to keep it future ready on one hand and backward compatible on the other, making sure the docs are helpful is one of the most important aspects. This is vital so the community will be able to use it, and enjoy it.
We are looking for more expression examples in order to enrich the docs. This is probably the most complicated part of the spec, and we believe examples are very important to understand how things work.

The sky spec discussion has started looking at the atmosphere definitions as part of it, and there is a projection discussion for the globe.

A new type of source was proposed and approved: contour! This is the first time in a very long time a new type of source was approved! Very exciting!!

Feel free to join the discussions about the future of MapLibre!

@wipfli
Copy link
Contributor Author

wipfli commented Apr 30, 2024

From @boldtrn maplibre/maplibre-navigation-ios#39 (reply in thread)

We are currently reviving maplibre-navigation-ios. After we have improved maplibre-navigation-android recently, we are currently doing the same for iOS. We have updated dependencies like maplibre-native to version 6 with Metal support and use SPM instead of CocoaPods for dependency management. We have added hooks to make customizing some of the navigation functions possible. Kurviger is currently BEAT testing their app with maplibre-navigation-ios, if you would like to give it a spin, you can try the app for free here - please note, only the navigation is using maplibre-navigation-ios. In the future we also want to make it easier to customize the out of the box navigation UI and to move the Android and iOS navigation libraries closer together. Would you like to join the effort? PRs and contributions are welcome.

@louwers
Copy link
Collaborator

louwers commented May 29, 2024

  • maybe some updates on the new Flutter maintainers

Newsletter May 2024 MapLibre Native

MapLibre Native used or being rolled out in some major deployments, including those by AWS and Meta. These large-scale deployments can expose rare, hard-to-reproduce 'long-tail' crashes. We are committed to the stability of the library and welcome bug reports for these types of crashes. To investigate these issues, we require a symbolicated crash report, which can be generated using the debug symbols provided with the library for iOS and Android. More information can be found on the GitHub wiki (iOS and Android).

MapLibre Native Android 11.0.0 was released. The documentation was updated with the new package prefix.

This month, several iOS patch releases were made as well as a pre-release for Android (e.g. #2442, #2395, #2379). More stability improvements are underway.

Stefan Karschti, one of the developers that implemented Metal support for MapLibre Native, has left the Metal team (a.k.a. MapLibre Native Team). Stefan, thank you for your many contributions! We are happy that you want to continue being a member of the MapLibre community!

One way to ensure MapLibre Native and MapLibre GL JS remain interoperable is to make sure we have the share the same render tests. Pulling the render tests in a shared repository would complicate pull requests too much. Instead, we wrote a script that we periodically run to check which render tests are missing in each repo. The result is a render test parity status report with corresponding tracking issue.

Some guides have been added to the iOS Documentation demonstrating how to use the library with SwiftUI. People who are familiar with using MapLibre Native on iOS, are invited to make a PR to add more guides to the DocC-based documentation site.

Are you using MapLibre Native? Please leave a comment on the discussion thread on GitHub.

@HarelM
Copy link
Collaborator

HarelM commented May 30, 2024

Web

We have released four (!) versions this month: 4.2.0, 4.3.0, 4.3.1, 4.3.2.
We finally added support for the distance expression that was missing in terms of parity between web and native, thus making web a superset of native when it comes to expression support - meaning that all the styles that work for native should work for web as well and look similar. Thanks to @louwers we now can properly track this with the parity script. We also added to the style spec docs a reference to issues that prevent parity to allow you to see where it is standing and help out.

As part of the globe effort there was a need to fix the collision boxes bugs. Jakub, who is making a great progress with the globe code, had been able to port these fixes to the main version, making the collision boxes experience a lot better.

The globe is in its final stretch, most of the issues have been fixed and most of map features and style are supported.
There are still work to be done but you can admire how nice it looks now:
Screenshot of a globe with symbols and debug collisions, with many test texts.

There are some minor changes with rendering we expect to introduce in the next version related to brackets and new lines so keep an eye for those.

We've fixed most of the issues with movement when 3D terrain is on so now the panning and pinching is a lot smoother.

Overall, this month was amazing in terms of contribution from the community, and I think the library is steadily gaining momentum, so we would like to thank the community for upstreaming their work!

@nyurik
Copy link
Member

nyurik commented May 31, 2024

Efforts on the next generation tile format (MLT) are progressing rapidly, with Microsoft contracting Stamen for an initial proof of concept. The work is being done in the newly created maplibre-tile-spec repository, thanks to @mactrem's extensive research. MLT tiles already achieve up to 6x size reduction compared to MVT tiles for large tiles. Planned improvements include zero-copy direct-to-GPU pre-tessellated geometries, support for more complex nested types and lists, and linear referencing with m-values. The proof of concept will focus on tile size benchmarks and JavaScript decoding.


The above can be edited a bit for content and styling

@ebrelsford
Copy link

@nyurik A few suggestions:

  • Can we mention that Stamen is assisting with this work?
  • Maybe it would be helpful to point people to the slack channel to follow along?
  • It might be worth managing expectations, the proof of concept target is to benchmark parsing MVTs and MLTs in JS to get a sense of the client side impact of switching.

@mactrem
Copy link

mactrem commented May 31, 2024

@nyurik i would also suggest, since it is frequently discussed,to add that Mlt has support for a more complex type system such as nested types or lists as well as linear referencing and m-values

@wipfli
Copy link
Contributor Author

wipfli commented May 31, 2024

Thanks for the feedback, I will try to incorporate those. If I miss something, there will always be a chance to mention more in the June newsletter...

@nyurik
Copy link
Member

nyurik commented Jun 25, 2024

🎉 Long awaited Martin tile server v0.14 has been released!

  • AWS Lambda support
  • Options to set preferred response encodings (e.g. if browser supports gzip & brotli, can set which should be returned)
  • mbtiles can now create binary-diffing between tiles, making diffs much smaller
  • numerous bug fixes, docs, and other improvements

https://github.com/maplibre/martin/releases/tag/v0.14.0

@HarelM
Copy link
Collaborator

HarelM commented Jun 26, 2024

Web

Two major version were released: 4.4.0 and 4.5.0.
Some of the highlights of these version are the addition of a new unminified production build and an initial sky implementation that includes sky color, horizon color and fog color:
sky

This sky PR was waiting for a long time for some love and care and with the help of Jakub and Vivian we were finally able to push it through, thanks guys!

Atmosphere was added to the globe branch to make the globe more realistic.
atmosphere

Style spec

Sky spec was updated to allow moving forward with the sky implementation and atmosphere, the sky spec is still experimental though.

@louwers
Copy link
Collaborator

louwers commented Jun 27, 2024

MapLibre Native

This month the MapLibre Native (Rendering) Team, previously known as the Metal team, kicked off the R&D for a Vulkan backend.

Vulkan is a next-generation graphics API developed by the Khronos Group, the same entity behind OpenGL (ES). While OpenGL ES has served us well, and will continue to do so for the forseeable future, it was developed a long time ago and it is beginning to show its age. We are running into some of its limitations when trying to realize further performance gains.

While a Vulkan backend will likely not give us an automatic performance boost, it does offer a lot more control. We know that the automotive industry is following this development with interest. It turns out that in-car systems tend to use resource-constrained customized SOCs where Vulkan offers exactly the kind of tuning and observability that is helpful. Of course, phones, desktops and other devices that support Vulkan, where MapLibre Native is already commonly used, also stand to benefit.

Adrian Cojocaru joined the MapLibre Native (Rendering) Team and the MapLibre community this month. A warm welcome to Adrian! He is a graphics engineer with a background in the games industry and is bolstering the Vulkan expertise of the team. He has hit the ground running this month and already shared a screenshot with a functional fill layer that uses Vulkan.

image (1)

If you want to stay up-to-date, join the discussion or even participate in the development of the Vulkan backend, join us on GitHub, the monthly TSC meetings and/or on Slack.

MapLibre Android 11.0.1 was released.

MapLibre Native iOS 6.5.0 was released.

Building an app using MapLibre Native with just the API documentation and snippets of code scattered over the internet or in for example the test apps, is not an easy task. We are working to consolidate existing examples and write new ones for our documentation. We created milestones to track progress on this (see iOS Examples and Android Examples). If you have interesting usage patterns to share, you are invited to create an issue or make a pull request.

Events

  • FOSS4G EU, 1-7 July, Tartu (Estonia)
  • State of the Map Europe, 18-21 July, Łódź (Poland)
  • FOSS4G BE+NL, 25-27 September 2024, Baarle (Belgium & the Netherlands)

@ebrelsford
Copy link

maplibre-tile-spec (MLT)

Stamen is wrapping up work on the proof of concept MLT JavaScript decoder. The JavaScript decoder is at parity with the Java decoder. See the repo for an experimental JS decoder package and initial benchmarks (against MVT parsing). You can also see an experiment rendering Bing Maps-based MLTs with MapLibre GL JS:

image

@louwers
Copy link
Collaborator

louwers commented Jun 28, 2024

Adrian has made a Vulkan Draft PR now to track progress, you can use that image instead and link to the PR. maplibre/maplibre-native#2564

@hactar
Copy link

hactar commented Jul 22, 2024

MapLibre Navigation iOS (https://github.com/maplibre/maplibre-navigation-ios) has its first 4.0.0 release. MapLibre Navigation iOS now no longer needs you to start navigation in a sheet that appears above your existing map. Instead, navigation can be started in an existing map view, bringing MapLibre Navigation iOS up to par with other known map apps.

Original concept by me (@hactar), reimplemented by @Patrick-Kladek. This was sponsored and open sourced by https://hudhud.sa/en - so if they could be credited in the newsletter for this, this would go a long way in helping us continue to open source our work ❤️. You're welcome to use the gifs below if you'd like to visually demonstrate it in the newsletter.

Old Behavior

before-existing-map

New Behavior

after-existing-map

@HarelM
Copy link
Collaborator

HarelM commented Jul 27, 2024

Web

The main focus of this month was to push forward the globe effort, where the main focus now is on globe controls, gestures, and refactoring the transform class to be different between globe and mercator view - this is the final stretch for the globe and we are aiming to release it by the end of this year. I would like to repeat my gratitude to Jakub for his amazing work here on the globe implementation.
While the changes in globe are not considered breaking changes the direction right now is to release it under version 5 to avoid unexpected breaking changes in plugins and other external libraries that might expect certain behavior from internal implementation such as the transform class.

@louwers
Copy link
Collaborator

louwers commented Jul 29, 2024

MapLibre Native

  • The initial Vulkan backend implementation is almost ready to merge! In one month it went from a proof-of-concept to passing all render tests. We don't have any performance numbers at this point, and it is probably too early for those anyway. To fully exploit the capabilities of Vulkan and use it to tune performance we may need to make some architectural challenges to the renderer. We also still need to figure out how to integrate it with Android and how to distribute it for that platform. Of course, OpenGL ES will still be supported as well. That said, impressive and promising progress was made this month.
  • Leveraging Qt for WebAssembly, we managed to create a WebGL1 build of MapLibre Native with a functional demo. More info on this demo can found here. This is an early stage, and we're working in multiple directions (overview here), so better iterations and builds that doesn't depend on Qt (it's used for HTTP requests and an event loop), will follow. Note that Qt has a more strict license than MapLibre Native.
  • We now run the C++ Unit Tests on Android as part of CI.
  • Some new articles have been added to the new iOS documentation, including information on the snapshotter, customizing fonts, Info.plist keys, user interactions, adding multiple images and offline capabilities.
  • Compose Multiplatform is a cross-platform UI software development kit from Jetbrains (somewhat similar to Flutter, but using Kotlin instead of Dart). There is some interest from the community to develop a MapLibre Native library for Compose Multiplatform (not to be confused for Jetpack Compose, for which libraries already exist). Please see the issue for a discussion.
  • MapLibre Android 11.1.0 was released.
  • MapLibre iOS 6.5.2 was released.
  • Some improvements were made to the included Dockerfile and accompanying instructions to make Linux builds of MapLibre Native.
  • A PR showing a proof-of-concept that intergrates Rust build tools into the CMake build config was opened this month. The PR swaps out cppcolorparser with a similar Rust library, just to see if a Rust dependency can be added while still building and running. It does build, and it does run.

ramyaragupathy added a commit that referenced this issue Sep 30, 2024
ramyaragupathy added a commit that referenced this issue Sep 30, 2024
ramyaragupathy added a commit that referenced this issue Sep 30, 2024
ramyaragupathy added a commit that referenced this issue Oct 1, 2024
ramyaragupathy added a commit that referenced this issue Oct 1, 2024
ramyaragupathy added a commit that referenced this issue Oct 1, 2024
wipfli added a commit that referenced this issue Oct 1, 2024
* #291 September newsletter

* #291 update title

* #291 run format check

* Update content/news/2024-09-30-maplibre-newsletter-september-2024/index.md

* Update content/news/2024-09-30-maplibre-newsletter-september-2024/index.md

* Update content/news/2024-09-30-maplibre-newsletter-september-2024/index.md

* Update content/news/2024-09-30-maplibre-newsletter-september-2024/index.md

* #291 add sponsor + self-hosted image

* #291 format content

* #291 sponsor img update

* #291 sponsor img png -> svg

* Add globe demo

* Format

---------

Co-authored-by: Oliver Wipfli <[email protected]>
Co-authored-by: Harel M <[email protected]>
@louwers
Copy link
Collaborator

louwers commented Oct 27, 2024

MapLibre Native

  • Development of the Vulkan backend continued this month. We also ran another benchmark on AWS Device Farm, using even more device types this time. One conclusion you may draw from the results is that Vulkan will offer a solid performance boost on modern devices. We're still validating these results. Stay tuned for an Android official release following later this year!
  • Kaushal Kumar Singh rewrote the Android build config from Groovy to the more modern Kotlin in #2902.
  • Support for text-variable-anchor-offset has been merged (#2921). This feature is one of the features that Microsoft championed to be added to MapLibre GL JS, and now ported to MapLibre Native. We're happy with this contribution and are excited about Microsoft adopting MapLibre Native.
  • MapLibre iOS 6.7.1 and 6.8.0 were released.
  • MapLibre Android 11.5.1 and 11.5.2 were released.
  • We also made two releases for MapLibre Android v10 with some backports.

@josxha
Copy link
Contributor

josxha commented Oct 27, 2024

Flutter MapLibre GL

We’re conducting a brief survey to gather feedback on MapLibre Flutter. The survey takes only about 2 minutes to complete and will help to identify strengths and areas for improvement. If you've worked with MapLibre on Flutter, your input is highly appreciated.

You can participate here: https://forms.gle/UTB6KjVFtmYv2RzU8

@HarelM
Copy link
Collaborator

HarelM commented Oct 27, 2024

Web

We have released versions 5.0.0-pre.2, 5.0.0-pre.3 and 5.0.0-pre.4 this month.
One interesting feature that was recently added was the support for pitch larger than 90 degrees.
Here's an interesting situation that should be possible now:
Screenshot 2024-10-23 at 10 55 00
An interesting read on how this works can be found here.
We have introduced some breaking changes in these versions as was planned for version 5, to make sure to take a look at the changelog for more details.
There are still open issues with globe and other improvement we plan to add as part of this major release.
See the initial post in the following issue to see the current status:

Overall we are progressing well and ironing out the globe feature.

@ibesora
Copy link
Collaborator

ibesora commented Oct 29, 2024

I have merged a fix for raster layers when using globe and terrain here but I think that a sentence saying we are ironing out the globe feature would be enough

@louwers
Copy link
Collaborator

louwers commented Oct 30, 2024

Events:


Maybe we can put a link to this thread to ask people to contribute content for the next newsletter.


Maybe we can also put times & links to the TSC meetings in November.

@louwers
Copy link
Collaborator

louwers commented Nov 28, 2024

MapLibre Native

  • MapLibre Android 11.6.0 and 11.6.1 have been released.
  • MapLibre iOS 6.8.1 was released.
  • We created a new documentation site to host MapLibre Android Examples. This provides a more accessible resource compared to the API Documentation. More examples are underway, contributions are of course welcomed.
  • Flitsmeister has released a sample project demonstrating how to use MapLibre Android with Android Auto: GitHub Repo. We're thrilled to see Flitsmeister share their hard-earned expertise with the community. It's also exciting to see the FOSS magic at work, with suggestions for improvements already coming from other members of the community.
  • We're experimenting with some new GitHub functionality: issue templates and issue types.
  • Engineers working for HudHud have kicked off the development of brining 3D Model Support to MapLibre Native. To implement this properly we need to "revive the 3D pass" (which is currently unused), which brings about plenty of complexities. It will be a while until proper 3D support will land, but watch this space, and join the monthly meetings, if you are interested in this.

Vulkan

We’ve made a pre-release of MapLibre Android with Vulkan support: 11.6.1-vulkan-pre1. This will likely be the last pre-release, with the official Vulkan-supported release planned for release in early December.

While OpenGL ES will remain supported and MapLibre Android releases with OpenGL ES will continue for the foreseeable future, Vulkan offers a more modern and performant backend.

Feedback Needed!

Help us test Vulkan support and ensure there are no regressions for your app by following these steps:

  1. Use the dependency: org.maplibre.gl:android-sdk:11.6.1-vulkan-pre1.
  2. Test your styles:
    • Verify they render correctly across various zoom levels, pitches, and feature-dense areas.
    • Rotate the device and check for any issues.
    • Ensure there are no performance regressions.
    • Test runtime styling, especially if it’s user-driven.
  3. Share your feedback! You can contribute to the pre-release thread or create an issue. Positive feedback is welcome, too!

Kotlin Multiplatform

Exciting news for developers interested in Kotlin Multiplatform: Sargun Vohra, with input from Tobias Zwick, has released MapLibre for Compose!

The library integrates MapLibre iOS and MapLibre Android and is open to contributions. The README lists various ideas, including adding support for web (presumably by intergrating MapLibre GL JS), which would make the library truly cross-platform. Very cool to see this project take shape.

@HarelM
Copy link
Collaborator

HarelM commented Nov 28, 2024

Web

We have released versions 5.0.0-pre.5, 5.0.0-pre.6, 5.0.0-pre.7 and 5.0.0-pre.8 this month!
These version introduced most of the breaking changes we have planned for this version.
For other feature we thought about introducing as a breaking change, we found a solution that does not require a breaking change and we'll see if and when they will be introduced in the future.
We have solved all the showstopper bugs for this release and there's only a few minor things we would like to include before creating a production ready version.
To see the current status of version 5 you can follow the initial post in the following issue:

@josxha
Copy link
Contributor

josxha commented Nov 28, 2024

Flutter MapLibre GL

The survey conducted last month found that users appreciate MapLibre on Flutter and rate the flutter-maplibre-gl package with 4.1 out of 5 stars overall. The package is praised for its performance, lower cost and integration with Flutter, among other things.
Stability and platform differences were identified as issues, as 46% of users reported have been affected by platform-specific behavior and 44% of users experienced crashes.

@boldtrn
Copy link
Contributor

boldtrn commented Nov 28, 2024

Navigation Android

Maplibre-Navigation-Android has been updated to use the latest Maplibre-Native release 11.6.1 and was released as version 4.0.0 with this version. You can find more information about this in the following PR:

@louwers
Copy link
Collaborator

louwers commented Dec 11, 2024

@ramyaragupathy My note about Compose Multiplatform did not make it to the newsletter. Could you include it in the December newsletter?

@sargunv
Copy link

sargunv commented Dec 21, 2024

MapLibre Compose (Multiplatform) links/info:

@CommanderStorm
Copy link
Contributor

CommanderStorm commented Dec 26, 2024

Martin

Martin Tile Server v0.15.0 will have been released™:

While there are a lot of changes, these changes stand out:

  • Basic cog (Cloud Optimized GeoTIFF) support was added as a data source. This allows to effectively serve raster tiles similar to mbtiles raster mode and pmtiles raster mode. See our docs for further context.

  • SDF sprites can now be generated via a separate API route. This allows to color sprites in maplibre-gl/maplibre-native based on map data and have crispier sprites.
    See our docs for further context.
    While this seems like an obvious better choice, these icons are not clearly supperiour as they :

    • only support one color
    • don't support configuring the background other than a blurred border.

    Results of this are for example

    Example Image
    Where is this from? NavigaTUM
  • We have implemented the basic framework on how to add a web-UI.
    In the current state, this is not quite usable, but we are getting coser ^^
    To view what our vision of this feature is, please visit Add web-based UI for Martin martin#1120

Open questions:

@hiddewie (since you already have expermeinted with this): do you have another example of sdf sprites?
@sharkAndshark do you maybe have a better example of how to present COGs? What I wrote seems a bit.. bland

@hiddewie
Copy link

hiddewie commented Dec 26, 2024

Hi @CommanderStorm

Another example that is publicly available is the OpenRailwayMap (using the entire MapLibre stack). For example https://openrailwaymap.fly.dev/#view=16.12/50.95044/6.951828&style=speed. Two examples where SDF sprites are used:

  • Direction markers (small triangles) on the railway lines use the color of the railway line.
  • Hovering the railway signal icons uses the SDF sprites to render a yellow halo in the shape of the hovered icon, including the halo of the small green signal direction marker.

Image (Köln, Germany):
Image
(feel free to make your own screenshots / resize / crop)

@louwers
Copy link
Collaborator

louwers commented Dec 30, 2024

We already had the Vulkan release announcement, which we can remind people of in the newsletter.

MapLibre Native

  • MapLibre Android 11.7.0 and 11.7.1 were released. The first releases which are available with Vulkan support (see announcement).
  • MapLibre iOS 6.9.0 was released.

MapLibre for Compose

Please combine my comment (Kotlin Multiplatform) and Sargun's comment to announce Kotlin Multiplatform as a new platform. 🙂

@josxha
Copy link
Contributor

josxha commented Dec 30, 2024

Flutter MapLibre

Started in September 2024, the Flutter maplibre package was created to provide modern Flutter bindings for MapLibre Native and MapLibre GL JS and a seamless integration into the Flutter ecosystem. Currently, supported platforms are Android and Web, while the iOS implementation is on the way and, as of right now, about halfway done (see #26).

Key features include its integration into the Flutter state management system and widget tree, direct interoperability using FFI and JNI, and platform-invariant customizable user interface. A more in depth comparison with flutter-maplibre-gl and other similar packages can be found in the maplibre docs: flutter-maplibre.pages.dev/compare/

The package already receives a couple of hundred downloads each month, and its goal is to become a full alternative to flutter-maplibre-gl by the end of Q1 2025.

@birkskyum
Copy link
Member

birkskyum commented Dec 30, 2024

modern Flutter bindings

@josxha , thanks for sharing that! A small request from those of use not too regular users of flutter - I think it would be a good idea to add a "Why Flutter-MapLibre?" or a "Comparison to alternatives" page in the docs, similar to the vite pages I linked, to emphasize the motivation/benefits of this new binding. I have some guesses what's meant by this binding being more "modern", but I think it could help adoption to clarify it, as people often gravitate towards the trusty/higher-usage option if in doubt.

@josxha
Copy link
Contributor

josxha commented Dec 31, 2024

Thanks for your feedback @birkskyum, that's a great idea! I've already had some basic feature comparison in the docs but now added additional informations. https://flutter-maplibre.pages.dev/compare/ Let me know if it goes the right direction. As the text related to maplibre_gl is relatively long, I assume linking it would be best?

@louwers
Copy link
Collaborator

louwers commented Dec 31, 2024

@josxha Adding a link sounds good to me. Thanks for sharing, looks like an interesting project!

@HarelM
Copy link
Collaborator

HarelM commented Dec 31, 2024

Web

We have released versions 5.0.0-pre.9 and 5.0.0-pre.10 for better feedback and final bug fixes.
We are happy to announce that we have finally released version 5 of maplibre-gl-js!
This version, as can be learned from the previous newsletters, is full of new features, the most important of those is the globe view.
It doesn't mean it's perfect, nothing is, we will continue to improve it, fix bugs and add new features, but we feel it is ready to see the world and get a wider audience.
Happy new year!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests