Thursday, July 11, 2024

Summer Maps

 I usually write a “Summer Maps” blog post around midsummer. It's a bit later this year. But here it comes!


 Since the last time there has been some visual updates.

Search Bar Tweak

Since version 45 we had an “Explore POIs” interface that is accessed via a menu button next to the main search entry. This button used a linked style to get shared rounded corner. This has had some visual glitches when showing the search results popover (resutling in the rounded corner getting „straightened” giving jarred look).

After playing with putting the menu button at the side without being linked, but that gives a little „unbalanced” look with the popover. So I decided to try out something different.

Using the secondary icon of the entry, indicating the „explore” action when no search term is entered.

More Adwaita Dialogs

Contributor “DaPigGuy” has converted the export image dialog to use the new dialog widget from libadwaita. Also the save file UI has been streamlined, and is now handled by the file select dialog when clicking „Save”.

One more Icon

One additional POI icon for playgrounds has been contributed by Jakub Steiner.


Transitous Support

I've written about the Transitous project before.

There is now a work-in-progress branch implementing public transit routing using MOTIS:

Currently it works best when using the service at

This can be tested by setting the following environement variables when running the branch (from GNOME Builder it can be set either by entering the „execution terminal”, or by creating a custom run command).



A sample of itineraries going from the  Louvre to the Eiffel tower in Paris.

And I would like to re-iterate that you can also help contributing public transit feeds to the Transitous project for your locality by creating pull requests at

Hill Shading

Another project James Westman has been working on is hillshading. This would make the map show terrain topology, which not only gives the map a nicer, more live appearance. It is also beneficial for example when hiking.

Currently it awailable in the web preview for the map style at

In the screenshot above showing the Sylarna mountain range: Wikipedia

Contrasting with how it looks currently when rendered by libshumate in Maps


Adding this in libshumate will require some additional work, as it will need support for transparent „overlay sources” to render the „TopoRGB” tiles (which will basically be an alpha channel rendering „on top” of the vector rendering (I hope I explained that somewhat correctly).


And that's going to be it for this time!

And stay tuned ūüėÄ 

Saturday, May 11, 2024

May Maps


It's about time for the spring update of goings on in Maps!

There's been some changes going on since the release of 46.

Vector Map by Default

The vector map is now being used by default, and with it Maps supports dark mode (also the old raster tiles has been retired, though there still exists the hidden feature of running with a local tile directory. Which was never really intended for general use but more as a way to experiment with offline map support). The plan will be to eventually support proper offline map support with a way to download areas in a more user-friendly and organized way then to provide a raw path…).

Dark Improvements

Following the introduction of dark map support the default rendering of public transit routes and lines has been improved for the dark mode to give better contrast (something that trickier before when the map view was always light even when the rest of the UI, such as the sidebar itinerary was shown in dark mode).

More Transit Mode Icons

Jakub Steiner and Sam Hewitt has been working on designing icons for some additional modes of transit, such as trolley buses, taxi, and monorail.

Trolley bus routes

This screenshot was something I “mocked” by changing the icon for regular bus to temporarily use the newly designed trolley bus icon as we don't currently have any supported transit route provider in Maps currently that exposed trolley bus routes. I originally made this for an excursion with a vintage trolley bus I was going to attend, but that was cancelled in the last minute because of technical issues.

Showing a taxi station

And above we have the new taxi icon (this could be used both for showing on-demand communal taxi transit and for taxi stations on the map.

These icons have not yet been merged into Maps, as there's still some work going on finalizing their design. But I thought I still wanted to show them here…

Brand Logos

For a long time we have shown a title image from Wikidata or Wikipedia for places when available. Now we show a logo image (using the Wikidata reference for the brand of a venue) when available, and the place has no dedicated article).

Explaining Place Types

As sometimes it can be a bit hard to determine the exact type from the icons shown on the map. And especially for more generic types, such as shops where we have dedicated icons for some, and a generic icon. We now show the type also in the place bubble (using the translations extracted from the iD OSM editor).

Places with a name shows the icon and type description below the name, dimmed.

For unnamed places we show the icon and type instead of the name, in the same bold style as the name would normally use.

Additional Things

Another detail worth mentioning is that you can now clear the currently showing route from the context menu so you won't have to open the sidebar again and manually erase the filled in destinations.


Another improvement is that if you already enter a starting point with ”Route from Here“, or enter an address in the sidebar and then use the “Directions”  button from a place bubble, that starting point will now be used instead of the current location.

Besides this, also some old commented-out code was removed… but there's no screenshots of that, I'm afraid ☺

Friday, March 15, 2024

Maps and GNOME 46

It's that time again, a new GNOME release is just around the corner.

 The news in Maps for GNOME 46

A lot of the new things we've been working on for the 46 release has already been covered, but here is few recaps.

The new map style

The map style used for the vector-based, client-side rendered map which is still considered experimental in 46 has been switched over to our new “GNOME-themed” style, which also supports a dark mode (enabled when the global dark mode is enabled).

The vector map still needs to be explicitly enabled via the “layers menu” (the second headerbar button from the left). This also require the backing installation of libshumate to be built with vector renderer support (which is the case when using the Flatpak from Flathub, and also libshumate will default to building the vector renderer from the 1.2.0 release, so distributions should likely have it enabled in their 46 installations).

The current plan looks like we're leaning towards flipping it on by default after the 46 release, so by 47 it will probably mean the old raster tiles from will be retired.

Also icons on the map (such as POIs) are now directly clickable. And labels should be localized to the user's language (when the appropriate language tags are available in the OpenStreetMap data).

Other visual improvements

For 46 the zoom control buttons has been revamped (again), and put in the lower corner (as also shown in the above screenshots):

The pin used to marked places selected from search results, and other things like pin-pointed locations in GeoJSON files has gained a new modernized design by Jakub Steiner.

The dialog for adding an OpenStreetMap account to edit POIs gained a refresh sporting the new libadwaita dialog and widgets by Felipe Kinoshita.

Also information about which floor a place is located at is shown in the place bubbles when available. This can be useful to find your way around for example big shopping malls and the like (this was an idea that came when looking for a caf√© in a galleria in Riga last summer…).

The favorites menu has also gotten a revamp. Instead of just showing a greyed-out inactive button when there's no favored places it now has an “empty state” hinting on the ability to “star” places.

And favorites can be removed directly from the list without having to open them (and animate to that place to show the bubble).

Looking further on

For the next cycle aside from continuing the refinements to the new map style and making the vector map the main thing another cool project that was initiated during FOSDEM in Februari has caught my attention:


Transitous aims to setup a free and open public transit routing service:

It is using the MOTIS project ( as the backend, with a cround sourcing approach to collect data feeds for timetable data.

The routing can already be tested out at Currently it only handles “station to station” routing, so there is not yet support for walking instructions.

Also, unlike the current public transit plugins support we have in Maps with Transitous you would also be able to cross-border planning (utilizing timetables from different data feeds).

When it becomes a bit more mature we should make use of it in Maps ☺.

So this another area to help out by creating PRs for adding transit schedule feeds for your local area that could potentially benefit both Maps and other FOSS projects (such as KDE Itinerary).

Problems ahead

And now to something of a problem.

The location service backend that we are using (not just used by Maps, but also other parts like Weather, automatic timezone handling) GeoClue has been using Mozilla's location service API (MLS). This will unfortunately be retired
So there will be a need to come up with alternative solutions
Maybe in worst case, we'd have to disable showing current location in Maps unless the device has an actual GPS unit.

Wednesday, February 14, 2024

The FOSDEM trip 2024

 As there was some interest and questions about my trip to Brussels and FOSDEM on Mastodon, I thought I should write down some notes and observations from the trip. This will not really be about FOSDEM itself as there's numerous other reports from the conference itself.


I had some questions about how and where to buy tickets for a train journey like this.

For the first connection with the commuter train to Stockholm C, I just used my regular 30 day pass for the Stockholm and Uppsala regional local traffic as it already had validity covering the entire trip.

For the rest of the trip I made two separate reservations. One for a round-trip journey from Stockholm C to Hamburg Hbf in a shared couchette (six bed compartment) on the EuroNight service booked via Leaving in the evening Feb 1 (Thursday) at 17:34, return trip from Hamburg on Feb 5 (Monday) at 22:03. I then separetly booked tickets on ICE from Hamburg Hbf to Brussel Nord via

For the second part I choose the option with seat reservation, but bound to specific trains. Specifically departing from Hamburg at 10:45 on Feb 2. This gave me almost 5 hours margin, which is perhaps a bit on the safing side, and adds to the total journey time. On the other hand it gives some extra time to have some breakfast and walk around a bit (though it's a bit early in the morning).

Return trip from Brussels to Hamburg was scheduled to arrive at 17:18, giving plenty of time (almost five hours) to get some dinner and visit some sights. Here it's more crucial to set aside time for any hickups, as missing the night train service would be pretty awkward…

Another option would have been to get the InterRail pass. But bare in mind that night trains still require buying reservation. And reseving seats on German ICE might still be a good idea to ensure getting a fixed seat (would be especially beneficial if you intend to work on the train).

The journey

A side note: As my camera has started acting up, taking several attempts to start up after being off for a while (probably the lens mechanism getting worn after taking around 21000 pictures), I haven't taken as much pictures as usual…

I left home after lunch on the Thursday, first going for the commuter train.

Trains at Uppsala C

Arriving at Stockholm C (techinically Stockholm City, the underground station connected to the metro system) I left suitcase in a baggage locker at the station. Now the plan was to take the tram out to Djurgården (this is also where the Vasa and ABBA musuems in Stockholm are located) to have some fika and enjoy the weather as it was one of those sunny days. But since the next tram then was a bus replacement, I decided to instead take a walk.

View over Sergels torg in Stockholm

Finally some fika at the cafe Lilla Hasselbacken

The headed back towards the central station, picket up my suitcase and went to the restaurant Belgobaren to have dinner and a couple of beers. Also a good way to warm up for a bit of Belgian spirit ūüėé

The nice bar at Belgobaren. This place is also the hotel restaurant for Freys Hotel

Half an hour or so before the night train was about to leave I headed back to the station.

The departure board

At track 10, next train is ours…

These are old German sleeper cars

Arriving in Hamburg the morning after around halv an hour or so behind schedule

Had a bit of breakfast at one of the cafe places in the station.

Coffee and a sandwich

Taking a morning walk and visiting the exhibition at the city hall (which was thankfully opening at this early time of day).

Hamburh Rathaus (city hall)

Arriving back at the station awaiting the departure of the next train towards Köln (Cologne).

Shortly before the train was supposed to depart it was announced as being cancelled…

Asked some staff from Deutche Bahn at the platform and got a suggestion to instead take a train to D√ľsseldorf and then on to Li√®ge, and from there to Brussel Nord.

At D√ľsseldorf Hbf

Arriving in D√ľsseldorf and boarding the train towards Li√®ge (destination Paris Nord), it turns out this was a Eurostar. And they did not accept my ticket even though I think that's what the staff had told me (unless I misunderstood the German). So I had to pay for a new ticket onboard.

Later filed a claim for a refund for this. And as I had not registered an account beforehand at with my e-mail address, this had to be done via a printed form and old-school mail… So this is something to keep in mind, registering your booking beforehand could be a good idea.

Eventually arrived in Brussels an hour and some delayed.

The actual FOSDEM

Not so much from the acual FOSDEM in this post, but OK a few pictures from ULB…

The journey back home

Started off the morning on Monday Feb 5 by walking around a bit in central Brussels, saying hi to Maneken Pis, and buying some beer and chocolate.

The next thing that happend was a bit eventful though…

Headed back towards the northern station (Bruxelles Nord), as this was what I had booked seat for (probably wouldn't have been a problem getting on the train at the central station, but). Taking the tram from De Brouckère towards the northern station. I had about an hour to spare here. These lines (3 and 4) runs in a tunnel. This is what could be called a pre-metro). After the stop at Rogier (one stop from where I was about to get off) there was a sudden stop, and a power-outage! (ouch!).

After maybe half an hour we had to evacuate walking through the tunnel back to Rogier. Then walked to station. Still in quite good time for the train (but I was getting quite nervous for a while).

Later on the ICE towards Köln was some 20 min delayed. This train was supposed to continue on to Franfurt am Main, but turned back to Brussels in Köln. Fortunatly (for me) this didn't affect me, as I was getting off anyway.

At Köln Hbf


Got a little less time than planned to get some snack at Köln Hbf.


 Arriving in Hamburg, after leaving the suitcase in a baggage locker, I took the S-Bahn to Landungsbr√ľcke to visit the submarine museum.

The old Soviet submarine. Now as the U-434 submarine museum.

And after that a nice dinner at Blockbräu.

Blockbräu restaurant

And then a qick a look at the old tunnel under the river Elbe, where you take elevators down. There is still construction going on and one of the tunnel lines is closed. Seems to only be opened for pedestrian and bike traffic. This was also the case when I visited last year.

The old tunnel

Elevators taking cars. There's also smaller „regular” elevators. But I guess those are much newer…

Back at the station awaiting the train.

The night train to Stockholm

And the morning after looking out from the last car of the train on the long straight around Mjölby

And then a bit later, after lunch arriving home after a nice weekend in Brussels attending FOSDEM, listening to interesting FOSS talks and hanging a bit with GNOME folks.