maplibre / maplibre.github.io

https://maplibre.org
Creative Commons Zero v1.0 Universal
13 stars 30 forks source link

Suggest content for next MapLibre Newsletter #291

Open wipfli opened 6 months ago

wipfli commented 6 months ago

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 commented 6 months ago

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 commented 6 months ago

~A big discussion about on-boarding Maputnik is at https://github.com/maplibre/maplibre/issues/352~

Maputnik is now part of MapLibre!

acalcutt commented 5 months ago

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 commented 5 months ago

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 commented 4 months ago

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

HarelM commented 4 months ago

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: https://github.com/maplibre/maplibre-style-spec/discussions/536 Sergei Bachinin was added as a contributor to maplibre-gl-js.

louwers commented 4 months ago

Yes, I will write it tomorrow (Thursday).

louwers commented 4 months ago

MapLibre Native

Core

iOS

Android

maplibre_android_downloads

HarelM commented 3 months ago

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 commented 3 months ago

image

louwers commented 3 months ago

Maybe another point:

louwers commented 2 months ago

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 commented 2 months ago

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 commented 2 months ago

From @boldtrn https://github.com/maplibre/maplibre-navigation-ios/discussions/39#discussioncomment-9277657

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 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

@nyurik A few suggestions:

mactrem commented 1 month ago

@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 commented 1 month ago

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 commented 2 weeks ago

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

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

HarelM commented 2 weeks ago

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 commented 2 weeks ago

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

ebrelsford commented 2 weeks ago

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 commented 2 weeks ago

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