Tuesday, 1 March 2016

Walkthrough of Maps 3.20 release notes

We have now entered beta period for GNOME 3.20 and the release notes for Maps are starting to look final.

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.

For this release we added website, phone number, internet access and altitude information, if available, to our map bubbles.

Editing items on OpenStreetMap

One 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.
By using the map context menu and choosing Add to OpenStreetMap.

Printing of routes

Due 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.

Scale ruler

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.

This is triggered by the map context menu.

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.

Help overlay

Along with many other GNOME apps we added a help overlay to show our shortcut bindings.


  1. Great work ! I tried to install it from Git with Gtk3.18 but a "Unsupported Clutter backend: 'x11,wayland,*'" error stopped me. Seems like I'll be waiting for the release ;)

  2. A perfect thing (maybe in a later release ?) would be offline maps :)

    1. We do support offline maps, see earlier blog post. The problem is having a place to bulk download tiles from.

    2. Oh, i just saw it. Awesome :) Well you can directly download them from OSM, right ? It seems you do not (3.18, as I said I can't get 3.19.91 to work) have any cache to not re-download tiles after restarting the app.

    3. Bulk download from OSM is not allowed, downloading an entire area is a bit different from browsing around. Most tiles in the world are never served.
      Our plan is to have something like tiles.gnome.org that can provide bulk-download API as well as serve tiles.

      libchamplain does cache, so you could point Maps towards that cache with the --local switch in 3.18 .

      Something like gnome-maps --local ~/.cache/libchamplain/something.