This blog post will expand a bit on the official release notes, adding screenshots and some reasoning to most of the items.
Map bubble re-work
For this cycle we wanted to add some more meta-data to our small map bubbles. But at the same time we thought that the bubbles were kind of cluttered.
So we added a way to expand the bubble, so that we show the minimum amount of information by default. And only show more if user presses the more information dots.
This is sort of a stop-gap feature. For 3.22 we want to do a more ambitious re-design of how we show information about a place on the map.
Editing items on OpenStreetMapOne of the things I am most excited about in this release of Maps is the ability to edit and add places on OpenStreetMap. It is due to most awesome work by Marcus Lundbladh. We now have an edit symbol on our map bubbles. If you press it you will be prompted for your OpenStreetMap credentials. Or a link to where you can set up an account.
After that you get an editor view where you can update the object on OpenStreetMap.
It is also possible to add a new node to OpenStreetmap.
Printing of routesDue to excellent work from our Outreachy intern Amisha we managed to land printing of routes this cycle. This is something we have wanted for a while. It helps us cover some of the offline niche. You can search for a route at home, print to paper or PDF and bring that with you on a journey where you do not have access to net.
When you have successfully search for a route a print icon will appear in Maps header bar. From there one can initiate printing.
Right now you will get one of two print layouts, depending on the distance of the route. The image above is of the long route layout.
Adding of custom map layers
Hashem, another one of our Outreachy interns, has contributed a lot to Maps this cycle. A lot of small details here and there. The most visible contribution is support for KML and GPX layers, as well as an UI to handle them in Maps.
Maps now registers as a handler for the mime-types of GeoJSON, KML and GPX. Which means that Maps will be a suggestion from GNOME when you attempt to open files of those types on the web or on the desktop.
It is possible to open layers through the UI, the command line and through drag and drop to an open Maps window.
For GeoJSON we also support the Mapbox simple style specification.
A minor change UI wise and code wise, but one that was requested for some time was merged this cycle. The adding of a scale ruler to Maps. It is visible in the bottom left corner of the images above.
Exporting of view to PNG
The library that contains our map widget, libchamplain got support for exporting a view to a cairo_surface. That meant that we could implement the feature of exporting to PNG quite easily.
Handling geo: URI
The geo URI scheme is a way of linking to a certain location. Maps is now registered as a handler of this URI. So if you encounter it in the wild, say in your web browser. Try to click it and Maps should be your suggested agent for it.
We can also get a geo URI from Maps, by using the Copy Location item in the map context menu. It is also possible to paste or enter a geo URI in the Maps search bar to have Maps go to the location, or give one on Maps command line.
Along with many other GNOME apps we added a help overlay to show our shortcut bindings.