Tuesday, September 26, 2023

Maps and GNOME 45


 

The GNOME 45.0 release has just recently been published, and with it a new release of Maps. Accompaning the release is also a new stable version (1.1.0) of our libshumate map rendering library containing a lot of improvements to the client-side vector-based renderer.

Many of the new features has already been presented here, but a short re-cap:

The zoom control buttons has been moved (back) to using overlay buttons on top of the map view. A rotation button has also been added, appearing when the map is rotated away from the regular “north is up” which can then be clicked to reset the rotation.



As well as a browse mode for the search popover allowing to look for nearby points-of-interest by category.


The other new big thing is the addition of the experimental vector-based map layer (leveraging the enhanced vector support in libshumate 1.1.0). This is available in run-time when the build of libshumate used is compiled with vector support enabled (it's currently opt-in at build-time, but maybe we should enable it by default for 1.2.0, making it opt-out instead? There could still be use-cases where building a slimmed-down version with only raster support could be useful). The Flatpak for Maps 45.0 on Flathub has a bundled libshumate with the vector renderer enabled. There still remains some work to be done that wasn't ready for 45, so for example it's not yet possible to directly click on labels and markers on the map. As this will require further refactoring of the internals e.g. how store information about places (for caching, and also for storing bookmarked places).

The experimental layer currently uses the OSM Libre stylesheet, but eventually the plan is to switch our own GNOME-specific style using color hues from the GNOME icon palette.

New stuff looking forward to in upcoming releases:

James Westman has been busy not only with improving the vector renderer in libshumate, but he has also made progress on the new map style.




 The style now finally includes initial support for rail lines!

The style can be tested using the web renderer: https://maps.jwestman.net/

It's also possible to clone the git repo for the style and run it using a built-in Python-based launcher (this uses actual libshumate rendering, typically would require installing development packages to your host system): https://gitlab.gnome.org/jwestman/map-style

Another cool thing (that can also be seen in the web screenshots above) is localized highway shield rendering building on the OSM Americana project: https://wiki.openstreetmap.org/wiki/OpenStreetMap_Americana

 

An experimental branch implementing shield rendering in Maps is also work-in-progress.



This currently uses the OSM Liberty style (the same as the current experimental map layer in Maps 45).

So it's looking pretty exciting for for 46 😊

Until next time, happy mapping!