tag:blogger.com,1999:blog-56201286702166035932024-03-18T22:01:59.216+01:00The Maps and Geo BlogMarcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.comBlogger61125tag:blogger.com,1999:blog-5620128670216603593.post-13330867584462296302024-03-15T13:35:00.000+01:002024-03-15T13:35:15.199+01:00Maps and GNOME 46<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLIwUR3mcWSbFfpWpfbqCRrse87f4ZdZmq4LobMgnoGQEb8n9IPlF-TRhyphenhyphenje9rZNtwmSYNd8jRLPUKRrVNBJUDnc3Dbe7aeK3oxBv-iQYOBmUbFftV11aLOm0SSlA6b2jKSL2G57KDRk4i9QrUcxwFsZuZIWLIUOYhd_niFv-9s0x8xzMUp63xRiqx/s1600/about%2046.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="704" data-original-width="609" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLIwUR3mcWSbFfpWpfbqCRrse87f4ZdZmq4LobMgnoGQEb8n9IPlF-TRhyphenhyphenje9rZNtwmSYNd8jRLPUKRrVNBJUDnc3Dbe7aeK3oxBv-iQYOBmUbFftV11aLOm0SSlA6b2jKSL2G57KDRk4i9QrUcxwFsZuZIWLIUOYhd_niFv-9s0x8xzMUp63xRiqx/s1600/about%2046.png" /></a></div><p>
It's that time again, a new GNOME release is just around the corner.</p><h2 style="text-align: left;"> The news in Maps for GNOME 46</h2><div style="text-align: left;">A lot of the new things we've been working on for the 46 release has already been covered, but here is few recaps.</div><div style="text-align: left;"> </div><h2 style="text-align: left;">The new map style</h2><div style="text-align: left;">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).</div><div style="text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYdjkDtp-OTjuons8G9OP26Lzi-KImx_XqDln8-Mb0tmafZVlzBPYJucBTZFWUNyZt8NLDWHlvE0LfFQyj4HljUd4zvpY0_mA3aLyRnFeFosCEIrIWYFr-Ef5-eboVYMRGxLy1E33OlAt7j_9vtu08gMMlsqMnwotjQc7P8AJQGgv2bpQ33W7fKw_g/s1503/dark-46.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1142" data-original-width="1503" height="486" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYdjkDtp-OTjuons8G9OP26Lzi-KImx_XqDln8-Mb0tmafZVlzBPYJucBTZFWUNyZt8NLDWHlvE0LfFQyj4HljUd4zvpY0_mA3aLyRnFeFosCEIrIWYFr-Ef5-eboVYMRGxLy1E33OlAt7j_9vtu08gMMlsqMnwotjQc7P8AJQGgv2bpQ33W7fKw_g/w640-h486/dark-46.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFASgWmp27YJlfzWH8gugsAU_a942WyAXTCP9cTyMNpIhOfOsfF2MNB5R2A4iQnK7BfZARSs3SG_8ehYpz4Bb98CWWXPrkq6Lj0Xh2j8GU0EqfshMg6iSFgQ6QBbzAAQnmXnVS3tSovXrnwlL1iiirtSRG5GJpYgxRFLc8jcwnv6Bei1lhIRloJoIL/s1503/light-46.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1142" data-original-width="1503" height="486" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFASgWmp27YJlfzWH8gugsAU_a942WyAXTCP9cTyMNpIhOfOsfF2MNB5R2A4iQnK7BfZARSs3SG_8ehYpz4Bb98CWWXPrkq6Lj0Xh2j8GU0EqfshMg6iSFgQ6QBbzAAQnmXnVS3tSovXrnwlL1iiirtSRG5GJpYgxRFLc8jcwnv6Bei1lhIRloJoIL/w640-h486/light-46.png" width="640" /></a></div><p>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).</p><p>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 openstreetmap.org will be retired.</p><p>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).</p><p><br /></p><h2 style="text-align: left;">Other visual improvements</h2><div style="text-align: left;">For 46 the zoom control buttons has been revamped (again), and put in the lower corner (as also shown in the above screenshots):</div><div style="text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYsazXnaP7W9CUMXrcO9uy5AV5edKD73arZQU6HvaPOYh6RfNW9e5P7NUPFi1GgFOQK3E9WdFITG5P2iaeUpogY2FIUS5tIJ8m17q-W7vKi6cFStDYV7d3YKOqDbzm1U6wmODlrWhBNhLr3vfcslKXvC6TfIZC272epFzGo74rqmbE_EYFRNS1VNCr/s283/zoom-46.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="207" data-original-width="283" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYsazXnaP7W9CUMXrcO9uy5AV5edKD73arZQU6HvaPOYh6RfNW9e5P7NUPFi1GgFOQK3E9WdFITG5P2iaeUpogY2FIUS5tIJ8m17q-W7vKi6cFStDYV7d3YKOqDbzm1U6wmODlrWhBNhLr3vfcslKXvC6TfIZC272epFzGo74rqmbE_EYFRNS1VNCr/s16000/zoom-46.png" /></a></div><br /><div style="text-align: left;">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.</div><div style="text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLclZ9X84s5BGuIF0Lm3qUN0PPNHqbAxLeBW53zEMVH2NrwFE6DJeRo1zq4wk4qUNyo5RY0CKar4Qku0GXq_56ZlnPSgtujWC8nyeRrk7kYHcrkzpEXC9CseRajc26jT3NuaXOWN6LtkBE_cq76aYWcCVjUry6qHgKVcBsc1CBd7TkNDlaps9AYHU_/s593/new%20marker.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="484" data-original-width="593" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLclZ9X84s5BGuIF0Lm3qUN0PPNHqbAxLeBW53zEMVH2NrwFE6DJeRo1zq4wk4qUNyo5RY0CKar4Qku0GXq_56ZlnPSgtujWC8nyeRrk7kYHcrkzpEXC9CseRajc26jT3NuaXOWN6LtkBE_cq76aYWcCVjUry6qHgKVcBsc1CBd7TkNDlaps9AYHU_/s16000/new%20marker.png" /></a></div><br /><div style="text-align: left;"><br /></div><div style="text-align: left;">The dialog for adding an OpenStreetMap account to edit POIs gained a refresh sporting the new libadwaita dialog and widgets by Felipe Kinoshita.</div><div style="text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9SZY6RoJWAoVE3T-LuKc6H2Wy0l2RMFfxo8uyoN0AEHXvmwfG5Q_aPHA1OAjScXcfzE9uS036s4SWu7RG1YMIoMau2ew4D2CiPS8uo_Fnw0pJqHKVcTgjdHxnwmAyC4FmNDGxZdgupEPzNaTmkuRuZYS58REKRRu0zqvbnYgs9cUrgXmCPW3jB-s3/s619/osm%20account.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="493" data-original-width="619" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9SZY6RoJWAoVE3T-LuKc6H2Wy0l2RMFfxo8uyoN0AEHXvmwfG5Q_aPHA1OAjScXcfzE9uS036s4SWu7RG1YMIoMau2ew4D2CiPS8uo_Fnw0pJqHKVcTgjdHxnwmAyC4FmNDGxZdgupEPzNaTmkuRuZYS58REKRRu0zqvbnYgs9cUrgXmCPW3jB-s3/s16000/osm%20account.png" /></a></div><br /><div style="text-align: left;">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…).</div><div style="text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1vH2Y2fsKXaIJJVLXqDa9gKEhL8Q8mBfjVGXo_l6rE1ysOxMMRuUJ7CxDHYTczJdZx3mqWjacSGVsL5BntMsqxcJZHHbzKfFcfADgOEppHCT1vfHXrD3Y_98UXQimH5s3bkpQ3erNyictA9sty7Yyn2Xw1evS1j9M8k_rzJMVu2h52Gyj0uPixOpg/s815/floor-46.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="725" data-original-width="815" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1vH2Y2fsKXaIJJVLXqDa9gKEhL8Q8mBfjVGXo_l6rE1ysOxMMRuUJ7CxDHYTczJdZx3mqWjacSGVsL5BntMsqxcJZHHbzKfFcfADgOEppHCT1vfHXrD3Y_98UXQimH5s3bkpQ3erNyictA9sty7Yyn2Xw1evS1j9M8k_rzJMVu2h52Gyj0uPixOpg/s16000/floor-46.png" /></a></div><p></p><p><br /></p><p>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.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIJ-Qq8pjmrD-q7F9HG9OuYr6HiCXxgWcpc8oU08KrvBs6OzilnMgVZtX9ZmyCWLDhJopBdJZymOoFGD-fS1Qu9-vJ4qgkckEC4VBUBTCkeWNOIV7vPSsaEXbvs8Gz3Jq7EXR-ERW9eVmXC01WJH3c4vUafYvzknbhPWB_boh2L2lpQRNzxlxZZG6Z/s593/no%20favorites.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="484" data-original-width="593" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIJ-Qq8pjmrD-q7F9HG9OuYr6HiCXxgWcpc8oU08KrvBs6OzilnMgVZtX9ZmyCWLDhJopBdJZymOoFGD-fS1Qu9-vJ4qgkckEC4VBUBTCkeWNOIV7vPSsaEXbvs8Gz3Jq7EXR-ERW9eVmXC01WJH3c4vUafYvzknbhPWB_boh2L2lpQRNzxlxZZG6Z/s16000/no%20favorites.png" /></a></div><br /><p>And favorites can be removed directly from the list without having to open them (and animate to that place to show the bubble).</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzjAVni3rlrRcpu_tOBCW7V-PgL1bpc9kmsphkA9cdcGw9-jmkdqorsdnqKDwfPTZ02VRlQqlfKLaVtNqpM0KAutCiADAtJbpSJtohki2luHSMa754HBsB6vPDJHnxtGSN6ZwxHC7jwGE3-OfQDRJpn_lYLqsQZhmAZi3QBCM25P-y4TvgWJy67uoL/s370/favorites-46.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="327" data-original-width="370" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzjAVni3rlrRcpu_tOBCW7V-PgL1bpc9kmsphkA9cdcGw9-jmkdqorsdnqKDwfPTZ02VRlQqlfKLaVtNqpM0KAutCiADAtJbpSJtohki2luHSMa754HBsB6vPDJHnxtGSN6ZwxHC7jwGE3-OfQDRJpn_lYLqsQZhmAZi3QBCM25P-y4TvgWJy67uoL/s16000/favorites-46.png" /></a></div><p><br /></p><h2 style="text-align: left;">Looking further on</h2><div style="text-align: left;">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:</div><div style="text-align: left;"> </div><h4 style="text-align: left;">Transitous</h4><div style="text-align: left;">Transitous aims to setup a free and open public transit routing service: <a href="https://github.com/public-transport/transitous">https://github.com/public-transport/transitous</a><br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;">It is using the MOTIS project (<a href="https://github.com/motis-project/motis">https://github.com/motis-project/motis</a>) as the backend, with a cround sourcing approach to collect data feeds for timetable data.</div><div style="text-align: left;"><br /></div><div style="text-align: left;">The routing can already be tested out at <a href="https://transitous.org">https://transitous.org</a>. Currently it only handles “station to station” routing, so there is not yet support for walking instructions.</div><div style="text-align: left;"><br /></div><div style="text-align: left;">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).</div><div style="text-align: left;"><br /></div><div style="text-align: left;">When it becomes a bit more mature we should make use of it in Maps ☺.</div><div style="text-align: left;"><br /></div><div style="text-align: left;">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).</div><div style="text-align: left;"><br /></div><h2 style="text-align: left;">Problems ahead</h2><div style="text-align: left;">And now to something of a problem.</div><div style="text-align: left;"><br /></div><div style="text-align: left;">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 <a href="https://github.com/mozilla/ichnaea/issues/2065">https://github.com/mozilla/ichnaea/issues/2065</a></div><div style="text-align: left;"> </div><div style="text-align: left;">So there will be a need to come up with alternative solutions <a href="https://gitlab.freedesktop.org/geoclue/geoclue/-/issues/186">https://gitlab.freedesktop.org/geoclue/geoclue/-/issues/186</a></div><div style="text-align: left;"> </div><div style="text-align: left;">Maybe in worst case, we'd have to disable showing current location in Maps unless the device has an actual GPS unit.</div><div style="text-align: left;"> <br /></div>Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com0tag:blogger.com,1999:blog-5620128670216603593.post-50788902867795958122024-02-14T23:25:00.001+01:002024-02-14T23:25:22.062+01:00The FOSDEM trip 2024<p> 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.</p><h2 style="text-align: left;">Tickets</h2><p style="text-align: left;">I had some questions about how and where to buy tickets for a train journey like this.</p><p style="text-align: left;">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.</p><p style="text-align: left;">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 sj.se. 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 bahn.de.</p><p style="text-align: left;">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).</p><p style="text-align: left;">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…</p><p style="text-align: left;">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).</p><h2 style="text-align: left;">The journey</h2><p style="text-align: left;">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…</p><p style="text-align: left;">I left home after lunch on the Thursday, first going for the commuter train.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCNL9kpP5d2AFlVaXpUhxXHT7_vpNjue7bVMVGGSOiy_xsSEqR2dhyrLBwm_1B5mNToLCTB20_PVmQNyiRFG9QUOOGoZaDKwAFWOUW_uEUmZuEpPaW2Hnb5ATzn_67sIrRMEt-Zbwg-RHaeGXilrKo-tZ3N6BvvU1oMIYDwWuYawzggFeRnqMEeVaR/s5472/IMG_0546.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCNL9kpP5d2AFlVaXpUhxXHT7_vpNjue7bVMVGGSOiy_xsSEqR2dhyrLBwm_1B5mNToLCTB20_PVmQNyiRFG9QUOOGoZaDKwAFWOUW_uEUmZuEpPaW2Hnb5ATzn_67sIrRMEt-Zbwg-RHaeGXilrKo-tZ3N6BvvU1oMIYDwWuYawzggFeRnqMEeVaR/w640-h426/IMG_0546.JPG" width="640" /></a></div><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsFUgI6eFsooR7dkg-lWrzdNVcSBLX5WQNz831UcPxItuEgZpPaySS3NFdd18EKjE0oMgZdakzEzjDAtBxseM7RstCp_dAu1xXYeDTxQmNnD5VgXaGmFmVC7viRcq3nKyZ7ceOQ2FY5n6UYr8X3Vru-zqkt40hcCPbv2yvLlLMeqSOE2r7DN_poQiv/s5472/IMG_0547.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsFUgI6eFsooR7dkg-lWrzdNVcSBLX5WQNz831UcPxItuEgZpPaySS3NFdd18EKjE0oMgZdakzEzjDAtBxseM7RstCp_dAu1xXYeDTxQmNnD5VgXaGmFmVC7viRcq3nKyZ7ceOQ2FY5n6UYr8X3Vru-zqkt40hcCPbv2yvLlLMeqSOE2r7DN_poQiv/w640-h426/IMG_0547.JPG" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Trains at Uppsala C<br /></td></tr></tbody></table><br /><p style="text-align: left;">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.</p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmUmc_JeoMlKLqb4oS9_1KiogG7e8T0m7GBCXCHu52bs80NjfhJMVNvnaWqOrdylKBEqNY1fy4cYvrPteaTPJSQM7aSAl0Cw94WVfzDaeMnRQoFW10dxWhOEJxgOfRX6wlKv-ZbheiUfabyULnhcIwRE87WRIxFf26yQd_KiLkZzi-Ohw5-tFsFRZD/s5472/IMG_0548.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmUmc_JeoMlKLqb4oS9_1KiogG7e8T0m7GBCXCHu52bs80NjfhJMVNvnaWqOrdylKBEqNY1fy4cYvrPteaTPJSQM7aSAl0Cw94WVfzDaeMnRQoFW10dxWhOEJxgOfRX6wlKv-ZbheiUfabyULnhcIwRE87WRIxFf26yQd_KiLkZzi-Ohw5-tFsFRZD/w640-h426/IMG_0548.JPG" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">View over Sergels torg in Stockholm<br /></td></tr></tbody></table><br /><p style="text-align: left;"><br /></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAhdOSjtpz4M1Hztc797V3AzHw5ox_pi_UkKVjzlWJ5RQLQiLq3pMdkt7cXpHGlJlhlJADRdsSwpGj1u5F0aldKYq5Tvxc8meRwCBVo5XI39ziFH4BJ_yKr0-YYrNyjjo-g2CzF-27bSRSqRFHqCqyKfOJGC943nSh3CCUGs2oUIQG-iWDlF9eZW2g/s5472/IMG_0552.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAhdOSjtpz4M1Hztc797V3AzHw5ox_pi_UkKVjzlWJ5RQLQiLq3pMdkt7cXpHGlJlhlJADRdsSwpGj1u5F0aldKYq5Tvxc8meRwCBVo5XI39ziFH4BJ_yKr0-YYrNyjjo-g2CzF-27bSRSqRFHqCqyKfOJGC943nSh3CCUGs2oUIQG-iWDlF9eZW2g/w640-h426/IMG_0552.JPG" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Finally some fika at the cafe Lilla Hasselbacken<br /></td></tr></tbody></table><p></p><p>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 😎</p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_02UG69SMb6tul8ozowbOM-YfD8l9_hSCccbZ4H3TYI3Q3Gc3qDi0xuuNqwXNyz1xJfjSsUxiwvEiloWn2kLKVw2eqEgb8tFInXbF4ZmcZI3GP09Xv7JXrKfv-afidlpjGugI0_Yx_UFlACiOVsNRMnuyCU4XljrZRH6BGwvZxxR2srIqNuuU0_Bx/s5472/IMG_0556.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_02UG69SMb6tul8ozowbOM-YfD8l9_hSCccbZ4H3TYI3Q3Gc3qDi0xuuNqwXNyz1xJfjSsUxiwvEiloWn2kLKVw2eqEgb8tFInXbF4ZmcZI3GP09Xv7JXrKfv-afidlpjGugI0_Yx_UFlACiOVsNRMnuyCU4XljrZRH6BGwvZxxR2srIqNuuU0_Bx/w640-h426/IMG_0556.JPG" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">The nice bar at Belgobaren. This place is also the hotel restaurant for Freys Hotel<br /></td></tr></tbody></table><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM4J-YJOjvPFdLBGgQ5KF_N9MWFFozxlojTXvPMLV8Ec6eqVQJDU97QIfLqBJcqAgvZdRrs-uJmGfhqjjCjj27HEupFc8Ja7aqm1s0daAxmm_x8FZ0C-hYAo9l0Y5nCZW4rCDbrrBJHNCOQOuqEBnicv1bXFLq3v27PMniIG91V_bEDFfR32AYKGw3/s5472/IMG_0558.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM4J-YJOjvPFdLBGgQ5KF_N9MWFFozxlojTXvPMLV8Ec6eqVQJDU97QIfLqBJcqAgvZdRrs-uJmGfhqjjCjj27HEupFc8Ja7aqm1s0daAxmm_x8FZ0C-hYAo9l0Y5nCZW4rCDbrrBJHNCOQOuqEBnicv1bXFLq3v27PMniIG91V_bEDFfR32AYKGw3/w640-h426/IMG_0558.JPG" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijfSjpVsQHebv8CW9UnUzQ9TMBsfnXBQCx6ZZ48COKWMkxEMWSi9WqZl_AMX-LMJdHFfn9BKpr1ZV6i496Z8ZQEEcXxTIbYpgKoFFvtFEb7QYHItBxmvLSjITocQYskDjrE7qrTPoKn4wZtEqpwV2rWopzvFcCDTNQB0IOeFNRDTZxo5IJMarOg6ls/s5472/IMG_0559.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijfSjpVsQHebv8CW9UnUzQ9TMBsfnXBQCx6ZZ48COKWMkxEMWSi9WqZl_AMX-LMJdHFfn9BKpr1ZV6i496Z8ZQEEcXxTIbYpgKoFFvtFEb7QYHItBxmvLSjITocQYskDjrE7qrTPoKn4wZtEqpwV2rWopzvFcCDTNQB0IOeFNRDTZxo5IJMarOg6ls/w640-h426/IMG_0559.JPG" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ16W3BK7fDfixQ1nmCvokx6-dHZZYzngrM_GYdtGjhuhoQDMI9FGLsE3UvZk4waqmCclCdy8IiRovHhh68tBZ70LyRpxuSfMX0FEELcvOSgLLy9Yo7uZZfEL3XfQ3qgPMLLan8LQtNTowYxp9O_a2DEPbCd9YVwA69Xkf8VzkqP9CexXJANTGp82Q/s5472/IMG_0560.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ16W3BK7fDfixQ1nmCvokx6-dHZZYzngrM_GYdtGjhuhoQDMI9FGLsE3UvZk4waqmCclCdy8IiRovHhh68tBZ70LyRpxuSfMX0FEELcvOSgLLy9Yo7uZZfEL3XfQ3qgPMLLan8LQtNTowYxp9O_a2DEPbCd9YVwA69Xkf8VzkqP9CexXJANTGp82Q/w640-h426/IMG_0560.JPG" width="640" /></a></div><p>Half an hour or so before the night train was about to leave I headed back to the station.</p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFz3IclqXnwPaa08J2rE0VcD1kzHqvFVpyGXCYYFQ0DlzOs2eg2313duZieSEZ-wPuSPVJtIJqRKFHapUzvjW4B_JBEA2yiyb6WVEOhOf-jCk_6Q6IlHKRAwL0PQt93qFXH9kymTpqahCVYgwF7giH3vm-Of1drmx4_1bO63eiwlILp45tyr8tSP_M/s5472/IMG_0562.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFz3IclqXnwPaa08J2rE0VcD1kzHqvFVpyGXCYYFQ0DlzOs2eg2313duZieSEZ-wPuSPVJtIJqRKFHapUzvjW4B_JBEA2yiyb6WVEOhOf-jCk_6Q6IlHKRAwL0PQt93qFXH9kymTpqahCVYgwF7giH3vm-Of1drmx4_1bO63eiwlILp45tyr8tSP_M/w640-h426/IMG_0562.JPG" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">The departure board<br /></td></tr></tbody></table><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi31BOn60_kq_uxJPmbvBqPC2dAd1mqkrluOTB6rdUVdl3XRGJW7f01y3SB3r5POlTQWwBcWzdULoWCki2PjgYVmEiQfAGoYfu1xWrlOngDd0_g0sa8nhqqXMi5Xb54tev-WRKP2hFEp4Qtf8DGYD0B_ObunumhPFVVOgTgVEAT0PJQjYRgNwd49oZM/s5472/IMG_0565.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi31BOn60_kq_uxJPmbvBqPC2dAd1mqkrluOTB6rdUVdl3XRGJW7f01y3SB3r5POlTQWwBcWzdULoWCki2PjgYVmEiQfAGoYfu1xWrlOngDd0_g0sa8nhqqXMi5Xb54tev-WRKP2hFEp4Qtf8DGYD0B_ObunumhPFVVOgTgVEAT0PJQjYRgNwd49oZM/w640-h426/IMG_0565.JPG" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">At track 10, next train is ours…<br /></td></tr></tbody></table><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7huvHSAuQ4JgQhfzueT1kb4mOQW1rGC2ktOzxlB43zOllhM_xr6tLqQmel09dzUrOgM5vZEMnkIX0UenN2W2kKbqyZuxyijInPxQn6YtYitPopiDtstCb8prKZkFjbkU9wroYj-VHQAKBKRK1E_x0ZT6mNU_gjpjC1Izy8chBYJLL-swKc0D0f7Ia/s5472/IMG_0572.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7huvHSAuQ4JgQhfzueT1kb4mOQW1rGC2ktOzxlB43zOllhM_xr6tLqQmel09dzUrOgM5vZEMnkIX0UenN2W2kKbqyZuxyijInPxQn6YtYitPopiDtstCb8prKZkFjbkU9wroYj-VHQAKBKRK1E_x0ZT6mNU_gjpjC1Izy8chBYJLL-swKc0D0f7Ia/w640-h426/IMG_0572.JPG" width="640" /></a></div><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLagVwkjPd0BkmK0rV9XlLMOADNeVxc3tnhdorYor_vOcaCkSEnL2yZoFFNDNsX7Fdvj7LDGEg1cuqn0tC4lXXvs3tHdbA0FiQa9e-x64QdfZ_KIxqq0NMaoLlELOfM06D6aMSNQoeinOkqeFCBUbEqJHgzgRCL0d_IUBqD8gVpkxSJHJiGSt7sUAk/s5472/IMG_0573.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLagVwkjPd0BkmK0rV9XlLMOADNeVxc3tnhdorYor_vOcaCkSEnL2yZoFFNDNsX7Fdvj7LDGEg1cuqn0tC4lXXvs3tHdbA0FiQa9e-x64QdfZ_KIxqq0NMaoLlELOfM06D6aMSNQoeinOkqeFCBUbEqJHgzgRCL0d_IUBqD8gVpkxSJHJiGSt7sUAk/w640-h426/IMG_0573.JPG" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">These are old German sleeper cars<br /></td></tr></tbody></table><p>Arriving in Hamburg the morning after around halv an hour or so behind schedule</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2xx4j8DULpF7G5Fa4COynNLsmlWSSl8xzhgJe8O-O00T_vrIJDUxKNxyZRQaLK0uBacf3WWP-fo8lQd7bVaF9PeU-rVfKH6NdV5BG8TB7PM6yoyclpyRKs1yHFdHCsTb7TNd8lAJNrqHC-jq9ZrlGRDkEkMYq_03cRzjsDu0H5cpcMKzo85PKaxgF/s5472/IMG_0580.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2xx4j8DULpF7G5Fa4COynNLsmlWSSl8xzhgJe8O-O00T_vrIJDUxKNxyZRQaLK0uBacf3WWP-fo8lQd7bVaF9PeU-rVfKH6NdV5BG8TB7PM6yoyclpyRKs1yHFdHCsTb7TNd8lAJNrqHC-jq9ZrlGRDkEkMYq_03cRzjsDu0H5cpcMKzo85PKaxgF/w640-h426/IMG_0580.JPG" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjitsl-MAnzLSkC8UEFItx6fo3zkL5T4GYL3dpCCOoGYkfxCBE1oo4qv60bnnZwXeqpToOmDjTZrnXXnvN8sfNtYlVkk1d8MLMTFzbN-Wu9VOR_0onEq13FxJWR0kt01aGltKQqGOHJOmGwLcheoftwcD_DZagpwGO5YgWNTodrxbuQHiaJeZqGX-x-/s5472/IMG_0581.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjitsl-MAnzLSkC8UEFItx6fo3zkL5T4GYL3dpCCOoGYkfxCBE1oo4qv60bnnZwXeqpToOmDjTZrnXXnvN8sfNtYlVkk1d8MLMTFzbN-Wu9VOR_0onEq13FxJWR0kt01aGltKQqGOHJOmGwLcheoftwcD_DZagpwGO5YgWNTodrxbuQHiaJeZqGX-x-/w640-h426/IMG_0581.JPG" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOwofmC9ZfPmm7R_JXmh3ZcQPPppVeDKzDVIQJPrvbSee4PZDDX6v38yLCUh60d2UxInPbRc5iaKTO928RxNfZJPGfh8xCQf_co2fJ2gyMmSHEqjKNskivPotUyLp6eUlwtScQyiB_pzBPb-nhTeq09x0eTTy_PsSHdj6mPGrWR5dO4jyPh4q0GtXl/s5472/IMG_0583.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOwofmC9ZfPmm7R_JXmh3ZcQPPppVeDKzDVIQJPrvbSee4PZDDX6v38yLCUh60d2UxInPbRc5iaKTO928RxNfZJPGfh8xCQf_co2fJ2gyMmSHEqjKNskivPotUyLp6eUlwtScQyiB_pzBPb-nhTeq09x0eTTy_PsSHdj6mPGrWR5dO4jyPh4q0GtXl/w640-h426/IMG_0583.JPG" width="640" /></a></div><p>Had a bit of breakfast at one of the cafe places in the station.</p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1IpzDi5Tc3zXVYNb_CNvPXAB1d729Fupv2VoAbWR9yXAWOSnyJuxVC3R0fId63IP0pnCHKt3sWwuzjQiAd0twg0Ltx3D0JW4Nju6o-_4tIwcx-xtiYBlrKKZWp1FFUyvTZjN0MWsZm4lzBZ25zKNAq7O7CAWiZVtUPF1LReig5dK2lM1cz-ZV4bEc/s5472/IMG_0584.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1IpzDi5Tc3zXVYNb_CNvPXAB1d729Fupv2VoAbWR9yXAWOSnyJuxVC3R0fId63IP0pnCHKt3sWwuzjQiAd0twg0Ltx3D0JW4Nju6o-_4tIwcx-xtiYBlrKKZWp1FFUyvTZjN0MWsZm4lzBZ25zKNAq7O7CAWiZVtUPF1LReig5dK2lM1cz-ZV4bEc/w640-h426/IMG_0584.JPG" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Coffee and a sandwich<br /></td></tr></tbody></table><p></p><p><br /></p><p>Taking a morning walk and visiting the exhibition at the city hall (which was thankfully opening at this early time of day).<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmWbvH-LK1LTIi3AoV1e0chbChV4wmvpou_32dYtzvnYBe1mPQq5GFUGvFp5Cplw5EDhxZNgHwh6d5SPhyphenhyphenXcXXY3wFqxduKDBMtCdgfitpLG40b0g8whreFHIib3p0SymeT7PwseK2XCKgT7kTA99bY5jhJdFS9VxHa6IU23S4nmFUWmH1kqrrZeQ8/s5472/IMG_0587.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmWbvH-LK1LTIi3AoV1e0chbChV4wmvpou_32dYtzvnYBe1mPQq5GFUGvFp5Cplw5EDhxZNgHwh6d5SPhyphenhyphenXcXXY3wFqxduKDBMtCdgfitpLG40b0g8whreFHIib3p0SymeT7PwseK2XCKgT7kTA99bY5jhJdFS9VxHa6IU23S4nmFUWmH1kqrrZeQ8/w640-h426/IMG_0587.JPG" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQCo0qqCar3t_WEVcCh885MvW5WDyKr53fJjsPOcSjN0QFiWkfy6ceLcChLDgMEUblaCp55IBc3-Ly_luqpOW2tCghSvrL_rbkoWokBUOa-I1_lsaXRmn_yTKfJIh66d1MdXAOxmB3OnTrJ3FZKjLDGx2oeuT0APEFH82erAjRT8idAltsKaz23LRa/s5472/IMG_0589.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="5472" data-original-width="3648" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQCo0qqCar3t_WEVcCh885MvW5WDyKr53fJjsPOcSjN0QFiWkfy6ceLcChLDgMEUblaCp55IBc3-Ly_luqpOW2tCghSvrL_rbkoWokBUOa-I1_lsaXRmn_yTKfJIh66d1MdXAOxmB3OnTrJ3FZKjLDGx2oeuT0APEFH82erAjRT8idAltsKaz23LRa/w426-h640/IMG_0589.JPG" width="426" /></a></div><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaiiQHMETFgadKEyQZPl9OeW26A3h_zIZ_OZtV_BEMUAepWiEzKlPsvt7HMHEbpEzNc2TDTWbqsAb3JRT9J_mUGu5eRBu_KdgMp4nTBPIrOKWk8ZIrZ-7L_7J3VIWjoPoVnrWAfqihMQtEH4i_4VuVXdbM4M5tY-oTZV-V5NXJ-2Ii3ueAZWHczXnG/s5472/IMG_0591.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaiiQHMETFgadKEyQZPl9OeW26A3h_zIZ_OZtV_BEMUAepWiEzKlPsvt7HMHEbpEzNc2TDTWbqsAb3JRT9J_mUGu5eRBu_KdgMp4nTBPIrOKWk8ZIrZ-7L_7J3VIWjoPoVnrWAfqihMQtEH4i_4VuVXdbM4M5tY-oTZV-V5NXJ-2Ii3ueAZWHczXnG/w640-h426/IMG_0591.JPG" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Hamburh Rathaus (city hall)<br /></td></tr></tbody></table><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnZ7AmS9fa2NndtHdBxfEzD15oelgdxQzYvI4-B1CFtxfdVj_wh7BjO5px8MA5dUOUagthda03N196AWDsRSiDgqrWsiV5OHxxD3NA7RuAI1KLYgloowvcwPSS2ozJhh0PLI35idG20_9lbxGB1Pw8IHp0eH6-HwaiHS2KI-egbZ8iM7EK7dYY_eav/s5472/IMG_0594.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="5472" data-original-width="3648" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnZ7AmS9fa2NndtHdBxfEzD15oelgdxQzYvI4-B1CFtxfdVj_wh7BjO5px8MA5dUOUagthda03N196AWDsRSiDgqrWsiV5OHxxD3NA7RuAI1KLYgloowvcwPSS2ozJhh0PLI35idG20_9lbxGB1Pw8IHp0eH6-HwaiHS2KI-egbZ8iM7EK7dYY_eav/w426-h640/IMG_0594.JPG" width="426" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYHBgHGA3PWQgLO1sJiiGJyUdKsEf0sB6lgrOM1EmL3jwQOsCCkT1E2RRgPGO6bK0fqMkk_Z6U4xpJijzJxkCPoBjQ1PEq85Cg9czqygrfpbEfs5Z4bLqhu_5s045D-EEC-qnVL6XIZIhwzCeBKdDTLLCutsZhFyB6a7d-8dQ5emTlomIFS1DB-XrC/s5472/IMG_0597.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYHBgHGA3PWQgLO1sJiiGJyUdKsEf0sB6lgrOM1EmL3jwQOsCCkT1E2RRgPGO6bK0fqMkk_Z6U4xpJijzJxkCPoBjQ1PEq85Cg9czqygrfpbEfs5Z4bLqhu_5s045D-EEC-qnVL6XIZIhwzCeBKdDTLLCutsZhFyB6a7d-8dQ5emTlomIFS1DB-XrC/w640-h426/IMG_0597.JPG" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3JjsxR30Suu4bUiKQ98Dbhnu-UTliRUTQKF72hjE-lvc02xuC4KbzzDm_LZZkpdt8dil2JB2ql_PeABhcQMeDnbHYX73EJs_2DIelshW3s_PJ0jKWTVxdSg9Cy9UDu309eR4jrgOJtTq8AUdkjrlZLZ6rgiR_qdDkXlESE00-wfbyNq72t36PHuzz/s5472/IMG_0613.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3JjsxR30Suu4bUiKQ98Dbhnu-UTliRUTQKF72hjE-lvc02xuC4KbzzDm_LZZkpdt8dil2JB2ql_PeABhcQMeDnbHYX73EJs_2DIelshW3s_PJ0jKWTVxdSg9Cy9UDu309eR4jrgOJtTq8AUdkjrlZLZ6rgiR_qdDkXlESE00-wfbyNq72t36PHuzz/w640-h426/IMG_0613.JPG" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyEwznDq5tqbiXvTt9fKN75SSQorU2bOMgWY4-nzQysJdPTxhMbPl2BrTSseXZDYQV02Z9FjX_LvesZotpkOfSC9VNCbyFGKrF6kBteBRjgTJSo9-3_f1sxnkyiALRwvD6RsNzMO6R0vr1EJ2GlGCirIMGoILicbL-VA9eYN2w-xnRHNJ8YgH3hSpi/s5472/IMG_0615.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyEwznDq5tqbiXvTt9fKN75SSQorU2bOMgWY4-nzQysJdPTxhMbPl2BrTSseXZDYQV02Z9FjX_LvesZotpkOfSC9VNCbyFGKrF6kBteBRjgTJSo9-3_f1sxnkyiALRwvD6RsNzMO6R0vr1EJ2GlGCirIMGoILicbL-VA9eYN2w-xnRHNJ8YgH3hSpi/w640-h426/IMG_0615.JPG" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiilUie62kQhhToztgC3pnTdWRjSPOzMGHl7wTo-ZLN18ADqwf3uVskaPimHQkx0HOCQzcgOu4AqAfvy49_EhxTL-7ukb5KFVpvZ1aCSkeem6e528NL4TpMHgH1cs3YYfTSDPRFwgXyvXTwKUgMCeblboVj4xeAOk1-3CFvGAC_Pc1hIO2reXVSLL3V/s5472/IMG_0616.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiilUie62kQhhToztgC3pnTdWRjSPOzMGHl7wTo-ZLN18ADqwf3uVskaPimHQkx0HOCQzcgOu4AqAfvy49_EhxTL-7ukb5KFVpvZ1aCSkeem6e528NL4TpMHgH1cs3YYfTSDPRFwgXyvXTwKUgMCeblboVj4xeAOk1-3CFvGAC_Pc1hIO2reXVSLL3V/w640-h426/IMG_0616.JPG" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYwJy_G96sZfdMNLA4AIDjhu2Oe9FvJYDjKjtk0cdSbWucKRWYsr5SRIp1yY5Ogv9zbarbb2OmtqKe-N_c69BlulkMzCHMisdlCUXxHo0PjdF4yMdtjVp6d-Uy_EmX7Bi1i_7Xk5URBLEyrk8IaqFg3hiJZYejcQ6DIXAq5FwYdATeiQGKHAkVzFCp/s5472/IMG_0617.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="5472" data-original-width="3648" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYwJy_G96sZfdMNLA4AIDjhu2Oe9FvJYDjKjtk0cdSbWucKRWYsr5SRIp1yY5Ogv9zbarbb2OmtqKe-N_c69BlulkMzCHMisdlCUXxHo0PjdF4yMdtjVp6d-Uy_EmX7Bi1i_7Xk5URBLEyrk8IaqFg3hiJZYejcQ6DIXAq5FwYdATeiQGKHAkVzFCp/w426-h640/IMG_0617.JPG" width="426" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_nCbSVrBhOb9fdqmubhqh0XVaZC7Ffh8YlqWF4iifqWmAOWDCZeYH5GIF0QwziZjHhwyjy5VfjtTod8dEZkGetHBvuikanxnMer9bUQtZYWVlf0_QTfiug4ZScg5WN-b-VnBnxVkrqvV7mguOl6nQc3weUTUE_52U0lLV6tadMZs2PEx_-H3SX-mr/s5472/IMG_0630.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_nCbSVrBhOb9fdqmubhqh0XVaZC7Ffh8YlqWF4iifqWmAOWDCZeYH5GIF0QwziZjHhwyjy5VfjtTod8dEZkGetHBvuikanxnMer9bUQtZYWVlf0_QTfiug4ZScg5WN-b-VnBnxVkrqvV7mguOl6nQc3weUTUE_52U0lLV6tadMZs2PEx_-H3SX-mr/w640-h426/IMG_0630.JPG" width="640" /></a></div><br /><p>Arriving back at the station awaiting the departure of the next train towards Köln (Cologne).</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoQaDdAZ963XossxvOrwqy7j0E_d7JKZW2nmw6RvnBcLSSK7q557OKebf1wOq4W2oxjkRxvzV9aR-2F1HKUQWdRO_Z47n7A8fas3i3sQT4lmsylRQe8pVX6bsX6_BxZNED4f5RqqhYs5085n1E_Vey-NbzoB7bPZHzEh_DIPxxY1AANAS9nIcaaDin/s5472/IMG_0632.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoQaDdAZ963XossxvOrwqy7j0E_d7JKZW2nmw6RvnBcLSSK7q557OKebf1wOq4W2oxjkRxvzV9aR-2F1HKUQWdRO_Z47n7A8fas3i3sQT4lmsylRQe8pVX6bsX6_BxZNED4f5RqqhYs5085n1E_Vey-NbzoB7bPZHzEh_DIPxxY1AANAS9nIcaaDin/w640-h426/IMG_0632.JPG" width="640" /></a></div><p>Shortly before the train was supposed to depart it was announced as being cancelled…</p><p>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.</p><p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsi_MK5tlAmOVDtI8N9-YK5rec_v8Fu24AiW-uMOu1wh650Kii6joKtMcyIT6Qzw506GiZsBkJ4Fw-Z_4-57LDKoKaKsY-Fgqik14Asq9SA0TUHN1B3waisCC-N8iUX1mIOconN21CaNZ5LoLKfxlki21NA_d-T9cgIk9awuengL6Fee5lS_pKIwxo/s5472/IMG_0633.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsi_MK5tlAmOVDtI8N9-YK5rec_v8Fu24AiW-uMOu1wh650Kii6joKtMcyIT6Qzw506GiZsBkJ4Fw-Z_4-57LDKoKaKsY-Fgqik14Asq9SA0TUHN1B3waisCC-N8iUX1mIOconN21CaNZ5LoLKfxlki21NA_d-T9cgIk9awuengL6Fee5lS_pKIwxo/w640-h426/IMG_0633.JPG" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">At Düsseldorf Hbf<br /></td></tr></tbody></table><br /></p><p>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.</p><p>Later filed a claim for a refund for this. And as I had not registered an account beforehand at bahn.de 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.</p><p>Eventually arrived in Brussels an hour and some delayed.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgijUqINDcDtv2jNRmFipMbh_RCMoG0jR0b6jjikZU-3CKyPUynf8YgbVbLKstrJb83UYWIPMWVfRqewkUQJUQNzmUxmqDjNHLPbNtX_9uqSReKgCE9i5xzr99Qfh5MJCjXFxKmWbvRqaYkisDKliZO7j5EyzgPXs_AfV8bwCTkN9kn66wnPD3QgI5f/s5472/IMG_0637.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgijUqINDcDtv2jNRmFipMbh_RCMoG0jR0b6jjikZU-3CKyPUynf8YgbVbLKstrJb83UYWIPMWVfRqewkUQJUQNzmUxmqDjNHLPbNtX_9uqSReKgCE9i5xzr99Qfh5MJCjXFxKmWbvRqaYkisDKliZO7j5EyzgPXs_AfV8bwCTkN9kn66wnPD3QgI5f/w640-h426/IMG_0637.JPG" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIzKhyDASj8BIdyFHnhO9q_Zj7V3vPw7MZfBGZUff0-3eeerAFUXH6HF970BhEnWeRt_OyDHUjeHaspHhnN4vPD3NygAvxLB9krgYYeBpdlwK5WAhcJDa3exsxm0elNSj7fsAz9qWr5NhfQDtFujrQAM-XjjCa9LkLNMA1pboCrxh_yIl8-XFXHIjR/s5472/IMG_0638.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="5472" data-original-width="3648" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIzKhyDASj8BIdyFHnhO9q_Zj7V3vPw7MZfBGZUff0-3eeerAFUXH6HF970BhEnWeRt_OyDHUjeHaspHhnN4vPD3NygAvxLB9krgYYeBpdlwK5WAhcJDa3exsxm0elNSj7fsAz9qWr5NhfQDtFujrQAM-XjjCa9LkLNMA1pboCrxh_yIl8-XFXHIjR/w426-h640/IMG_0638.JPG" width="426" /></a></div><br /><h2 style="text-align: left;">The actual FOSDEM</h2><p style="text-align: left;">Not so much from the acual FOSDEM in this post, but OK a few pictures from ULB…</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbaeE1JafCY1jRVLZ-mBD1DT_Egp2m8yiedIVJPH9BYPejkM0Gz7-qDk74-_8FQbYXv2q9DRNhFP3aJcU-398DVwmAE4UkRtzFSuuM5NWAm6DS301E-HbelZJ3pmiXy8J9W28KfvTonute0RZqGb9LRsyHhmjrKbw3vwfNOm9MPD8mdvO6PdJdtiFT/s5472/IMG_0643.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbaeE1JafCY1jRVLZ-mBD1DT_Egp2m8yiedIVJPH9BYPejkM0Gz7-qDk74-_8FQbYXv2q9DRNhFP3aJcU-398DVwmAE4UkRtzFSuuM5NWAm6DS301E-HbelZJ3pmiXy8J9W28KfvTonute0RZqGb9LRsyHhmjrKbw3vwfNOm9MPD8mdvO6PdJdtiFT/w640-h426/IMG_0643.JPG" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha34hK9BynxI0VsKkg-PaKXkJ3rjkMVVM2_HKQ0Iaz4Gy_Xw3qxodU0p9CQ19gP9AYDq9Yb5Z8EAcgkIPDVCCQmCOSLyH7xv1ml2NyVZNrgA2ths4qkJb2yBV-jD5z9F3ZR1ABhYxC1TDKZc73dbuHCov9Idiv2XZ0phCqV3I8aVrdQLJP2CvOpCqk/s5472/IMG_0649.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha34hK9BynxI0VsKkg-PaKXkJ3rjkMVVM2_HKQ0Iaz4Gy_Xw3qxodU0p9CQ19gP9AYDq9Yb5Z8EAcgkIPDVCCQmCOSLyH7xv1ml2NyVZNrgA2ths4qkJb2yBV-jD5z9F3ZR1ABhYxC1TDKZc73dbuHCov9Idiv2XZ0phCqV3I8aVrdQLJP2CvOpCqk/w640-h426/IMG_0649.JPG" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHcY1u4L8xQRD-6-KABCwTsVftY1MznUJSJetjSvYa3QfYG_NM0wd27Jqfy09_uTtp4KcdqKIJkQRAdwETOsI5V2C-wwxLYe-TfmrGIgBGKMbU_fqJZGD7RXsUrP1nevME-Cq7LD9QGpHm0YCoQfsZuNfIWlAJDHbMWx6JiRpKbCW5wV55mtA4X2VT/s5472/IMG_0660.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHcY1u4L8xQRD-6-KABCwTsVftY1MznUJSJetjSvYa3QfYG_NM0wd27Jqfy09_uTtp4KcdqKIJkQRAdwETOsI5V2C-wwxLYe-TfmrGIgBGKMbU_fqJZGD7RXsUrP1nevME-Cq7LD9QGpHm0YCoQfsZuNfIWlAJDHbMWx6JiRpKbCW5wV55mtA4X2VT/w640-h426/IMG_0660.JPG" width="640" /></a></div><br /><h2 style="text-align: left;">The journey back home</h2><p style="text-align: left;">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.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ-F9UwZXSHYJKancLX4D7i793hXqqwf_cSKf3KuziSEIbgPjSGDcqEGfK1Ed6m77gjp2W7kTnMCPXKEZHRjSeFWDcAFGQa148JeYtkXgZGDTOfNnU6MBwdRn4PstW4dRmvNxH3d80XchToNgZ-tR3WblWBq6dNsuEXawb0FcxU651KCtaJNj3iGdJ/s5472/IMG_0667.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ-F9UwZXSHYJKancLX4D7i793hXqqwf_cSKf3KuziSEIbgPjSGDcqEGfK1Ed6m77gjp2W7kTnMCPXKEZHRjSeFWDcAFGQa148JeYtkXgZGDTOfNnU6MBwdRn4PstW4dRmvNxH3d80XchToNgZ-tR3WblWBq6dNsuEXawb0FcxU651KCtaJNj3iGdJ/w640-h426/IMG_0667.JPG" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-t1aLG6pbifWOZfQ9UMAObxnEuncr0Of87u07zijwU8W-AmViZF-xnEnXdsnDtyDW2E8UJedIJQS5p6Se9dVTFhjwJxaTVNt9baHyGNG0Vy8nab0jf7EI2_vQgfljaJD6HzGzPQCWSV6bWTOHbEpjdm9gfCJxVr8Q-KnaHN4smOIxY6kfURKnNL5V/s5472/IMG_0670.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-t1aLG6pbifWOZfQ9UMAObxnEuncr0Of87u07zijwU8W-AmViZF-xnEnXdsnDtyDW2E8UJedIJQS5p6Se9dVTFhjwJxaTVNt9baHyGNG0Vy8nab0jf7EI2_vQgfljaJD6HzGzPQCWSV6bWTOHbEpjdm9gfCJxVr8Q-KnaHN4smOIxY6kfURKnNL5V/w640-h426/IMG_0670.JPG" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg_83BuFqHm7A9gQdakWC-hpuq7pkHzbuZBYPHRwVbw4yDU6ocqQiWB_VUl0y5gEJIuhTj_trhrzgwihOz30TAbfVlrDxx6UsCrrGpVxiH6HGIcru8FPeJxzfKGOiTAXj7LjDr3_bOJju31jD3BZjS7K6oEfwxAs3h_PQgZ7VybkrIrNNRbczYuK0s/s5472/IMG_0674.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg_83BuFqHm7A9gQdakWC-hpuq7pkHzbuZBYPHRwVbw4yDU6ocqQiWB_VUl0y5gEJIuhTj_trhrzgwihOz30TAbfVlrDxx6UsCrrGpVxiH6HGIcru8FPeJxzfKGOiTAXj7LjDr3_bOJju31jD3BZjS7K6oEfwxAs3h_PQgZ7VybkrIrNNRbczYuK0s/w640-h426/IMG_0674.JPG" width="640" /></a></div><br /><p style="text-align: left;">The next thing that happend was a bit eventful though…</p><p style="text-align: left;">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!).</p><p style="text-align: left;">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).</p><p style="text-align: left;">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.</p><p style="text-align: left;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxyL-xEXLis6RrmHVKfdOLN6caohv-khct9ZBeFkC9pqG0ZfsjO-__w13ke4yzewHdTMzh80324W2cDEPHgIwkiCMRTHDwP33W39ujpFpjDp7AClMnjUSgC_2xUGabhbC7b4ttMvOmOQETJtZsr-nkeJ6PmwlZFMC1uXACK_BczkctkX194ZjfYvIr/s5472/IMG_0681.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxyL-xEXLis6RrmHVKfdOLN6caohv-khct9ZBeFkC9pqG0ZfsjO-__w13ke4yzewHdTMzh80324W2cDEPHgIwkiCMRTHDwP33W39ujpFpjDp7AClMnjUSgC_2xUGabhbC7b4ttMvOmOQETJtZsr-nkeJ6PmwlZFMC1uXACK_BczkctkX194ZjfYvIr/w640-h426/IMG_0681.JPG" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">At Köln Hbf<br /></td></tr></tbody></table><br /> </p><p style="text-align: left;">Got a little less time than planned to get some snack at Köln Hbf.</p><p style="text-align: left;"> </p><p style="text-align: left;"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-x2Xw8g77k5wSkRObjSlBxpfhr12HZqLpZy2lu0XaWghqemqzzJ5uk0yz5hxcFklstgzs_CMEw4ZmcyOEUxvCV2WkMm2T5NvHHk1x3PVuZRWHyV1G3uvy_LmmlOmqjzZV30awkLoA-Vt4MibnzVi95LoPPauIZKyfggvzGM-VvXt6IPFNSXVUNeXm/s5472/IMG_0683.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-x2Xw8g77k5wSkRObjSlBxpfhr12HZqLpZy2lu0XaWghqemqzzJ5uk0yz5hxcFklstgzs_CMEw4ZmcyOEUxvCV2WkMm2T5NvHHk1x3PVuZRWHyV1G3uvy_LmmlOmqjzZV30awkLoA-Vt4MibnzVi95LoPPauIZKyfggvzGM-VvXt6IPFNSXVUNeXm/w640-h426/IMG_0683.JPG" width="640" /></a></div><br /> Arriving in Hamburg, after leaving the suitcase in a baggage locker, I took the S-Bahn to Landungsbrücke to visit the submarine museum.<p></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIpPuGNjoG-2SZ4Z6dbG2NdxYsdCj_oww75lOJGgCAAamMhKU6pcD5Dj1U8OgMPGtiIDOeevJKjn8gznp9FfPPTdNsoJWEGLC3qpHwQkYEFaI85FqUWXibFeT6eB2ZbMBLtC4XBd3oqSqBUSTbF-Bee4Ma0fjXZuxPtl3p08cKQZkm4EnCqouYSYjx/s5472/IMG_0688.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIpPuGNjoG-2SZ4Z6dbG2NdxYsdCj_oww75lOJGgCAAamMhKU6pcD5Dj1U8OgMPGtiIDOeevJKjn8gznp9FfPPTdNsoJWEGLC3qpHwQkYEFaI85FqUWXibFeT6eB2ZbMBLtC4XBd3oqSqBUSTbF-Bee4Ma0fjXZuxPtl3p08cKQZkm4EnCqouYSYjx/w640-h426/IMG_0688.JPG" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">The old Soviet submarine. Now as the U-434 submarine museum.<br /></td></tr></tbody></table><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRHhsQ1B5irRt1PE7yrGm6j3k9x9D9tC8DmxMRrVfYGC6uTVmuMwbxGocMrcr3oondlHuWkJiNIUlSC7uu21AmdkN5-B8DN1a-L0ahx1mHdj8IKqL41KUNJyGGJb3Etzbyx-JlDaEgQY0ECsYtChJ_W3MB-CTFe8MH0-BOCbJjZXWr66prJQUuf4Bg/s5472/IMG_0708.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRHhsQ1B5irRt1PE7yrGm6j3k9x9D9tC8DmxMRrVfYGC6uTVmuMwbxGocMrcr3oondlHuWkJiNIUlSC7uu21AmdkN5-B8DN1a-L0ahx1mHdj8IKqL41KUNJyGGJb3Etzbyx-JlDaEgQY0ECsYtChJ_W3MB-CTFe8MH0-BOCbJjZXWr66prJQUuf4Bg/w640-h426/IMG_0708.JPG" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw4EENsudZeL5EmRGPLQ5OyrTMI98sO8PkZmQJGrTUAnh9CuvTAMS3AFBew04RWyldoEniQt9ltfFYpHNm2H3_VIPmRoOBEvjeNSUe8sQX3BEIxXGaBMK3kF_DpqGz7aQlEoc8yaHMOu8rWn_So5oNONU5e6wmadotrCNqlRzvfIiklqFFgAilXdF7/s5472/IMG_0740.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw4EENsudZeL5EmRGPLQ5OyrTMI98sO8PkZmQJGrTUAnh9CuvTAMS3AFBew04RWyldoEniQt9ltfFYpHNm2H3_VIPmRoOBEvjeNSUe8sQX3BEIxXGaBMK3kF_DpqGz7aQlEoc8yaHMOu8rWn_So5oNONU5e6wmadotrCNqlRzvfIiklqFFgAilXdF7/w640-h426/IMG_0740.JPG" width="640" /></a></div><p style="text-align: left;">And after that a nice dinner at Blockbräu.</p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrC4QrypWQJQY8AlQHtDCHbStv760TVYDpKy-v4Rn2wjrcHO7-Iw-EJE6DmL04KQWBXpher_iokIvYo4dGiqHEhFQSpNF-C8XtUTCe4fU9hUGbfdQbpH1B2AY8CRc59CZkQHAgzS982f9hwP-_NyOIU8s1OPzv5WTVW6ghBOIkhGlzKmMlhtJXndBx/s5472/IMG_0751.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrC4QrypWQJQY8AlQHtDCHbStv760TVYDpKy-v4Rn2wjrcHO7-Iw-EJE6DmL04KQWBXpher_iokIvYo4dGiqHEhFQSpNF-C8XtUTCe4fU9hUGbfdQbpH1B2AY8CRc59CZkQHAgzS982f9hwP-_NyOIU8s1OPzv5WTVW6ghBOIkhGlzKmMlhtJXndBx/w640-h426/IMG_0751.JPG" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Blockbräu restaurant<br /></td></tr></tbody></table><p style="text-align: left;">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.</p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3Nym7Re4lu6XvRuidkQPn5qWkev6kFD2rRCGwrh8U-skr7bqE0F5qAWIz_wrWc-sF7K7Qg94IjzMwU5x-t7_2zknhVK0CTdJEkPluUkbx37S4YnRYhdtpQ2Pa5pzgWwDs3vBU05DQLyB6TskKjtOt3cahN6qhyDslZE4v08w_5hyphenhyphenjw2hEcs4yqpAJ/s5472/IMG_0754.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3Nym7Re4lu6XvRuidkQPn5qWkev6kFD2rRCGwrh8U-skr7bqE0F5qAWIz_wrWc-sF7K7Qg94IjzMwU5x-t7_2zknhVK0CTdJEkPluUkbx37S4YnRYhdtpQ2Pa5pzgWwDs3vBU05DQLyB6TskKjtOt3cahN6qhyDslZE4v08w_5hyphenhyphenjw2hEcs4yqpAJ/w640-h426/IMG_0754.JPG" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">The old tunnel<br /></td></tr></tbody></table><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbCK8hhVT6GZ28S3hgWdRe0VMauefhyphenhyphenXUfLhOURnQHqwCdpMjiDZUO6qde8m1JcABsz_RS7vuOzvPmyj3mSusWKFmzhdwU8f5yuknPxiUxl_mGySUNNj6vxW-8p5jHfT60p-YHsujL_EvxWKOCr5bfMcq8SYSBt_uXRxom_1Z0UpkTxggRuTbk_R0s/s5472/IMG_0755.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbCK8hhVT6GZ28S3hgWdRe0VMauefhyphenhyphenXUfLhOURnQHqwCdpMjiDZUO6qde8m1JcABsz_RS7vuOzvPmyj3mSusWKFmzhdwU8f5yuknPxiUxl_mGySUNNj6vxW-8p5jHfT60p-YHsujL_EvxWKOCr5bfMcq8SYSBt_uXRxom_1Z0UpkTxggRuTbk_R0s/w640-h426/IMG_0755.JPG" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Elevators taking cars. There's also smaller „regular” elevators. But I guess those are much newer…<br /></td></tr></tbody></table><p></p><p>Back at the station awaiting the train.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg_Hh7m_zLKVY1OAbKGnIvNHtJ-3NlbwFxTth_5Dj86GDvQi5pyqxPWIweHMqsVFf8Bp7Lis0Op6nS-WbVM8ZhBJt_auWVaTdkVNBlsLmvr2MLzD564Yptsf1AaJ-J45N3KNieFBqS3VzwscGYVmPvZs2yEqhlcJWAdyl5cVw5h2eD05uD25Cq9yTH/s5472/IMG_0756.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg_Hh7m_zLKVY1OAbKGnIvNHtJ-3NlbwFxTth_5Dj86GDvQi5pyqxPWIweHMqsVFf8Bp7Lis0Op6nS-WbVM8ZhBJt_auWVaTdkVNBlsLmvr2MLzD564Yptsf1AaJ-J45N3KNieFBqS3VzwscGYVmPvZs2yEqhlcJWAdyl5cVw5h2eD05uD25Cq9yTH/w640-h426/IMG_0756.JPG" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbccr44ZIZ28TC8t1QccBEVk29nDHuKZ6GQsE3QfFwXbpxVlZrYmEJ8x6FZ-UZJucv8L0jH6CehXC9Zbk8Ww3DPH6Sgsnf0PfFsRbTbUFQNg66AF1dfKof4AhHB05mpTmH5Nr4vTD8SyYU2yhXhmoBH866mHrGnbL14M6wy9Em3ONX9Z2_B7atka5w/s5472/IMG_0764.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbccr44ZIZ28TC8t1QccBEVk29nDHuKZ6GQsE3QfFwXbpxVlZrYmEJ8x6FZ-UZJucv8L0jH6CehXC9Zbk8Ww3DPH6Sgsnf0PfFsRbTbUFQNg66AF1dfKof4AhHB05mpTmH5Nr4vTD8SyYU2yhXhmoBH866mHrGnbL14M6wy9Em3ONX9Z2_B7atka5w/w640-h426/IMG_0764.JPG" width="640" /></a></div><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7uC5aMVgxZ4I9S4q2kG2etiMyzyKB5cSxp805lqKXDmiWgeX_TTQ40Thyc0ok8QVfYYp-ItaBYsxFHikotUytPIM2tPGY2-E5vN-k_0Vg-34xRMuMbMlN-pAYwhir6DOPTtsU3exReqKIVqdcZckYWlF_8MuvyipXIpW0SnmysXC9iLqfyUaSbye_/s5472/IMG_0766.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7uC5aMVgxZ4I9S4q2kG2etiMyzyKB5cSxp805lqKXDmiWgeX_TTQ40Thyc0ok8QVfYYp-ItaBYsxFHikotUytPIM2tPGY2-E5vN-k_0Vg-34xRMuMbMlN-pAYwhir6DOPTtsU3exReqKIVqdcZckYWlF_8MuvyipXIpW0SnmysXC9iLqfyUaSbye_/w640-h426/IMG_0766.JPG" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">The night train to Stockholm</td><td class="tr-caption" style="text-align: center;"><br /></td></tr></tbody></table><br /><p>And the morning after looking out from the last car of the train on the long straight around Mjölby</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8d8xTXPg3DtCEuV0-zb_2Lg_X6GKE5gYCFwUkgf2J8kfws3-Q1S-0xg-WlrrUy1XVIzxoCelxyXutOS73xmaje_xT-gTxtBUqfbdeQmFCcyWaimmO9Qa4W5R6fHJHCAHMAMfte9t_lM8FbHqC0q6s4n0obBj-5HmY-5zA0MNtziCjMpuXUz6ZX36R/s5472/IMG_0767.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="5472" data-original-width="3648" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8d8xTXPg3DtCEuV0-zb_2Lg_X6GKE5gYCFwUkgf2J8kfws3-Q1S-0xg-WlrrUy1XVIzxoCelxyXutOS73xmaje_xT-gTxtBUqfbdeQmFCcyWaimmO9Qa4W5R6fHJHCAHMAMfte9t_lM8FbHqC0q6s4n0obBj-5HmY-5zA0MNtziCjMpuXUz6ZX36R/w426-h640/IMG_0767.JPG" width="426" /></a></div><p></p><p>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.<br /></p><p><br /></p><p style="text-align: left;"><br /></p>Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com0tag:blogger.com,1999:blog-5620128670216603593.post-32717929538449197702024-01-31T23:11:00.001+01:002024-01-31T23:11:32.821+01:00FOSDEMaps<p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6j0Jr5IaqRo8ENVc1v0Sh1-A3XrOqFuvIiqABb0bPXriOkgEmCytGVWj8aJ8-4iquwLnFHXAishlMA2fwCAwuJW9WKP6BSvOSslOchmcRiU5c7QF79r6fL9zbqipcNuhZIlraSR_IqcF82GqGnftmrhTwBzz1hnwHdPkdyP0UrnJ9I_W6wusqOFli/s636/about-46beta.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="636" data-original-width="601" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6j0Jr5IaqRo8ENVc1v0Sh1-A3XrOqFuvIiqABb0bPXriOkgEmCytGVWj8aJ8-4iquwLnFHXAishlMA2fwCAwuJW9WKP6BSvOSslOchmcRiU5c7QF79r6fL9zbqipcNuhZIlraSR_IqcF82GqGnftmrhTwBzz1hnwHdPkdyP0UrnJ9I_W6wusqOFli/s16000/about-46beta.png" /></a></div><p></p><p>It's only a couple of days left until that weekend of the week of the turn of month between January and February, and that means it's time again for FOSDEM, gathering FOSS entusiasts in Brussels, Belgium. And I will be there as well!</p><p>There has been some nice improvements in Maps since the end-of-year post before New Years as well.</p><p>James Westman has continued improving vector rendering support in libshumate and also implemented the ability to click on symbols, so you can finally click on labels and icons on the map instead of using the „What's here?” context menu item, doing a reverse geocoding. That always felt a bit like a „work around”. This seems like one of those cases of „a video says more than a thousand images”.</p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dyt8o5jvkorq2XVuXzI33v1Is7kKnDYymbq5Xpg2gWTosFP27ipDFWT9Z-bKsbNgZLkLAvzNTg7uJ1DVo3lJA' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div><p></p><p>This is available when enabling the experimental vector map layer.<br /></p><p><br /></p><p>Another thing I have been working on is improving the experience of the favorites menu. Now instead of showing an insensitive, greye-out button in the headerbar when there are no places marked as favorites now the menu is always accessible, but instead shows an „empty state” when there are no places marked as favorites.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgje_12oYqZvnDxCuapQOI8Mc_OaB8sjzb19JQaRGq420yeBh-irijkTmoXHaHaEY9GhuYJPd0iVJ81DgOoV532xoxHeuOnuAS5dPuXCe7nz7ZX_2Q5oOc_6P4JMw4d2ReZo9ZAIdaVVjObms_tG0arVR2DSL5jK0FrZPgaxIGsHooohYl8JbN2Y2l7/s441/no-favorites.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="364" data-original-width="441" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgje_12oYqZvnDxCuapQOI8Mc_OaB8sjzb19JQaRGq420yeBh-irijkTmoXHaHaEY9GhuYJPd0iVJ81DgOoV532xoxHeuOnuAS5dPuXCe7nz7ZX_2Q5oOc_6P4JMw4d2ReZo9ZAIdaVVjObms_tG0arVR2DSL5jK0FrZPgaxIGsHooohYl8JbN2Y2l7/s16000/no-favorites.png" /></a></div><p>When there are places marked as favorites, there is now a close button next to the item allowing to remove it from favorites (rather than having to select the place and animate there to unmark the star icon in the popover showing).</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvW0Hl6l2kxKWxDJSlRPrNKoQmCjR_IZ2WzAv98Gr-dGoNOqwJusbHdEIrSYprz3Cil06DpPa32Br-H1erLti0-vce4UFAYTpvJQV4orUch6FCDL-3GPu7WNKRyT4bN88AnQsntwoM_yYiO20o3GSgP36_D24LqsXZ397ITQsHIIBpOI67n_xftM28/s441/favorites-close.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="364" data-original-width="441" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvW0Hl6l2kxKWxDJSlRPrNKoQmCjR_IZ2WzAv98Gr-dGoNOqwJusbHdEIrSYprz3Cil06DpPa32Br-H1erLti0-vce4UFAYTpvJQV4orUch6FCDL-3GPu7WNKRyT4bN88AnQsntwoM_yYiO20o3GSgP36_D24LqsXZ397ITQsHIIBpOI67n_xftM28/s16000/favorites-close.png" /></a></div><br /><p>When removing a favorite from menu a „toast” is displayed offering to undo this action (similar to when e.g. deleting files in Files).</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-bGzZBt8cKpj2Jr3Sa-7byHg2024ghFMHo6kv4lyZoqAdMgGdcAr-j9uQX9yuu9ZOgDDz81yVDsRHu7n4l_EalLxRhJsJJCfUlrIqVflov4QVQXwBXFl7sucikvjEvEwy2SEyKu2lKKnH3CLyt2fxqAPgfQL-EWhjve0E3pPpZbMcgEGewA90g0LA/s517/undo-remove-favorite.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="305" data-original-width="517" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-bGzZBt8cKpj2Jr3Sa-7byHg2024ghFMHo6kv4lyZoqAdMgGdcAr-j9uQX9yuu9ZOgDDz81yVDsRHu7n4l_EalLxRhJsJJCfUlrIqVflov4QVQXwBXFl7sucikvjEvEwy2SEyKu2lKKnH3CLyt2fxqAPgfQL-EWhjve0E3pPpZbMcgEGewA90g0LA/s16000/undo-remove-favorite.png" /></a></div><br /><p>Jakub Steiner has redesigned the map pin icon.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWIyr3RSGebHM8U8cVjVZ1mk3mZAN-7W3eMKKBy6p3XxMwreMj9XxlnUY65-hwpQFNAsj4t7V6M6dCoYmoKx5Pf_3Ed0HuB0qR_-9KVId_GMK_sk0g0FphWHBi23S-B2a6zijLX7YCXZZw8mydACMSY_RORdh_E1HQA8qCtdFKFC0CAjHm139PEb_9/s441/redesigned-pin.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="364" data-original-width="441" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWIyr3RSGebHM8U8cVjVZ1mk3mZAN-7W3eMKKBy6p3XxMwreMj9XxlnUY65-hwpQFNAsj4t7V6M6dCoYmoKx5Pf_3Ed0HuB0qR_-9KVId_GMK_sk0g0FphWHBi23S-B2a6zijLX7YCXZZw8mydACMSY_RORdh_E1HQA8qCtdFKFC0CAjHm139PEb_9/s16000/redesigned-pin.png" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCI0N7cMF90juZNPc7Q7P7OG9FfWnvG-BJUloT_z8Bu9zhIJ8l5zkDnszPG1kL0RhiHHe0JDrV-EYnhZ76KQmSZ1Rlr7rB5OvZFGDWYrMfhyphenhyphen10HMwWWqNq-9xy9dSi7zxDR4hEo_QT8q4DjIZhNihL8EsYHSt13hi6EB1Ws-1FqoAO1JsyYNjwPsNA/s578/map-pin-bubble.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="578" data-original-width="506" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCI0N7cMF90juZNPc7Q7P7OG9FfWnvG-BJUloT_z8Bu9zhIJ8l5zkDnszPG1kL0RhiHHe0JDrV-EYnhZ76KQmSZ1Rlr7rB5OvZFGDWYrMfhyphenhyphen10HMwWWqNq-9xy9dSi7zxDR4hEo_QT8q4DjIZhNihL8EsYHSt13hi6EB1Ws-1FqoAO1JsyYNjwPsNA/s16000/map-pin-bubble.png" /></a></div><br /><p>Compared to the old Tango-style icon that, while being a nice icon that has served us well looked a bit out-of-place in relation to the new UI style with a more 3D look.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0REy8ZsIGh52NEYXTP6NwQ1lHbrrnpLUIUh9HAFWbpwIMp47WRjtLdxDeLXa6_IPc4SbKVJa6OL-51fahdiFMYR3gGpdUk7MzVeHZ-RF-9Ov3zkMdm6ixaa2QupqYQxLB8FRvrHQ_xI73cf_H2_nB8X2XOdVGvz9CNfi1KIkUuZDfF_CzUKRE4ULE/s290/old-map-pin.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="248" data-original-width="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0REy8ZsIGh52NEYXTP6NwQ1lHbrrnpLUIUh9HAFWbpwIMp47WRjtLdxDeLXa6_IPc4SbKVJa6OL-51fahdiFMYR3gGpdUk7MzVeHZ-RF-9Ov3zkMdm6ixaa2QupqYQxLB8FRvrHQ_xI73cf_H2_nB8X2XOdVGvz9CNfi1KIkUuZDfF_CzUKRE4ULE/s16000/old-map-pin.png" /></a></div><br /><p>Another new feature was thought up when looking for a cafe in a shopping mall in Riga during GUADEC last year is showing information about the floor location of places. There two established tags in OSM for this: <span style="font-family: courier;">level </span><span style="font-family: inherit;">which represents the number of floors relative to the ground floor (or the lowest ground floor for buildings built in a <span style="font-size: small;">souterrain fascion). In this case we now show this information in a spelled-out form for ground level or above, or below ground level (with provision for using localized plural forms).<br /></span></span></p><p><span style="font-family: inherit;"></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRsiJKxq_7KaBs-_du2yxXpKwtwDxiPxWdnGQeMlrlQjxkOK5NRYebNCdJF__PoBE3zwISbBPnbZRSG65LK9Apss2zo4U1m6gnGBqmosPv1bZDj2abWORMVr_MRN7YcF4r0IaaoesQ45wAgaWD1TD6deouPzef20Bv2lUlAEbM-xF4Kpdbr0JdXe3u/s484/ground-level.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="484" data-original-width="447" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRsiJKxq_7KaBs-_du2yxXpKwtwDxiPxWdnGQeMlrlQjxkOK5NRYebNCdJF__PoBE3zwISbBPnbZRSG65LK9Apss2zo4U1m6gnGBqmosPv1bZDj2abWORMVr_MRN7YcF4r0IaaoesQ45wAgaWD1TD6deouPzef20Bv2lUlAEbM-xF4Kpdbr0JdXe3u/s16000/ground-level.png" /></a></span></div><span style="font-family: inherit;"><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXLpeli30vNB5dafybLz6oNDnczESjalghnQF_GKRyz-tWmuYLX9UjHIqnhYfyr1VIIPZA5BPXp60DZboz-O4v0WHGBLWQbDhTxUo3piZim8ARbHQ7r4Gj934dvTTLaD0tnq-LsKU8f20fnZKJtWmd1-TwM7VVEdCIyG5gPk9YhspuGX3Jh44wLQBf/s452/floor-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="382" data-original-width="452" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXLpeli30vNB5dafybLz6oNDnczESjalghnQF_GKRyz-tWmuYLX9UjHIqnhYfyr1VIIPZA5BPXp60DZboz-O4v0WHGBLWQbDhTxUo3piZim8ARbHQ7r4Gj934dvTTLaD0tnq-LsKU8f20fnZKJtWmd1-TwM7VVEdCIyG5gPk9YhspuGX3Jh44wLQBf/s16000/floor-1.png" /></a></div><br /><span style="font-size: small;">The other tag is </span></span><span style="font-family: courier; font-size: small;">level:ref </span><span style="font-family: inherit; font-size: small;">referring a literal floor designation as „written in the elevator“. This could be fully spelled-out named floors, or numbers with suffixes and so on. When this is available we'll refer to that one as this would directly correspond to actual writing on-site.</span><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4CiYvOMZbD15Zoqf1tBDGQQdkl9MXqE_EGlGhwvJBn88vuzQ2IJam51FPvP7dzO9hyNGPuKaKO119-i9gtXqHFksvV33kyl-RtzhzTTa42TN-x5Z13l9w__v-r4Hg05WyukuEKESNYmrO_ciTPUW_S9I-7lUee036v4Cw5S9UH7d9CL1mCxVNEYza/s484/floor-ref.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="484" data-original-width="447" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4CiYvOMZbD15Zoqf1tBDGQQdkl9MXqE_EGlGhwvJBn88vuzQ2IJam51FPvP7dzO9hyNGPuKaKO119-i9gtXqHFksvV33kyl-RtzhzTTa42TN-x5Z13l9w__v-r4Hg05WyukuEKESNYmrO_ciTPUW_S9I-7lUee036v4Cw5S9UH7d9CL1mCxVNEYza/s16000/floor-ref.png" /></a></div><br /><span style="font-family: inherit; font-size: small;">Lastly James has added support for showing descriptions in the info bubble when clicking on points in a GeoJSON shape files when present. It also now shows the name of the shape file in the info bubble (this shape file was from an old GUADEC in Strasbourg).<br /></span><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9uYM8fWTzZ_AMLNC059alup-zYyxsMYLfOGYV6vsTMJR5rJF9Ibv_iXHhWBUJrCrWhdBm8WkKDxGoqcrtEv2BPc2D8kas75N2lj9IQFpsHUc7vpCNcJlysnh8lb-LYLOOqQxPzbflGYVKdUuxWojRAGZTehvXHyCkRGgKnvVIhDzW0e3IEfgDWOgy/s561/shape-layer-popover.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="561" data-original-width="495" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9uYM8fWTzZ_AMLNC059alup-zYyxsMYLfOGYV6vsTMJR5rJF9Ibv_iXHhWBUJrCrWhdBm8WkKDxGoqcrtEv2BPc2D8kas75N2lj9IQFpsHUc7vpCNcJlysnh8lb-LYLOOqQxPzbflGYVKdUuxWojRAGZTehvXHyCkRGgKnvVIhDzW0e3IEfgDWOgy/s16000/shape-layer-popover.png" /></a></div><br /><span style="font-family: inherit; font-size: small;">Maybe I forgot something, but I think those where the highlights of new stuff so far in 2024.</span><p></p><p><span style="font-family: inherit; font-size: small;">Maybe see you in Brussels in a couple of days!<br /></span></p>Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com0tag:blogger.com,1999:blog-5620128670216603593.post-51171076670414627802023-12-23T10:35:00.002+01:002023-12-23T10:35:41.622+01:00Christmas Maps 2023<p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpkQPVsMQ-dvLkscGZ0rZExSuN2mE9WuIQyXdrz_WwDG4IUj7N7CcFHFpB_himAn5nKZa7kyxAPVzBKAgepwdwYVAC3hA_9apnkTaZhJtTN8ZBiTYUPvbO2Uwr1CM9CUXh6gyDr_Tl8ZB7nGulDNijN6swLfHf3FUffawd8Iy4ezlOFpyicPZQfhgk/s722/santa-park.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="722" data-original-width="608" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpkQPVsMQ-dvLkscGZ0rZExSuN2mE9WuIQyXdrz_WwDG4IUj7N7CcFHFpB_himAn5nKZa7kyxAPVzBKAgepwdwYVAC3hA_9apnkTaZhJtTN8ZBiTYUPvbO2Uwr1CM9CUXh6gyDr_Tl8ZB7nGulDNijN6swLfHf3FUffawd8Iy4ezlOFpyicPZQfhgk/s16000/santa-park.png" /></a></div><p></p><p><br /></p><p>It's that time of the year again, near the winter solstice (or the summer dito in the southerm hemisphere), so I guess it's time for the yearly wrap-up blog post. And yeah, Santa Claus lives in Rovaniemi, Finland. Despite some misinformed claims about the North Pole… 😎<br /></p><p>There's been some good progress during 2023 for Maps and libshumate. This was also the year I actually attended my first GUADEC in-person. This was a really nice experience, meeting with a lot of people from the broader GNOME community. Though I've met many at FOSDEMs over the years.</p><p><br /></p><p>When it comes to the last progress in Maps, after the last GNOME 45 stable release. With the help from the design team, I have yet another time (in 45 we moved the zoom buttons out of the headerbar, and added a rotation indicator/reset button). Now the zoom controls are moved to the lower part, to give better balance. They will also respect the dark/light theme setting. But will really shine once we get a dark map style.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKoQ-81GxGKW7oTgAuU7AvbBICnfHaGHLh64gQiyChUX_3ZxEGfbBV23-l9okE-ahIJRfetizVH12SaQ9xArQZOuk9mruS36MiOk96tRrF2wEJ4M1yXtLqzV5DofDe1HbibfDuFU3l7jgdsISFpYGHINDud4F3bivtsRh4rLoP4rLYNg6FaCShM-Wj/s436/zoom-controls2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="357" data-original-width="436" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKoQ-81GxGKW7oTgAuU7AvbBICnfHaGHLh64gQiyChUX_3ZxEGfbBV23-l9okE-ahIJRfetizVH12SaQ9xArQZOuk9mruS36MiOk96tRrF2wEJ4M1yXtLqzV5DofDe1HbibfDuFU3l7jgdsISFpYGHINDud4F3bivtsRh4rLoP4rLYNg6FaCShM-Wj/s16000/zoom-controls2.png" /></a></div><br /><p>Also, as a little „julegave” to our Norwegian neighbours, Maps now supports public transit routing using OpenTripPlanner v2 with GraphQL, currently enabled for Norway's national Entur API provider.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioQRG_02zI1a2PEzYZQ4Z1vBIhlIzwuXXKF-htmkUlJj04guAh0xcc7l3dkH-2093ojzc-flfPwXlI4dl62w1mtuHFaj-IKNwYa_bz7AdKdre4P49KnY-3TBz5WbuJuIoyne9bvyz6iZvrbAoFQw6NpLjyp63eaAA4gAwfye078OzY087CN2uiSwNY/s1406/norway1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="978" data-original-width="1406" height="445" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioQRG_02zI1a2PEzYZQ4Z1vBIhlIzwuXXKF-htmkUlJj04guAh0xcc7l3dkH-2093ojzc-flfPwXlI4dl62w1mtuHFaj-IKNwYa_bz7AdKdre4P49KnY-3TBz5WbuJuIoyne9bvyz6iZvrbAoFQw6NpLjyp63eaAA4gAwfye078OzY087CN2uiSwNY/w640-h445/norway1.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy1XQire1yCTeRN2mpbqhbFM7GzKmbZ6-YwWuVHq0gLU_g8Kqp4iJI_D_neqdCxj7TWb71pTa5XMgcxtfHGlACRg4LU3MmC6CYjLS-rrKLuMD5NGCww5YQlvBelGx7kz138Q8_WBIFvsIJ2lxYxMFHO4QeCO3AUvSYgl79YWWpL9twWrsjqGijPQlr/s1406/norway2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="978" data-original-width="1406" height="446" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy1XQire1yCTeRN2mpbqhbFM7GzKmbZ6-YwWuVHq0gLU_g8Kqp4iJI_D_neqdCxj7TWb71pTa5XMgcxtfHGlACRg4LU3MmC6CYjLS-rrKLuMD5NGCww5YQlvBelGx7kz138Q8_WBIFvsIJ2lxYxMFHO4QeCO3AUvSYgl79YWWpL9twWrsjqGijPQlr/w640-h446/norway2.png" width="640" /></a></div><br /><p>The first screenshot also shows the new subway icon by Jakub Steiner, which adds a more distinctive look compared to other trains.</p><p> Felipe Kinoshita has also ported the setup dialog for doing SSO sign-in to OpenStreetMap for POI editing to use new libadwaita widgets.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS_OTHBz9sAoCARSV1r4KHCTgavB5qQyMh0T_vdi352NLOUd7CTgyAKn2y6ZWKX5q58Vy2jcAufIthPqvh5HPJuiEgvpxyFvvAj33xnI_bvxJdab7V2KTB9L6ijr0ZEWHG6oCgA_xosNtHs6pa9lpDMRO2dAzF2lXPZQDAkMbhwb6ezloyKo4fpuRd/s645/osm-account-sign-in.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="444" data-original-width="645" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS_OTHBz9sAoCARSV1r4KHCTgavB5qQyMh0T_vdi352NLOUd7CTgyAKn2y6ZWKX5q58Vy2jcAufIthPqvh5HPJuiEgvpxyFvvAj33xnI_bvxJdab7V2KTB9L6ijr0ZEWHG6oCgA_xosNtHs6pa9lpDMRO2dAzF2lXPZQDAkMbhwb6ezloyKo4fpuRd/s16000/osm-account-sign-in.png" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxAF6Zt22k8RKEcR-jqGcnWbnYl9GGjggHv21cQWRTCgr9RbVvrh4jVeQjcbxQm6iNrOhzJ0I6W082Sf0lJw0BMl7VeRQY4Tvjq2LnmBe-WyCuq70apj5z9uCiIE-hggG6eBFX025JDF2KqKK_oOPsQ2sXczSlpDQ-HaLSFzIv15rtya9QN2bD_80i/s652/osm-account-signed-in.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="468" data-original-width="652" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxAF6Zt22k8RKEcR-jqGcnWbnYl9GGjggHv21cQWRTCgr9RbVvrh4jVeQjcbxQm6iNrOhzJ0I6W082Sf0lJw0BMl7VeRQY4Tvjq2LnmBe-WyCuq70apj5z9uCiIE-hggG6eBFX025JDF2KqKK_oOPsQ2sXczSlpDQ-HaLSFzIv15rtya9QN2bD_80i/s16000/osm-account-signed-in.png" /></a></div><br /> <br /><p></p><p> </p><p>Over in libshumate there's also been a lot of impressive improvements to the new vector map renderer implementation.</p><p>Among other things James has implemented is libshumate-specific debug information exposed via the GTK inspector, so that you can display a debug overlay and get tile and object bounding box lines showing.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0u5ayzg9cRKquOEMfqnqso_jUTOU5SnOtTAGoHI-FfmxEwmUrfnweKjZn5xRMNmBVg7OQ9UuHihfKNhaK_p940TUb8BPRrZjbW4gu461fk3vg3rSM67a5L500AARAcpcp1qIikyqqUmr3ClHymWRCuS_iFEf7YodyyhiCmcBCrJ88L9ANbYExq05X/s1413/debug-overlay.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="991" data-original-width="1413" height="448" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0u5ayzg9cRKquOEMfqnqso_jUTOU5SnOtTAGoHI-FfmxEwmUrfnweKjZn5xRMNmBVg7OQ9UuHihfKNhaK_p940TUb8BPRrZjbW4gu461fk3vg3rSM67a5L500AARAcpcp1qIikyqqUmr3ClHymWRCuS_iFEf7YodyyhiCmcBCrJ88L9ANbYExq05X/w640-h448/debug-overlay.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp7EDJ-3BElQvOPM0lW6iEMBtG5rTxjrJqiO4maOfzcXxztILc8C05P2cCDDndHLPlR2WrvOZCVNfIl-e8atQkNGMRTjupMfXjjTz5r2fLx0rIsJHM-l1jZ_de7-r-8NvVmcUfrWGxU6cnT5RY58w_N3CZ5IJr4RI1UTFoRbxKlPuoR_dtcQWoRcgX/s1169/inspector.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="612" data-original-width="1169" height="335" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp7EDJ-3BElQvOPM0lW6iEMBtG5rTxjrJqiO4maOfzcXxztILc8C05P2cCDDndHLPlR2WrvOZCVNfIl-e8atQkNGMRTjupMfXjjTz5r2fLx0rIsJHM-l1jZ_de7-r-8NvVmcUfrWGxU6cnT5RY58w_N3CZ5IJr4RI1UTFoRbxKlPuoR_dtcQWoRcgX/w640-h335/inspector.png" width="640" /></a></div><p>The new GNOME-styled map stylesheet we are working on has also seen improvements.</p><p>I added support for ferry lines and gondola lines.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6ux5zLX72XXrifFdwqaIAFDQm-03rZYVquLaeFQmZchR5jjKZdqm8OtLYiZWLj71b-E1zi7GSo8IYB9a7mcLWIi8T99WHgSKPEe8n9a9pVThrEWCu_1CS5HaGUBZj2Cdx4mgtYf0kei_2d-gTN4qE80CVOrMBZBogu7S0m4zxiO1jMvq3xcgSszZ3/s436/ferry-dark.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="357" data-original-width="436" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6ux5zLX72XXrifFdwqaIAFDQm-03rZYVquLaeFQmZchR5jjKZdqm8OtLYiZWLj71b-E1zi7GSo8IYB9a7mcLWIi8T99WHgSKPEe8n9a9pVThrEWCu_1CS5HaGUBZj2Cdx4mgtYf0kei_2d-gTN4qE80CVOrMBZBogu7S0m4zxiO1jMvq3xcgSszZ3/s16000/ferry-dark.png" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirqwPty9PaXaW4eXFgjNyx-EYtbUALnUSZdFCBL6Tu79VMMxkZHo8TumPpLmhv4RO1WkJ1iXCx7hvZoioYGrV-fMvw3BPVStZR2Kfq_EOmiVz8DxSnF_v7orRARgKvtwc0sVlqUgtxE4qGN8pFyxL8vBXN0upaqlWurcedFPKtIw4kplxG1ooXEoaP/s436/ferry-light.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="357" data-original-width="436" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirqwPty9PaXaW4eXFgjNyx-EYtbUALnUSZdFCBL6Tu79VMMxkZHo8TumPpLmhv4RO1WkJ1iXCx7hvZoioYGrV-fMvw3BPVStZR2Kfq_EOmiVz8DxSnF_v7orRARgKvtwc0sVlqUgtxE4qGN8pFyxL8vBXN0upaqlWurcedFPKtIw4kplxG1ooXEoaP/s16000/ferry-light.png" /></a></div><br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivz09XsriXKyA7C0DzjZohh4teZt6yIRqmNOkxEHG2EfPGTmOu60T2vpGydGdEpvnYH7mQVkPUVA4iZMNNC6j53XVrdzx_imo4vJg52NAZ9mGiShALpAA4aQmhMYSqVhRZW6SVlLLuI7SlGIuh09Iq9kPX9WIl3l-OXBKqgdqWybPGdMmb-ERXAebt/s428/gondola-light.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="268" data-original-width="428" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivz09XsriXKyA7C0DzjZohh4teZt6yIRqmNOkxEHG2EfPGTmOu60T2vpGydGdEpvnYH7mQVkPUVA4iZMNNC6j53XVrdzx_imo4vJg52NAZ9mGiShALpAA4aQmhMYSqVhRZW6SVlLLuI7SlGIuh09Iq9kPX9WIl3l-OXBKqgdqWybPGdMmb-ERXAebt/s16000/gondola-light.png" /></a></div><br /><p>James has also been working on implementing localized highway shields by leveraging the OSM Americana project.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidYb0WZGHHvAx95mXfktpxELvb_m4S1TsUScYfIOgig8f4Fz-ASepbX3R2Bs-SIJcCWte7DJEGpjBW-AvWAwXvW9lhEq78kMBujTFgPk0aZ0LHULusDd_10frVZhtBUEXuOjqibdKDRyPtrqPHkeaeJQa8clR7ptIrYPUKX804lNuydChA33nPv7jw/s652/shield1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="468" data-original-width="652" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidYb0WZGHHvAx95mXfktpxELvb_m4S1TsUScYfIOgig8f4Fz-ASepbX3R2Bs-SIJcCWte7DJEGpjBW-AvWAwXvW9lhEq78kMBujTFgPk0aZ0LHULusDd_10frVZhtBUEXuOjqibdKDRyPtrqPHkeaeJQa8clR7ptIrYPUKX804lNuydChA33nPv7jw/s16000/shield1.png" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJnPI6ELmJB_iyHNFmA5Ey6KSmy3lpU4AYdrQx1IxvuJXs2lD0CykjILkGttgcjNn_BvWhJiiWxPUPQgdbGFMV529LhSp-rUTrZyef_Q3hklnxr4NYYNzJv5Pym5YJ9AwXV-wBbWG7em0dgD3DbawQdB8eIX9MpqelLAexJf7ph6MuUZT1X5HgjZg_/s652/shield2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="468" data-original-width="652" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJnPI6ELmJB_iyHNFmA5Ey6KSmy3lpU4AYdrQx1IxvuJXs2lD0CykjILkGttgcjNn_BvWhJiiWxPUPQgdbGFMV529LhSp-rUTrZyef_Q3hklnxr4NYYNzJv5Pym5YJ9AwXV-wBbWG7em0dgD3DbawQdB8eIX9MpqelLAexJf7ph6MuUZT1X5HgjZg_/s16000/shield2.png" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEishyphenhyphen9jVJQTS0E9VtaqDRyTiD07L0FEeCZeh8G1eZYmZQ6WhZQ1uhp2HS_EJ6WR7yVGAFETwmnXbtusrdesRGGkiddRFvb-JuudgWPh5UZWUf77GjtekFOgb1q1NAOAaQV0NHbiHJoPXHm4qGayvDaa0sON5_ZA4ZO97AGlGczHATquOTrZWFHN5QR_/s652/shield3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="468" data-original-width="652" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEishyphenhyphen9jVJQTS0E9VtaqDRyTiD07L0FEeCZeh8G1eZYmZQ6WhZQ1uhp2HS_EJ6WR7yVGAFETwmnXbtusrdesRGGkiddRFvb-JuudgWPh5UZWUf77GjtekFOgb1q1NAOAaQV0NHbiHJoPXHm4qGayvDaa0sON5_ZA4ZO97AGlGczHATquOTrZWFHN5QR_/s16000/shield3.png" /></a></div><p>Also showing points-of-interests using GNOME-style icons in the map style. The design team has drawn up a bunch of new nice icons for different place types.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsKrtP1ww88gnt-DXzI2nDL621yyTEjhEvwAYmOTGnTzQ1ssIq9AjNyusWip2NxdyeLujWo-Oq1bO5njMZ6RZ3brhLqvu5EkdZZFn3bh8-E2AjfOtqE8dY0GUt1NtErziSkHLL1eRVwdGYvOd6ABIPwcxDsvZuO2CjxdbGc0XMRsf9iCzyHzyEMIyd/s882/poi1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="783" data-original-width="882" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsKrtP1ww88gnt-DXzI2nDL621yyTEjhEvwAYmOTGnTzQ1ssIq9AjNyusWip2NxdyeLujWo-Oq1bO5njMZ6RZ3brhLqvu5EkdZZFn3bh8-E2AjfOtqE8dY0GUt1NtErziSkHLL1eRVwdGYvOd6ABIPwcxDsvZuO2CjxdbGc0XMRsf9iCzyHzyEMIyd/s16000/poi1.png" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBJczFzgvPcB-FNFuMv8iu1aDXkcHgXD3nIE-Pzv4PfHulHU_NYwPKD2BEp0Da2xUwZjo8Lmfx_3NMS0YBKI4qc8GeEGZ6aU0LJenzjKIhyqSomVX_eqMEFtUkXSIFe24mPNuENAonN8Wh1XcwGoTJ59PGHh-mpBhv6qq2wYJGZ19QyYMqgMM2IYYA/s882/poi2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="783" data-original-width="882" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBJczFzgvPcB-FNFuMv8iu1aDXkcHgXD3nIE-Pzv4PfHulHU_NYwPKD2BEp0Da2xUwZjo8Lmfx_3NMS0YBKI4qc8GeEGZ6aU0LJenzjKIhyqSomVX_eqMEFtUkXSIFe24mPNuENAonN8Wh1XcwGoTJ59PGHh-mpBhv6qq2wYJGZ19QyYMqgMM2IYYA/s16000/poi2.png" /></a></div><p>With that I will wish happy hollidays (of your choice) and a happy new year on behalf of the GNOME Maps Team 🎄🎅🍾<br /></p>Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com0tag:blogger.com,1999:blog-5620128670216603593.post-8416368188711141322023-09-26T22:06:00.001+02:002023-09-26T22:06:48.827+02:00Maps and GNOME 45<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUrsTUZiJgr1Wz3m8Ux5OpGCSi5ni7Wv-fl5xCata_XQPaieIwttK_2z91aSXTruEecf0-uxtXXQpYQ-_bNrKI6R56_oNrTQqq-hNije2XJbDVcSg15kC2XKON8mmuIjOVnV7-3tlklaWB2rxjohvFxpIM6k_1MsjzWjtzKBjvWs0diu3xGnJjekO0/s654/about-45.0.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="654" data-original-width="450" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUrsTUZiJgr1Wz3m8Ux5OpGCSi5ni7Wv-fl5xCata_XQPaieIwttK_2z91aSXTruEecf0-uxtXXQpYQ-_bNrKI6R56_oNrTQqq-hNije2XJbDVcSg15kC2XKON8mmuIjOVnV7-3tlklaWB2rxjohvFxpIM6k_1MsjzWjtzKBjvWs0diu3xGnJjekO0/s16000/about-45.0.png" /></a></div><br /> <p></p><p>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.<br /></p><p>Many of the new features has already been presented here, but a short re-cap:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXmd3HJNR9pKX7AUEaW3KOn_l1EzWS7mJE-3YCfVZzGpFBEnQOKtXnwHLp0g4GQlrpHysqm0x3yj_EPMcvI6nBk4VjxLrCBmNxuutQui9y_ipOQSS8LaOi1Yl1OzO9Ufdow_M9EtHPvZi6z5igWXjhd3gILgrnG6R7gZ1Mt--fO4dt93bL4jXHcMuM/s1249/rotated.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="735" data-original-width="1249" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXmd3HJNR9pKX7AUEaW3KOn_l1EzWS7mJE-3YCfVZzGpFBEnQOKtXnwHLp0g4GQlrpHysqm0x3yj_EPMcvI6nBk4VjxLrCBmNxuutQui9y_ipOQSS8LaOi1Yl1OzO9Ufdow_M9EtHPvZi6z5igWXjhd3gILgrnG6R7gZ1Mt--fO4dt93bL4jXHcMuM/s16000/rotated.png" /></a></div><p>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.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidDa8_06rhds_Qgb6vK_1axW8QzPEMgZBTl4yl0b463l5DWzYVGatx9I3M7hdK1eR3ZbB6kmzEneb_kcL2v20iuSP9LBY0xaINuCHF6NQ-lh9sF3KrjWgNzHF3ws9W4dM3S40OJlmLDNa35gO2fYKYab26sl6k95MFddOm_bJ9T6cBbZEi1E4Coq2R/s753/poi-explore-main.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="571" data-original-width="753" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidDa8_06rhds_Qgb6vK_1axW8QzPEMgZBTl4yl0b463l5DWzYVGatx9I3M7hdK1eR3ZbB6kmzEneb_kcL2v20iuSP9LBY0xaINuCHF6NQ-lh9sF3KrjWgNzHF3ws9W4dM3S40OJlmLDNa35gO2fYKYab26sl6k95MFddOm_bJ9T6cBbZEi1E4Coq2R/s16000/poi-explore-main.png" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV1MFhQVoN7KqlDf4nNUWD17g0QT3jOFeKCVxVq-SsegePHN0XUCvAZMsxwOVa0bExz6RQU6mkGM4IBCEVbMtXgYBBwjbwp-LSnvcyEO1ufqpf57wq-GTKUWPMPCoMqAi1QCOSBw7ewMTv8o1CcmTwigb8-xq0I7Y3wfQHQHVO4M7GZckBxeDbkDrU/s753/poi-search-results.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="571" data-original-width="753" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV1MFhQVoN7KqlDf4nNUWD17g0QT3jOFeKCVxVq-SsegePHN0XUCvAZMsxwOVa0bExz6RQU6mkGM4IBCEVbMtXgYBBwjbwp-LSnvcyEO1ufqpf57wq-GTKUWPMPCoMqAi1QCOSBw7ewMTv8o1CcmTwigb8-xq0I7Y3wfQHQHVO4M7GZckBxeDbkDrU/s16000/poi-search-results.png" /></a></div><br /><p>As well as a browse mode for the search popover allowing to look for nearby points-of-interest by category.</p><p><br /></p><p>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).<br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC8ga9Y92hlTpID822RNuie86Q8-vOr9IRbh9ihQnDKVdaeqBsxIbG9JIN8OUYIN0TYlydzOoZywLTH2xdBnkE3Kyktww4Cnr-gZsw0OwrY0aeUt44nh8_hlLjVqAu_Og-Cg3yynUhv470zxkGHuunFm54dxu6smx5MFGCeQaB2UsVQkUO2PkFw323/s356/experimental-toggle.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="263" data-original-width="356" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC8ga9Y92hlTpID822RNuie86Q8-vOr9IRbh9ihQnDKVdaeqBsxIbG9JIN8OUYIN0TYlydzOoZywLTH2xdBnkE3Kyktww4Cnr-gZsw0OwrY0aeUt44nh8_hlLjVqAu_Og-Cg3yynUhv470zxkGHuunFm54dxu6smx5MFGCeQaB2UsVQkUO2PkFw323/s16000/experimental-toggle.png" /></a></div>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.<p></p><p><b>New stuff looking forward to in upcoming releases:<br /></b></p><p>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.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_JCrdGVelKIhay5jrGzlLvUBOOr9a8Gh-8_zLPifNbqi25FiqfT-XIY_8xBgc3uypT0jdryPJCsPPI319O6SCDDh-bR4bGcNdUo8rMX-95-PkMCxgGWDIm3UQ6q86DGdtypIPKSCdBEp9u9GSDC0C40DmkOaYvIZv--2_N93mmA7V1ndA0IvWbwxB/s813/map-style-rail-light.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="813" data-original-width="799" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_JCrdGVelKIhay5jrGzlLvUBOOr9a8Gh-8_zLPifNbqi25FiqfT-XIY_8xBgc3uypT0jdryPJCsPPI319O6SCDDh-bR4bGcNdUo8rMX-95-PkMCxgGWDIm3UQ6q86DGdtypIPKSCdBEp9u9GSDC0C40DmkOaYvIZv--2_N93mmA7V1ndA0IvWbwxB/s16000/map-style-rail-light.png" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo2Q4DwbvdbUhzFeiHfOLGydRY1ZG4THTKpo0-MpV2snj4cGivEKCv78XqrtgAFqqDlwjv8XsfErNL1nYobS71mE6stu4wPTNx79_YB0slFb5S0OySZHjSNOLZr35imvL4jikiOgnpoh7H_lL3e1Lu91WJVrU4dihKENoGrv8DR8-oaHL2XHtfjFB_/s813/map-style-rail-dark.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="813" data-original-width="799" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo2Q4DwbvdbUhzFeiHfOLGydRY1ZG4THTKpo0-MpV2snj4cGivEKCv78XqrtgAFqqDlwjv8XsfErNL1nYobS71mE6stu4wPTNx79_YB0slFb5S0OySZHjSNOLZr35imvL4jikiOgnpoh7H_lL3e1Lu91WJVrU4dihKENoGrv8DR8-oaHL2XHtfjFB_/s16000/map-style-rail-dark.png" /></a></div><br /><b> </b><br /> The style now finally includes initial support for rail lines!<p></p><p>The style can be tested using the web renderer: <a href="https://maps.jwestman.net/">https://maps.jwestman.net/</a></p><p>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): <a href="https://gitlab.gnome.org/jwestman/map-style">https://gitlab.gnome.org/jwestman/map-style</a></p><p>Another cool thing (that can also be seen in the web screenshots above) is localized highway shield rendering building on the OSM Americana project: <a href="https://wiki.openstreetmap.org/wiki/OpenStreetMap_Americana">https://wiki.openstreetmap.org/wiki/OpenStreetMap_Americana</a></p><p> </p><p>An experimental branch implementing shield rendering in Maps is also work-in-progress.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpMfVK4V5zMsAk5UpwHBD2AlzUaiE5vUiKgi_F7DizaPNrCcpLk0-URnQ9pb_OVu796sNolARRP7NZ1rHI9NLd4UL07xLj2u2-zib-fgE9WprHJAysJj_GronkM_HFyHxsORmjKsOL5-3bqugkyYlH4YxOTRtYHTvbsli7Y9qC8oft7WR_DmFVf3Xf/s813/shields-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="813" data-original-width="799" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpMfVK4V5zMsAk5UpwHBD2AlzUaiE5vUiKgi_F7DizaPNrCcpLk0-URnQ9pb_OVu796sNolARRP7NZ1rHI9NLd4UL07xLj2u2-zib-fgE9WprHJAysJj_GronkM_HFyHxsORmjKsOL5-3bqugkyYlH4YxOTRtYHTvbsli7Y9qC8oft7WR_DmFVf3Xf/s16000/shields-1.png" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg433G-e9_gyE0p1efeT9xl4zOIBtbkxDuw5y8R95_eGEKmIJYseCiqClNwae0n-3PhdPOiVfWr67_6_Bx3hHEY6JgLM1HdN0iMHF_rCDz2Gig_WnYL5O8ldOFcbzFZWAPB-xX3v6pOW9btR6ruxhMCR4jyMZw1fUbqM-82iflZfWbJ1ccq0QxUUd5y/s813/shields-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="813" data-original-width="799" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg433G-e9_gyE0p1efeT9xl4zOIBtbkxDuw5y8R95_eGEKmIJYseCiqClNwae0n-3PhdPOiVfWr67_6_Bx3hHEY6JgLM1HdN0iMHF_rCDz2Gig_WnYL5O8ldOFcbzFZWAPB-xX3v6pOW9btR6ruxhMCR4jyMZw1fUbqM-82iflZfWbJ1ccq0QxUUd5y/s16000/shields-2.png" /></a></div><br />This currently uses the OSM Liberty style (the same as the current experimental map layer in Maps 45). <br /><p></p><p>So it's looking pretty exciting for for 46 😊<br /></p><p>Until next time, happy mapping!<br /></p>Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com0tag:blogger.com,1999:blog-5620128670216603593.post-90583580992091448872023-07-01T00:02:00.002+02:002023-07-01T00:02:47.532+02:00Summer Maps<p> It's about time for the yearly (Northern Hemisphere) Summer Maps blog post. 😎</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDvyynS_Pa9C_busErZWQQ_LyCNHSISBnuXV3Rx9Nv2tR4jzpZY52jCO4tR7A8F47kQ2jIqxQMWDr_q7Q-JAKzsR44icamhrDCgnSANvoMKHZR5uF3Lq-1SCvpczrcaYCcVjjkynKXpDvsGHT3Uy99tuJ8Xm6oK0vttMiD5BZLGXPEW1Q9yY8WDs1I/s663/about-45beta.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="663" data-original-width="450" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDvyynS_Pa9C_busErZWQQ_LyCNHSISBnuXV3Rx9Nv2tR4jzpZY52jCO4tR7A8F47kQ2jIqxQMWDr_q7Q-JAKzsR44icamhrDCgnSANvoMKHZR5uF3Lq-1SCvpczrcaYCcVjjkynKXpDvsGHT3Uy99tuJ8Xm6oK0vttMiD5BZLGXPEW1Q9yY8WDs1I/s16000/about-45beta.png" /></a></div><br /><p><br /></p><p>Since the release of 44.0 in March, aside from some fixes (like adding support for authentication HTTP headers in OpenTripPlanner plugin, as now needed by the Finnish Digitransit service) there has also been some changes on the surface in Maps.</p><p>First, Jakub Steiner has contributed with a refresh of icons used for transportation modes, and the various mode of public transit.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTOjeMZP21UhGqi4NjlhBt9Ya7amW6HHrh8fT6VxLJrdJI3BTHvW-ZMZKHnss1kKdCtcY9JuLimWaMXwocYO1FxA_SO-BvXGsIMaXAm51dRASXBlRe89XqMS73gVoJ-fve4gEoPAnEUDlGFii96JYTt_HYCQbC48to90q3u1OS_3cA_YHMGjNehiuB/s656/transit-new-icons1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="656" data-original-width="376" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTOjeMZP21UhGqi4NjlhBt9Ya7amW6HHrh8fT6VxLJrdJI3BTHvW-ZMZKHnss1kKdCtcY9JuLimWaMXwocYO1FxA_SO-BvXGsIMaXAm51dRASXBlRe89XqMS73gVoJ-fve4gEoPAnEUDlGFii96JYTt_HYCQbC48to90q3u1OS_3cA_YHMGjNehiuB/s16000/transit-new-icons1.png" /></a></div><p></p><p style="text-align: center;">Here we can see the icons for transportation modes (walking, biking, car, and public transit, using a „train icon“) using the new GNOME icon style<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaRfaY1wO0q_PDwS-sjpMOeRnqaX-ESsN0ldzwajecoD6bUpBCHtvWeqTiBrIjoWh3Zt_Ezd44lpK9RvrNfnwJ9y1lDAtxr7nbdfsCCoDyyMlEvmJ1d1FtirwIfeYK7AdYeHPAjP9BQfwPHNHFR5n67ECwBu2EaxIPslubCWn9NCQ9w7M-4ymICKt4/s728/transit-new-icons2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="728" data-original-width="376" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaRfaY1wO0q_PDwS-sjpMOeRnqaX-ESsN0ldzwajecoD6bUpBCHtvWeqTiBrIjoWh3Zt_Ezd44lpK9RvrNfnwJ9y1lDAtxr7nbdfsCCoDyyMlEvmJ1d1FtirwIfeYK7AdYeHPAjP9BQfwPHNHFR5n67ECwBu2EaxIPslubCWn9NCQ9w7M-4ymICKt4/s16000/transit-new-icons2.png" /></a></div><p style="text-align: center;">In this capture we can see the new icons for metro (underground, subway service)</p><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglEkze-7TxwZN6nt60u0H-Uy0nnzbkogY1eZFb9jpDoaxhWJ4_3JJLuQTbIHrYjQTiwwPvOBbndDbMMGSJMYYhRbDuMynMohMxPwqKm4Qqg7jVIDoBk5l31pTDq-k41v6beSqgnAaKEA_ARwRxD46i3qaydr0qP4k9bOzjjIvDj_vJ_M5LZv4qlBdT/s716/transit-new-icons4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="716" data-original-width="376" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglEkze-7TxwZN6nt60u0H-Uy0nnzbkogY1eZFb9jpDoaxhWJ4_3JJLuQTbIHrYjQTiwwPvOBbndDbMMGSJMYYhRbDuMynMohMxPwqKm4Qqg7jVIDoBk5l31pTDq-k41v6beSqgnAaKEA_ARwRxD46i3qaydr0qP4k9bOzjjIvDj_vJ_M5LZv4qlBdT/s16000/transit-new-icons4.png" /></a></div><p></p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7drz3csjVE9nWJMNIKk8C6pXO-b6K6dFE4pCycJ7P2fyCyh0mts6RydploPeGy-3uL4y3H7btn7NDHe8r0jq-6Um9lZQqxDuZp3B-u-SQ0FZ2cgOH6A9Gwlij5jxh8rak2K8Y_zEXCXrj5DJUtqNW1g3Tmd3La5Gw9sUINKNmP5DOI72FCCqO0IOJ/s717/transit-new-icons5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="717" data-original-width="378" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7drz3csjVE9nWJMNIKk8C6pXO-b6K6dFE4pCycJ7P2fyCyh0mts6RydploPeGy-3uL4y3H7btn7NDHe8r0jq-6Um9lZQqxDuZp3B-u-SQ0FZ2cgOH6A9Gwlij5jxh8rak2K8Y_zEXCXrj5DJUtqNW1g3Tmd3La5Gw9sUINKNmP5DOI72FCCqO0IOJ/s16000/transit-new-icons5.png" /></a></div><p style="text-align: center;">Above there is some samples from Portland, showing trams and gondolas.</p><p style="text-align: center;"><br /></p><p style="text-align: left;">Another new feature is the „Explore nearby points-of-interest“ browser mode of the main search entry, allowing the select preset categories grouped by main and sub categories. Clicking on a subcategory then proceeds with a search given the selected type of place centered around the center of the current map view sorted by, and showing the distance to the place („as the crow flies distance“):</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJWFkT79TguWd4gNe-YS8dXtl6CFDsweHFCWCUtZUuERheIsZbuYA1kkZUxWkQHG-vGqP-z7weN4CxX81W2GMmlGpqKmmFQ-7KhqQqrvi_TgrjUQazsnJ0p_MFV1G5dOrB5l1lpZLXORwpWz6XP-xE87zoLEVMTyqtgyEUBWRWeDgykZSVDPsnDQWg/s753/poi-explore-main.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="571" data-original-width="753" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJWFkT79TguWd4gNe-YS8dXtl6CFDsweHFCWCUtZUuERheIsZbuYA1kkZUxWkQHG-vGqP-z7weN4CxX81W2GMmlGpqKmmFQ-7KhqQqrvi_TgrjUQazsnJ0p_MFV1G5dOrB5l1lpZLXORwpWz6XP-xE87zoLEVMTyqtgyEUBWRWeDgykZSVDPsnDQWg/s16000/poi-explore-main.png" /></a></div><p style="text-align: center;">Clicking the down-arrow button, or using the new CTRL+SHIFT+F shortcut shows the main categories</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjagkLL7kIjv4yicWZLH3Q129H2C8USrRobfwz6YHNWAIT2_Hx3177_vjsNFr4rOxC3_n-RiV-ivl37sMr5PS2_E9pJ4nHkYbCvudG7CfHze4YWEg-GtT0IEVL0xExLHTbf6mJPLJvvch4eUarWXEJFoq_VhdpuLOkmZtNFHlWYom2KQ2JTswYFenMr/s753/poi-explore-sub.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="571" data-original-width="753" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjagkLL7kIjv4yicWZLH3Q129H2C8USrRobfwz6YHNWAIT2_Hx3177_vjsNFr4rOxC3_n-RiV-ivl37sMr5PS2_E9pJ4nHkYbCvudG7CfHze4YWEg-GtT0IEVL0xExLHTbf6mJPLJvvch4eUarWXEJFoq_VhdpuLOkmZtNFHlWYom2KQ2JTswYFenMr/s16000/poi-explore-sub.png" /></a></div><p></p><p style="text-align: center;">After selecting a sub category</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoQJhTfZs9itlHO_1z8tmRBiP7VzZ96oyBRt4BxZb7XQiFJROmmwfzMMpv996_C1jIB8cO4k8SSkgudPSJn2RM1-EMilPf-wZ6SWz92LEuqiN-CgkOcSaDlcEjzTsa56xweaoVc9P4ix5B0BlmvesnCSMnGGlUj_PMUh9NSd4y3Vj8pNC7wGMlho5l/s753/poi-search-results.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="571" data-original-width="753" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoQJhTfZs9itlHO_1z8tmRBiP7VzZ96oyBRt4BxZb7XQiFJROmmwfzMMpv996_C1jIB8cO4k8SSkgudPSJn2RM1-EMilPf-wZ6SWz92LEuqiN-CgkOcSaDlcEjzTsa56xweaoVc9P4ix5B0BlmvesnCSMnGGlUj_PMUh9NSd4y3Vj8pNC7wGMlho5l/s16000/poi-search-results.png" /></a></div><p style="text-align: center;">Showing points-of-interest results with distances</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB49sDAuz0ZB7j3wh4B4VyBW4Q8N4ReGx3LZfS_zPp6830f0eqgkeUCaU9mdI4wGH9QreilILBKIT4IwBrwwB7E34cPZsayc1_ZbthBhsYA4HP7XDUv1U4QvLdXzbqdhy09493_GgsEWWY1hjqHo7LkGxpQT6ZkeaPS1C3fWur-WJ10chAh74GSJom/s753/poi-search-results-near.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="571" data-original-width="753" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB49sDAuz0ZB7j3wh4B4VyBW4Q8N4ReGx3LZfS_zPp6830f0eqgkeUCaU9mdI4wGH9QreilILBKIT4IwBrwwB7E34cPZsayc1_ZbthBhsYA4HP7XDUv1U4QvLdXzbqdhy09493_GgsEWWY1hjqHo7LkGxpQT6ZkeaPS1C3fWur-WJ10chAh74GSJom/s16000/poi-search-results-near.png" /></a></div><p style="text-align: center;">Results nearby (less than 100 m, or 300 feet when using Imperial measures) are shown with a „less than“ indication as these can be somewhat imprecise, especially for things with a “two-dimensional extent“ such as larger buildings, or areas</p><p style="text-align: center;"> </p><p style="text-align: left;">This feature was something I had in mind for a while, and there has been an old issue about this floating around since the Bugzilla days (before the migration to GitLab, it was issue #3 after the migration…).</p><p style="text-align: left;">I remember envisioning the outlines of this during a walk one afternoon/evening early in winter of 2021 during the mandated „working from home“ days when we had step contest at work. But I had put the idea off before in anticipation of the GTK 4 port as I din't want introduce too much new UI needing porting before that). But now that that has been finished it was time…</p><p style="text-align: left;"> Behind the scenes this is using the Overpass API to search the OpenStreetMap database based on tags and centered around a specific coordinate.<br /></p><p style="text-align: left;">And by the way, the set of categories is defined in JSON-like object structure in the src/potCategories.js module, so this can be altered relatively easy (and add Overpass query parameter „fragments“.</p><p style="text-align: left;"><br /></p><p style="text-align: left;">The next thing, the routing sidebar has had some issues when using a small form-factor device (e.g. phones), now there is WIP in an MR to migrate the sidebar to use an OverlaySplitView from libadwaita.</p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dyUawH3N9A2EpH5V6pdRQOloniBW23AqYwJL8_SYBNMFcYn8zF7zER7UWs80vbQS2W9zo3DMOB-7Dnd8Ni6NQ' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div><br /><p style="text-align: left;">This allows swiping in from the edge to bring up the routing sidebar and „swipe away“ the sidebar to close it on touch screens.</p><p style="text-align: left;">It also „collapses“ the view so the sidebar is overlayed on the map view rather than „pushing it aside“ on narrower screens:</p><p style="text-align: left;"><br /></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dzwIPAGZlV6ePP3j13nBIYZS5AIg9IZ0hjOvimn6CZpULODHL6MmXXwLTgiJH-GT84vzOJePBKNA5IRyMsrsg' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div><p style="text-align: left;">This is still not finally merged to main, but hopefully this should make it in for 45.0.<br /></p><p style="text-align: left;"><br /></p><p style="text-align: left;">Another thing is that since migration to libshumate it is possible to rotate the map view using touch gestures. And as we didn't have a way to reset the rotation (beside restarting the application) to mitigate that I have added a compass button showing when the view rotated away from normal „north is up”.</p><div class="separator" style="clear: both; text-align: center;"> <br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqoGFU9kXSvxeOKPdEueSQVYwQa1ElJkXLTDdGcdIR6eCtR0NoxYJYbzrluOhTWNlUOcGUQqSTZUaRV1lfgb3vmk62tDtg_vW2BbET-1Ueddil32z54O4Wy_zNczBJ5DLLBgRf7nJRQnmy1Wxg0PdfllAIvkVSdZn3_tPw1o_EqkybcYM5iPoBr-Oi/s334/overlay-zoom-buttons.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="303" data-original-width="334" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqoGFU9kXSvxeOKPdEueSQVYwQa1ElJkXLTDdGcdIR6eCtR0NoxYJYbzrluOhTWNlUOcGUQqSTZUaRV1lfgb3vmk62tDtg_vW2BbET-1Ueddil32z54O4Wy_zNczBJ5DLLBgRf7nJRQnmy1Wxg0PdfllAIvkVSdZn3_tPw1o_EqkybcYM5iPoBr-Oi/s16000/overlay-zoom-buttons.png" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1s98PpgGUzxDhX3fLGNFUS9kqceyLQ6O-J710kBFQryVnglZpZl3CUp_uoYrW_7Zf07kqtQNkPQTZBr5TCUuQ67AiUWPF9G6-tMS1d-KRS2CNro2cDiSTxMuSls6OrAV8CZ2IqYH4sUFfkr8--XEw8BkagAimvo6FTLMrwz4a4Mbz4siZKzp0v0VV/s334/overlay-zoom-buttons-rotated.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="303" data-original-width="334" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1s98PpgGUzxDhX3fLGNFUS9kqceyLQ6O-J710kBFQryVnglZpZl3CUp_uoYrW_7Zf07kqtQNkPQTZBr5TCUuQ67AiUWPF9G6-tMS1d-KRS2CNro2cDiSTxMuSls6OrAV8CZ2IqYH4sUFfkr8--XEw8BkagAimvo6FTLMrwz4a4Mbz4siZKzp0v0VV/s16000/overlay-zoom-buttons-rotated.png" /></a></div><p>Also the zoom buttons have been moved back to be overlay buttons as they where back in the day. They where changed to headerbar button back in 2017 as a work-around for GTK widgets not being able to be overlayed on top of Clutter surfaces on Wayland. But this is no longer an issue as we don't use Clutter nowadays.</p><p>This overlay button design might be subject for a redesign later on. Possible moving them down to the bottom end (right in LTR) corner, similar to the zoom controls of the new Loupe image viewer app. The license banner would then be displayed on startup as toast maybe, or as popover when clicking an info button. Or something like that.</p><p>And last, but not least we had a contribution from Szymon Kłos who implemented support loading tracks recorded by Garmin sport watches as shape layers. Thanks Szymon!</p><p>I will also attend GUADEC in Riga later in July, so those who go there, maybe see you there!</p><p>And I think that's about it for this time!<br /></p>Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com0tag:blogger.com,1999:blog-5620128670216603593.post-70713453492125679542023-03-10T09:28:00.002+01:002023-03-10T09:28:50.884+01:00Maps and GNOME 44<p> So it's that time that occurs twice a year when we're approaching a new GNOME release, this time 44.</p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2rOY1HfX3PZ0lcyQQxeR8MJvlxfNjL74wX-S1yPyzrRsYcHOqiAV65UDoL65F5LEy8limUSsmHMqFeP63VAcu7HEwvFibwNQfSvQVQrC06wM_m4c2hBLkyrOwZY-j4uII2ge4frqTaq1xNWmcZIvd8RUlKa4YGuiZbs90dLeEtUOeNWhVVq1DaA/s668/about-44.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="668" data-original-width="474" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2rOY1HfX3PZ0lcyQQxeR8MJvlxfNjL74wX-S1yPyzrRsYcHOqiAV65UDoL65F5LEy8limUSsmHMqFeP63VAcu7HEwvFibwNQfSvQVQrC06wM_m4c2hBLkyrOwZY-j4uII2ge4frqTaq1xNWmcZIvd8RUlKa4YGuiZbs90dLeEtUOeNWhVVq1DaA/s16000/about-44.png" /></a></div><p><br /></p><p>In Maps there's been some polish touching up some of the rough edges in 43.x (from the GTK 4 port).</p><p>For example keyboard navigation of the search results is back.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguEQ-k8I2a85OezNkMZh5WTwL20clUVuKyxZES3l-NstJ5ot9qvt_yzD2H5kroWrvg9bcK5gBnxVn3TUiJmvJ7LucoTuKR3jhBbHPIKxcC4MF6quk-Xyn1j4ASLEF6IDle4pHqF5gzGwQmlGBs7aHcojbh4OyRQMX6Ry2uAaLuJpCNHSV129gS_Q/s634/search-keyboard.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="527" data-original-width="634" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguEQ-k8I2a85OezNkMZh5WTwL20clUVuKyxZES3l-NstJ5ot9qvt_yzD2H5kroWrvg9bcK5gBnxVn3TUiJmvJ7LucoTuKR3jhBbHPIKxcC4MF6quk-Xyn1j4ASLEF6IDle4pHqF5gzGwQmlGBs7aHcojbh4OyRQMX6Ry2uAaLuJpCNHSV129gS_Q/s16000/search-keyboard.png" /></a></div><br /><p>Also, the focus handling of the entry is fixed so that the quirky flickering (re-popping up the the results popover when typing a space into the search entry) is now gone.</p><p>Also thanks to Christopher Davis for fixing up the styling of the results!</p><p>We also had contributions from an anonymous user improving the style of some labels, among others the tooltips of the headerbar buttons.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFjT6GmVCn8cboAh6HvSNuuZ-owJBce4yVQKizIxJy03rYJLxP9u-BTyZYPevslvQ336hY_0oaxzrigVVdgweGc3XyYis6XtbazwStQdkmqqEA3OJxYGqw1xVHZAG_YdH9ve3TFomiqAQQ2OblWwdJA2J-yWL4GtSuXFz1tfcZq3IeiKWpvmD1ZA/s333/polished%20tooltips.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="146" data-original-width="333" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFjT6GmVCn8cboAh6HvSNuuZ-owJBce4yVQKizIxJy03rYJLxP9u-BTyZYPevslvQ336hY_0oaxzrigVVdgweGc3XyYis6XtbazwStQdkmqqEA3OJxYGqw1xVHZAG_YdH9ve3TFomiqAQQ2OblWwdJA2J-yWL4GtSuXFz1tfcZq3IeiKWpvmD1ZA/s16000/polished%20tooltips.png" /></a></div><br /><p>Adrien Plazas has worked on making the „Export as Image“ dialog fit on phones.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8zqJZje67iMCNSM7jQXBuSauNnMMk5HqgUmNxjuDLF-NOGsbga7iyN89lX2o0eTpo47erudBiROjB0_laAgPDNh1ZOmy3vNfHgmWwgJKJo23YOWgcJl1zRZFAFEMv4Mnf9H-6EyIqeVphe7PrPGt50OIuUMKalgLvRAixDP9LLugch8kvuNyBLg/s485/export-phone.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="485" data-original-width="463" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8zqJZje67iMCNSM7jQXBuSauNnMMk5HqgUmNxjuDLF-NOGsbga7iyN89lX2o0eTpo47erudBiROjB0_laAgPDNh1ZOmy3vNfHgmWwgJKJo23YOWgcJl1zRZFAFEMv4Mnf9H-6EyIqeVphe7PrPGt50OIuUMKalgLvRAixDP9LLugch8kvuNyBLg/s16000/export-phone.png" /></a></div><br /><p>Unfortunately an issue has come to our attention with the way the „go to“ animations works, resulting some times when covering large distances (for example when selecting a search result far away) that results in throttling from the tile server (HTTP 429, „too many requests”). This results in empty tiles showing up at the destination (and one needs to sometimes wait a while before Maps gets the view refreshed with new tiles (after restarting to force re-trying).</p><p> As this results in a really bad user experience as a work-around we have disabled the animations for now (the animations when zooming is still in place, and of course panning the map view still works as usual).</p><p>I also cherry-picked this for the 43 branch, and will probably also cut a 43.4 with this change (versions prior to 43.0 is not affected, as the animations in libchamplain uses another algorithm, first zooming out „high“ (a low zoom level) before moving, resulting in less intermediate tiles compared to the “fly to“-like animations now used in libshumate.</p><p> We will try to come up with a better solution in libshumate soon. Either reverting to an approach like that in libchamplain, or try to implement our own rate limiting of some sort during animations to avoid firing off too many requests.</p><p> Meanwhile at the libshumate side James Westman has been busy working on the vector tile support implementing label support among other things.</p><p>He is also working on a vector tile style using the GNOME color palette in light and dark variants.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhftQWhm_gZHbkj9PYvkDYIhKqbVs5JmcFSaM7XH8Jr3cv16SUn5huWZp1WgZ5w_nl1n_8LSheCkQp41kHepd6u49A1m4sS_dr0PXVq2MR3mCoaZOOjokLHd9akp8fIB0obile7XN-rKOpeLmti0TUQUkLQFr2D3fOir11v6jtSlRdgQYzO4DVq7w/s939/vectorstyle.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="840" data-original-width="939" height="573" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhftQWhm_gZHbkj9PYvkDYIhKqbVs5JmcFSaM7XH8Jr3cv16SUn5huWZp1WgZ5w_nl1n_8LSheCkQp41kHepd6u49A1m4sS_dr0PXVq2MR3mCoaZOOjokLHd9akp8fIB0obile7XN-rKOpeLmti0TUQUkLQFr2D3fOir11v6jtSlRdgQYzO4DVq7w/w640-h573/vectorstyle.png" width="640" /></a></div><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSLfCe4VuveJB9btN4g3QUxMAS4nia3dGXXffqxbmLCh59vxehb3AwfLz2nA_Z4TmlP_-h9KL6wVCs6-f50-2r4fShR22TpDH2rkfS6Ta6ufKbRadYWj7fEZAcS_gAp1vsKBTXH52l_03zjyD8FXe9cB_ceP5HWG8I5fxLrJ9F5HmZ4BrnZG8YEg/s939/vectordark.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="840" data-original-width="939" height="572" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSLfCe4VuveJB9btN4g3QUxMAS4nia3dGXXffqxbmLCh59vxehb3AwfLz2nA_Z4TmlP_-h9KL6wVCs6-f50-2r4fShR22TpDH2rkfS6Ta6ufKbRadYWj7fEZAcS_gAp1vsKBTXH52l_03zjyD8FXe9cB_ceP5HWG8I5fxLrJ9F5HmZ4BrnZG8YEg/w640-h572/vectordark.png" width="640" /></a></div><br /><p>This can be trying out on https://maps.jwestman.net/</p><p> There will also be some other things coming for the next development cycle for GNOME 45, but let's save that for next time!<br /></p>Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com0tag:blogger.com,1999:blog-5620128670216603593.post-31139718097100886352022-12-29T23:19:00.002+01:002022-12-29T23:19:22.848+01:00Maps wrap-up 2022<p> As I was quite busy during the days before Christmas this year I didn't get time to write the traditional holidays Maps blog post.</p><p>So I thought I should at least write a quick wrap-up of the happenings during 2022 before the end-of-year.</p><p>As always, we started out in spring with a new major release along the spring GNOME release (42.0).</p><p>In 42.0 (or rather during the development cycle leading up to it) Maps gained support for using the development profile, so that you can install nightly snapshot releases from the GNOME nightly Flatpak repo (or using locally-built bundles) in parallell with a stable release (using the Flathub release or from a „traditional“ distro package).</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJZnZ3lMUPjRX5OKv8VPLnZ5MB6NCDbRSB3e3Asq6r_xPyIeLl3xnoRUn75boYW2wsrkyyWSSjvyvAMJ0TesmLkb6D077I7oiTaDYRpKztZq_31IoEeu2dA_9IWoSNO1-TWfswe6mKubc4FknvvQSXM_7yy5DW8U0SD-vjD2vbB9JZxHKCUBmc1Q/s517/about-devel.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="486" data-original-width="517" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJZnZ3lMUPjRX5OKv8VPLnZ5MB6NCDbRSB3e3Asq6r_xPyIeLl3xnoRUn75boYW2wsrkyyWSSjvyvAMJ0TesmLkb6D077I7oiTaDYRpKztZq_31IoEeu2dA_9IWoSNO1-TWfswe6mKubc4FknvvQSXM_7yy5DW8U0SD-vjD2vbB9JZxHKCUBmc1Q/s16000/about-devel.png" /></a></div><p><br /></p><p>Like for other apps, the icon for the development release is distinguished by the „bio hazard stripe“.</p><p>Also in the 42.0 release, support for the<span style="font-family: inherit;"> <span style="font-family: courier;">maps:</span> URI scheme was added. Using this a link can constructed that when opened will initiate a search using the encoded search term in Maps. This is now used by Contacts when a contact in the address book has an address set. There is also a DBus API for performing searches.<br /></span></p><p><span style="font-family: inherit;">Later during spring, after the 42 release some additional spring cleaning was made.</span></p><p><span style="font-family: inherit;">Support for social media check-in was removed (and along with it the dependency on gnome-online-accounts). The one remaining implementation for Foursquare had not been working that reliably (and hasn't been widely used), and also the other implementation (for Facebook) had been removed one release before, and had been broken for a few years due to upstream API changes.</span></p><p><span style="font-family: inherit;">This was also done to get remove some mostly unused UI to get less code to port to GTK 4.</span></p><p><span style="font-family: inherit;">Another change was changing the process for performing OAuth setup for editing POIs in OpenStreetMap. Previously we had handled username and password locally and programmatically posted the OAuth authorization forms using a ported variant of the same code used by JOSM.</span></p><p><span style="font-family: inherit;">As this method is not really best-practice for doing OAuth sign-up, and this had already at one point been broken and needed fix due to changes on the server-side this was then rewritten to hand off the authorizing to use an external web browser.</span></p><p><span style="font-family: inherit;"></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbwLVemK2-1huVZO3unGEGOQWYKgAOOEJ5bm5kc9AQwFkXifcYg_7CHe3xV5Zuj7K2yaKrhujj029sk-XpKz8WqQEAwkLX0lxMY31N_kz5SkDahtl8aGhTA5PQM0DOp0Gaz27Lr3YuU-DxnsyeKcsGnzucHd7JD3QLR2bTP5SRfvIa8gm2mqjCcw/s573/osm-signin-new.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="482" data-original-width="573" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbwLVemK2-1huVZO3unGEGOQWYKgAOOEJ5bm5kc9AQwFkXifcYg_7CHe3xV5Zuj7K2yaKrhujj029sk-XpKz8WqQEAwkLX0lxMY31N_kz5SkDahtl8aGhTA5PQM0DOp0Gaz27Lr3YuU-DxnsyeKcsGnzucHd7JD3QLR2bTP5SRfvIa8gm2mqjCcw/s16000/osm-signin-new.png" /></a></span></div><span style="font-family: inherit;"><br /> This has taken inspiration from how Cawbird implements signing in to Twitter.</span><p></p><p><span style="font-family: inherit;">Then in late June it became appearent that </span>due to other dependencies migrating to libsoup 3 (for HTTP request support) maintaining Maps using GTK 3, libchamplain (depending on libsoup 2.x) for GNOME 43 was looking impossible.</p><p>So, it seemed a last-minute port to use GTK 4 and our new libshumate map rendering library (based on the GTK 4 scene graph) should be attempted, even though the schedule was getting a bit tight…</p><p>But after some additional bumps (such as porting the OSM loging to use OAuth 2 due to needing to port to a new version of librest) and some frantic summer coding nights, just in time for GNOME 43 it was in working (good enough) condition.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiAXGFJFIthUhlwMIdk4ZTfWBGY3iyyF7mfpMegqxLcpq2C395DPaGgC-Zvlbs7cfaThvul0BySwWeNSuJ9Uq-mNVpQ5mwBAHX_0rhDyq-k4eS5UTff74lC7WlYUEwdbfCvqxSYCn4rURFheLoHB8voz4TTTnu0fxV9Yil9sbf34hsS7TKr9CfFw/s643/about-43.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="643" data-original-width="437" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiAXGFJFIthUhlwMIdk4ZTfWBGY3iyyF7mfpMegqxLcpq2C395DPaGgC-Zvlbs7cfaThvul0BySwWeNSuJ9Uq-mNVpQ5mwBAHX_0rhDyq-k4eS5UTff74lC7WlYUEwdbfCvqxSYCn4rURFheLoHB8voz4TTTnu0fxV9Yil9sbf34hsS7TKr9CfFw/s16000/about-43.png" /></a></div><br /><p>Christopher Davis helped port the about window to use the new libadwaita version of the dialog. He also did some additional clean-ups after the GTK 4 port.</p><p>This release also involved settling on the API/ABI for libshumate and declare it as 1.0.0.</p><p>Following the release, I have also done some post-port mending to fix some brokenness left after the port.</p><p>Among the fixes, the „place bubbles“ has been fixed to get rid of the extraneous margin that unintentionally got there after the port (due to GtkPopover widgets behaving differently, they where special-cased in GTK 3 when it comes to applying the CSS spacing rules).</p><p>So after this fix the place image (when there is one) is now again „flush on“ with edge.</p><p></p><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9tD11dAvC_dCf6k1xFJG1j8_MMBUeE06_de0UitYzkl71bnH69BcSsw2Jfpjg0rPe2Lxq-6IfjrGukJGYdnlj_u_-b5HlfdQJ1YHutv_9L_OLTiK7nkUICsjr0HcEqm9yp-yM-_7NwBsBsS_ImuZM55EzC9jjBTjrWAuTIZruF_QCksKabZXy1g/s611/fix-bubble.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="611" data-original-width="489" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9tD11dAvC_dCf6k1xFJG1j8_MMBUeE06_de0UitYzkl71bnH69BcSsw2Jfpjg0rPe2Lxq-6IfjrGukJGYdnlj_u_-b5HlfdQJ1YHutv_9L_OLTiK7nkUICsjr0HcEqm9yp-yM-_7NwBsBsS_ImuZM55EzC9jjBTjrWAuTIZruF_QCksKabZXy1g/s16000/fix-bubble.png" /></a></div><p></p><p></p><p></p><p></p><p></p><p> This is available in the latest Maps release (43.2). <br /></p><p> James Westman has also been working on fixing some performance issues and memory leaks in libshumate (that has been backported to the 1.0 branch, currently the stable version released is 1.0.3).</p><p>James has also been continuing improving the vector tile support in libshumate.</p><p>I also took the time to implement one additional feature for the new major release (44.0).</p><p>Now Maps supports fetching the thumbnail and Wikipedia article extract when a place has a tag referring to an entry in Wikidata.</p><p>It is also now possible to edit those when editing a POI (and the Wikidata tag can be „fetched“ semi-automatically when a Wikipedia article tag is filled in by pressing a reload button.</p><p><img alt="" src="data:image/png;base64,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" /> </p><p><br /></p><p>That's it for now. I said it was going to be a quick wrap-up, but I guess it got some length to it after all!</p><p>So, see ya in 2023 and happy new year!<br /></p>Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com0tag:blogger.com,1999:blog-5620128670216603593.post-75654832476835158892022-09-06T23:08:00.000+02:002022-09-06T23:08:25.779+02:00Maps goes four<p> Just in time for the GNOME 43 release (the hard code freeze started this past weekend) the porting of Maps to GTK 4, using our new libshumate map rendering library has arrived at a working status</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-jO0vb76_Z2VnjpZ-btYPbUUimY-a9jvgU4Rb8n9OzA6YG96sgFnYz0JJQQyOdxFPLOOs2lZEhYYBXaQECdgkLykyRcc_uU-PnEcH8LyINZrjbepJJkvYcha2i6upuhKgNRCx52FjbRvOjfdWznI0NuseAbpzf4sGxRhAEEIB6VQAllumbkquxw/s643/about-43.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="643" data-original-width="437" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-jO0vb76_Z2VnjpZ-btYPbUUimY-a9jvgU4Rb8n9OzA6YG96sgFnYz0JJQQyOdxFPLOOs2lZEhYYBXaQECdgkLykyRcc_uU-PnEcH8LyINZrjbepJJkvYcha2i6upuhKgNRCx52FjbRvOjfdWznI0NuseAbpzf4sGxRhAEEIB6VQAllumbkquxw/s16000/about-43.png" /></a></div><p><br /></p><p>Earlier in the summer it became apparent that maintaining Maps using the technologies (GTK 3 and libchamplain) would became troublesome in GNOME 43, since other dependencies (such as libgweather and geocode-glib) was being ported to use the libsoup version 3 API/ABI (libsoup is the HTTP library used in the GNOME software stack). And libchamplain is still on libsoup 2.x (Corentin Noël prepared a merge request porting libchamplain to libsoup 3, but especially if we would support parallel-installable version of it using either libsoup API would mean extra work on a library, using the deprecated Clutter technology, which we probably would best avoid).</p><p> So I took the decision to try and take the chances at racing the clock finishing the GTK4 port before September…</p><p>I decided to make it as a two-step rocket. First finishing porting to GTK4 and libshumate while still depending on libsoup 2 (building all the dependencies bundled locally in the development Flatpak manifest using libsoup2 build flags).</p><p>And then at the second stage switch over to using libsoup 3 (this mean also start using a newer version of the librest library that we use when accessing the OpenStreetMap API for editing POIs).</p><p>We only overhot the deadline for making UI changes before the release by a few days, but did get an exception from the release team (and a “blanket” exception for making smaller follow-up fixes up until the last RC before the release). <br /></p><p>At this point I also found out that the latest librest has dropped support for OAuth 1…</p><p>So as a last push I had to migrate the OSM authentication to use OAuth 2. Which is something I have been intending to get done anyway eventually, as the use of OAuth 1 is discouraged as it has flaws…</p><p>Christopher Davis has also stepped up and helped out “evening out” some sharp edges after the initial GTK4 port (including using the libadwaita about dialog as shown above).</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp9GY59bCItFYXLyTkijMlQ51TR5__8EtPD77b1ZsYnM0qclvITwyxGvI9ClLdPdOCL0fjdj0jOhlcW5JWKl9hsu--LwOqc5cHkdaYTXvTCQfU2O1jAEzc5v_J7-HO_wYAUCLciXR8iBrsOGUEx4LEFoJrui7Ky1JVV7YDQRGjobJUEkuviJc1sQ/s2072/maps-43.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1268" data-original-width="2072" height="392" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp9GY59bCItFYXLyTkijMlQ51TR5__8EtPD77b1ZsYnM0qclvITwyxGvI9ClLdPdOCL0fjdj0jOhlcW5JWKl9hsu--LwOqc5cHkdaYTXvTCQfU2O1jAEzc5v_J7-HO_wYAUCLciXR8iBrsOGUEx4LEFoJrui7Ky1JVV7YDQRGjobJUEkuviJc1sQ/w640-h392/maps-43.png" width="640" /></a></div><p>The layers menu has also gotten a bit of refresh to fit in better with newer styles used by GNOME core apps.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1hEeJqLMTTWnJqYlytOVPe-P93PgRmCTDgMJ1hfJaZzmHApYrjGFrVMwFLaZcKsk2N1bQJeHp5hoMRV4ETNmXKf5IS4rTodbtIZMBAPtflnhchnyIUGI2-GxDCvA17bvBUC2dtIVotPXC5h-ybxQ7Txo76zIm8WMuEtETFCAe3BolOgu0uJ_pqQ/s530/layers-43.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="462" data-original-width="530" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1hEeJqLMTTWnJqYlytOVPe-P93PgRmCTDgMJ1hfJaZzmHApYrjGFrVMwFLaZcKsk2N1bQJeHp5hoMRV4ETNmXKf5IS4rTodbtIZMBAPtflnhchnyIUGI2-GxDCvA17bvBUC2dtIVotPXC5h-ybxQ7Txo76zIm8WMuEtETFCAe3BolOgu0uJ_pqQ/s16000/layers-43.png" /></a></div><br /><p>And the search results popover follows the new style without the “beak” pointing to the entry, as other content-completing widgets use nowadays.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRrpXEKxA2YVyuEOofR7D6ofXDq4YuW9hE7TUk37aKRNwWoTiWSXJzKnrZdEj5xUcjXs2GAkLZvfsvWMLzZg029mAdqbGwusthZg60lRHUL7aTJ_yl2B5ys2lwDbrF5Ive__4rkRZU4Feo2L_gPJ_Bh3a5yKjR2wf1Fj_PVHBpVlUgn4kRs4Wv1g/s657/search-43.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="559" data-original-width="657" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRrpXEKxA2YVyuEOofR7D6ofXDq4YuW9hE7TUk37aKRNwWoTiWSXJzKnrZdEj5xUcjXs2GAkLZvfsvWMLzZg029mAdqbGwusthZg60lRHUL7aTJ_yl2B5ys2lwDbrF5Ive__4rkRZU4Feo2L_gPJ_Bh3a5yKjR2wf1Fj_PVHBpVlUgn4kRs4Wv1g/s16000/search-43.png" /></a></div><br /><p>There are still some rough edges when it comes to the place “info bubbles”.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirJyUuFpykEEKGNf9bNoeEVXyXv3M5mIKxu8E6-erSOUGnHeiDIsYdmocV6b3mfaySsvsmOWSg6FklaiGzf21SNT8Fj59fO-B_FMJ6Lg_BgWZwZP5jQs-RWTv9IpJ4SY5xc_HoUdYv_onkusU7awnwwI2Qwml_Ks2ZUhkDR8XFhdjixxSPtrhujQ/s883/bubble-43.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="883" data-original-width="700" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirJyUuFpykEEKGNf9bNoeEVXyXv3M5mIKxu8E6-erSOUGnHeiDIsYdmocV6b3mfaySsvsmOWSg6FklaiGzf21SNT8Fj59fO-B_FMJ6Lg_BgWZwZP5jQs-RWTv9IpJ4SY5xc_HoUdYv_onkusU7awnwwI2Qwml_Ks2ZUhkDR8XFhdjixxSPtrhujQ/s16000/bubble-43.png" /></a></div><br /><p>The margins are a bit excessive and the bubbles don't always resize vertically as much as would be desired to avoid scrolling to see the Wikipedia summary as in this case. Also the thumbnail isn't flush on the edge as it was with GTK3, there's something missing with that custom CSS, or something like that…</p><p>There's also some GTK warning printed out on the console (which you would see when running from GNOME Builder…).</p><p>On the positive note, now we get the drop shadow beneath the bubble. Previously when using Clutter we didn't get that due to reasons down to how Clutter stages where emedded into GTK widgets).</p><p>The ”Export to image“ dialog (maybe the term is a bit weird, but renaming it to something better like “Save as image” would have to wait as the string freeze is affect now…) did (at least for the time being) loose the ability to “filter out” markers. Also the sizing of the preview thumbnail could use some tweaking. In fact this whole dialog would probably benefit from a rehaul, but that would have to be for some other day…<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFQn-te4bfPNedX_YOy3ah26FfqO-PmKT5DNdXh-FP7u09C4oFB4V2wd9vlReVAztYhpiT0oQv_tWB-bxme9NJ9Z_gOSvLbFWxSbXu-Bk6kDe2aLAjQazseD19AW_-BbqTW-bILwZUoKZSh7rHEpsWfuN4NxiUjDZcNIo32Sd7uxWx34zx3MZHZQ/s704/export-43.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="389" data-original-width="704" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFQn-te4bfPNedX_YOy3ah26FfqO-PmKT5DNdXh-FP7u09C4oFB4V2wd9vlReVAztYhpiT0oQv_tWB-bxme9NJ9Z_gOSvLbFWxSbXu-Bk6kDe2aLAjQazseD19AW_-BbqTW-bILwZUoKZSh7rHEpsWfuN4NxiUjDZcNIo32Sd7uxWx34zx3MZHZQ/s16000/export-43.png" /></a></div><br /><p>On the other hand on a positive note we now finally get the license information down in the corner “etched into“ the image when saving, something that never worked before and is probably a breach of OpenStreetMap's license if you put things to its edge.</p><p>Some other points worth noting is that the pinch gesture for zooming on touch screens and using touch pads now finally works in a decent way (it kinda worked with libchamplain, but without any intermediate feedback while the gesture is being performed, so it was always a bit of hit-and-miss in the blind. This is in part thanks to the support of fractional zoom levels in libshumate.</p><p>Speaking of which the fractional zoom level support will even more come to its right one day when we start using vector tiles with local rendering. As then labels will be able to stay sharp at all levels. Right now with raster tiles the non-integer levels gets a bit blurry. But zoom with the keyboard shortcuts, or using the zoom buttons goes in integer steps (but still with animation).</p><p>And one last thing, the map background context menu can finally be opened with long-press on touch.</p><p>And I would also like to once again shout out to, in particular James Westman and Corentin Noël for their amazing work on libshumate. Without which, nothing of this would have been possible.</p><p>Anyways, now I will try to take some rest for a while 😎</p><p>Until next time, stay safe!<br /></p>Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com0tag:blogger.com,1999:blog-5620128670216603593.post-19495681233550335702022-06-29T20:38:00.000+02:002022-06-29T20:38:13.000+02:00Summer Maps<p> So, as tradition has it here's the (Northern Hemisphere) summer blog post about GNOME Maps.</p><p>One large under-the-hood change I've made in Maps since last time is migrating the JS code to use ES6 modules.</p><p>So, using “import” instead of referring modules as objects from the old-school global “imports” object in GJS.</p><p>When using GI modules to access introspectable GObject-based libraries it means something like<br /></p><blockquote><p><span style="font-family: courier;">const GLib = imports.gi.GLib;</span></p></blockquote><blockquote><p><span style="font-family: courier;">let var = new GLib.SomeClassFromGLib();</span></p></blockquote><p>becomes</p><blockquote><p><span style="font-family: courier;">import GLib from 'gi://GLib';</span></p></blockquote><blockquote><p><span style="font-family: courier;">let var = new GLib.SomeClassFromGLib();</span></p></blockquote><p> </p><p>Here the URI scheme gi:// referres to the GObject introspectable libraries as seen in runtime in the managed code (in this case JS).</p><p>When using our own classes locally defined in JS, we can refer to resources found inside the program's GResource, so something that was before</p><blockquote><p><span style="font-family: courier;">const MapMarker = imports.mapMarker;</span></p></blockquote><blockquote><p><span style="font-family: courier;">let marker = new MapMarker.Marker(...);</span></p></blockquote><p>becomes</p><blockquote><p><span style="font-family: courier;">import {MapMarker} from './mapMarker.js';</span></p></blockquote><p></p><blockquote><span><span style="font-family: courier;">let marker = new MapMarker(...);<br /></span></span></blockquote><p>Here we import then class definition directly into the local namespace (this could have been done before as well with the old “imports“ object, using</p><p></p><blockquote><span style="font-family: courier;">const MapMarker = imports.mapMarker.MapMarker;</span></blockquote><p>but this was something we never did before, but now I've decided to go this path. Took some style guidance from Weather, which had already done this switch before.</p><p>These classes are now in turn defined in their sources as exportable</p><blockquote><p><span style="font-family: courier;">export class SomeClass extends GObject {...</span></p></blockquote><p>rather than just being declared as “var” on the top level scope in the modules as before</p><blockquote><p><span style="font-family: courier;">var SomeClass = class SomeClass extends GObject {...</span></p></blockquote><p>This makes it also clearer what is visible outside a module, so this works much like “public“ in Java, C#, and Vala for example.</p><p>For our utility modules containing non-class functions, typically wildcard imports are now used</p><blockquote><p> <span style="font-family: courier;">import * as Utils from './utils.js';</span></p></blockquote><p>Functions in this modules that should be used from outside are defined with “export“ just like classes in the above example.</p><p>Now the utility function can be access just like it would have been in the cases before the change (when assigning the object from the “imports” global object to a local const variable as</p><blockquote><p><span style="font-family: courier;">Utils.someFunction(...);</span></p></blockquote><p> </p><p>There has also been some changes on the surface. Sten Smoller has contributed the missing “keep left” and “keep right” instruction icons for turn-by-turn-based navigation, so there are no missing icons in route instructions</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBrirTrEGbJe4-AuNGjI4e113cZzHrelozCPZLCcHOPQv-b6V5g_tv2I2_y0WxMVcJRZCzHfcuKmodbru41KuyXHiTFNLxGSjBBnKdS8T5831KH5v2xbpPnsDbH50DG_SlguUf2qVIS-8gq56xspXM8IHwMKR1-hc5UyATd-3N47rD2KWzjWbuVw/s607/keep-left-right.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="607" data-original-width="350" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBrirTrEGbJe4-AuNGjI4e113cZzHrelozCPZLCcHOPQv-b6V5g_tv2I2_y0WxMVcJRZCzHfcuKmodbru41KuyXHiTFNLxGSjBBnKdS8T5831KH5v2xbpPnsDbH50DG_SlguUf2qVIS-8gq56xspXM8IHwMKR1-hc5UyATd-3N47rD2KWzjWbuVw/s16000/keep-left-right.png" /></a></div><br /> <br /><p></p><br /><p></p> Also over in libshumate James Westman has done some good improvements the in-progress vector-tile renderer that he has covered in an excellent blog post <br /><p></p><blockquote><p> <a href="https://www.jwestman.net/2022/06/18/labelling-maps-is-surprisingly-hard.html">https://www.jwestman.net/2022/06/18/labelling-maps-is-surprisingly-hard.html</a></p></blockquote><p>And speaking of libshumate and GTK 4, recently the GWeather library has switched to be built by default using the libsoup (the GObject HTTP library) 3 API/ABI, and still uses the same library ABI version.</p><p>As our old libchamplain renderer makes use of the libsoup version 2 ABI we have kinda hit a bit of a wall here.</p><p>For our Flatpak builds we could still build the necessary dependencies with libsoup 2 build flags, and bundle them. But as this is not feasible for traditional packages (and it won't work for the GNOME OS builds) we pretty much have to make a go at migrating to GTK 4 and libshumate for GNOME 43 in September.</p><p>It will probably be a bit of a tight fit to finish it, but wish us luck!</p><p> </p><p>Oh, and I couldn't resist adding a little special “summer feature”.</p><p>Quite a long time ago Andreas Nilsson designed a cute little steam locomotive icon for use in public transit itineraries for tourist railways.</p><p>I decided to include this icon now. But as none of the providers we currently support has this distinction I decided to put in a little hard-coding in the plugin for the Swedish Resrobot plugin to use this icon (or rather override the route type so that the icon gets used) for a couple selected agencies.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinAQlHJhASrj82od30E9kdmhwm1AcJ88K0Xp1QR5dwFLx2Q3gRPYlXfC7d6rgCRC0kuw1cX76bL4EWc76T19b7_0cgmNK1tdSfkb_7uJzt0YLAgo7AfHWufu2wMxl37-fm84vgTOX9sejATgFODAWKg0d4zgK2IBAxs7S6f_pTGHLx4VR8IbqLYw/s479/resrobot-tourist-train.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="479" data-original-width="385" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinAQlHJhASrj82od30E9kdmhwm1AcJ88K0Xp1QR5dwFLx2Q3gRPYlXfC7d6rgCRC0kuw1cX76bL4EWc76T19b7_0cgmNK1tdSfkb_7uJzt0YLAgo7AfHWufu2wMxl37-fm84vgTOX9sejATgFODAWKg0d4zgK2IBAxs7S6f_pTGHLx4VR8IbqLYw/s16000/resrobot-tourist-train.png" /></a></div><br /><p>So that you for example gets this icon for journey's hauled by <a href="https://lennakatten.se/">Lennakatten's</a> locomotive Thor</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8o627ALiDdgLR39XUlKtqGsNB4SmUDzDAv4KZNu9xEfky2azrqfPSYUwhNTGNitsZdD54OyWjDANQMr-S3W9NqfXzo2mz01AElF8324tDBFC0cP39xbW5F1DkxPhZKSB2niuzER_C_Itx6nL7wPythZfl_hN_77mc9f6tdvzcxAP3fYC0H_MyVw/s5472/IMG_3469.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3648" data-original-width="5472" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8o627ALiDdgLR39XUlKtqGsNB4SmUDzDAv4KZNu9xEfky2azrqfPSYUwhNTGNitsZdD54OyWjDANQMr-S3W9NqfXzo2mz01AElF8324tDBFC0cP39xbW5F1DkxPhZKSB2niuzER_C_Itx6nL7wPythZfl_hN_77mc9f6tdvzcxAP3fYC0H_MyVw/w640-h426/IMG_3469.JPG" width="640" /></a></div><br /> Until next time, happy summer! 😎<br /><p></p>Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com0tag:blogger.com,1999:blog-5620128670216603593.post-17334986504420304982022-05-13T11:20:00.000+02:002022-05-13T11:20:00.950+02:00Maps Spring Cleaning<p>Thought it was time to share some news on Maps again.</p><p><br /></p><p>After the 42.0 release I have been putting down some time to do some spring cleaning in Maps to slim down a little bit on the code.</p><p>This would also mean less stuff to care about later on when porting to GTK4.</p><p>First we have the “no network” view.</p><p>We used to use the network monitor functionality from GIO to determine if the machine has a usable connection able to reach the public internet to avoid showing incomplete map tile data (where some parts might be cached from earlier, while others are missing).</p><p>Unfortunately there has been some issues with some setups not playing well NetworkManager (such as some third-party VPN software). So we have had several bug reports around this over the years.</p><p>At one point we even added a CLI option to bypass network checking as a sort of “workaround”. But now we decided to remove this (and along with some widgetry), and just rely on the user having a useful connection. The search and route functionality should still behave well and show error messages they were unable to read from the connections.</p><p> Moreover, we dropped the dependency on GOA (gnome-online-accounts), and the remaining support for user check-in using Foursquare, as this has been pretty flaky (possibly due to quota issues, or something like that. Facebook support has been removed already since a few releases (and prior to that logging in to Facebook using GOA hasn't been working for many years). </p><p>Next thing is the process for signing up with an OpenStreetMap account for editing points-of-interest.</p><p>Previously we had an implementation (which by the way was my first large contribution to Maps back in 2015) which was based on a literal translation for Java to JS of the “signpost” library used by JOSM which basically “programmatically runs” the HTML forms for requesting access to an OAuth access token when signing in with the supplied user name and password. It then presents the verification code using a WebKit web view.</p><p>This has a few problems: It involves handling passwords inside the stand-alone application, which goes against best practices for OAuth. Furthermore it implies a dependency on WebKitGTK (the GTK WebKit wrapper), which is yet another dependency that needs porting to GTK4.</p><p>So now with the new implementation we “divert” off to the user's default browser presenting them with logging in (or, if they're already logged in to OSM in the browser session (cookies) they will directly be prompted to grant access to the “GNOME Maps” application without giving credentials again. This implementation is pretty similar to how Cawbird handles signing in to Twitter.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLFuOilouLC09W00ak0azr9O6UTvPs6ymXD9TTBKFoTaFRUgUxM5fgx3ciNKuE-9c2ehMTo0-ObU6hCljYBndFvzqm8krDdG0806nNdhMETwdgmGCgbV9whiaDrq_CeZtMtFYD8_ZLutVNvazJoexQkFGSUBk8a2Py7SSfnEi-iq6OI3SErsm27A/s573/osm-signin-new.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="482" data-original-width="573" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLFuOilouLC09W00ak0azr9O6UTvPs6ymXD9TTBKFoTaFRUgUxM5fgx3ciNKuE-9c2ehMTo0-ObU6hCljYBndFvzqm8krDdG0806nNdhMETwdgmGCgbV9whiaDrq_CeZtMtFYD8_ZLutVNvazJoexQkFGSUBk8a2Py7SSfnEi-iq6OI3SErsm27A/s16000/osm-signin-new.png" /></a></div><br /><p>There is also some new visual updates.</p><p>The search results now has icons for additional place types, such as fast food joints, theaters, dog parks, drink shops. I did some scouting around in the GNOME icon library 😄</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFZ8iEMfgCI3ZGz0ekDFmu947agBnmYs9mwOdK8TcBtG0E5qOGIu34CznA8hEPnghn0F0TjBUdsQVMSK7GrjdtoYbLsrUB4SLaznRCxwuLcFKt3BqwJ5fgLpiwiq0gGBC7ZhrLDorGrYqeebAuq2jngVt9sQWALWMxMcxmmVCNOIMk4PJ5qzPYkQ/s573/alco.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="482" data-original-width="573" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFZ8iEMfgCI3ZGz0ekDFmu947agBnmYs9mwOdK8TcBtG0E5qOGIu34CznA8hEPnghn0F0TjBUdsQVMSK7GrjdtoYbLsrUB4SLaznRCxwuLcFKt3BqwJ5fgLpiwiq0gGBC7ZhrLDorGrYqeebAuq2jngVt9sQWALWMxMcxmmVCNOIMk4PJ5qzPYkQ/s16000/alco.png" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0FNRFnDzHDAokyf5Q2IvcBu-ar1jUCgriPmF-v4zh_AKGgYyCPIx13ousU8812lW8HU-JCpeS3vFkCGPUM0sGpP5zXu2BzEORg0XwXa0MtrCzBLOoOKKv88KpVfaOs4bcBySuwLxVyZZUlXHgAY4ysG90AHxc5lQtiVFE300WXz0Wp9LJw56VaA/s573/dog.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="482" data-original-width="573" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0FNRFnDzHDAokyf5Q2IvcBu-ar1jUCgriPmF-v4zh_AKGgYyCPIx13ousU8812lW8HU-JCpeS3vFkCGPUM0sGpP5zXu2BzEORg0XwXa0MtrCzBLOoOKKv88KpVfaOs4bcBySuwLxVyZZUlXHgAY4ysG90AHxc5lQtiVFE300WXz0Wp9LJw56VaA/s16000/dog.png" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE-qVamz4yU1ForrUm3o2HpVho5IcezWlFDKe_JsYn7WlcvOhUGoPYneL091iTxSsFy8dgjGeQ02uXqPnDWMA2wcjEWU0BjPyOsbn2MsAei07zd_htGsIvK8DWtSNJ0LB9pq7ND_fGM-h85ljmSUdqMaqnugoH9ChPqewHXewbcnj2_bpKrqylZw/s573/fast-food.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="482" data-original-width="573" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE-qVamz4yU1ForrUm3o2HpVho5IcezWlFDKe_JsYn7WlcvOhUGoPYneL091iTxSsFy8dgjGeQ02uXqPnDWMA2wcjEWU0BjPyOsbn2MsAei07zd_htGsIvK8DWtSNJ0LB9pq7ND_fGM-h85ljmSUdqMaqnugoH9ChPqewHXewbcnj2_bpKrqylZw/s16000/fast-food.png" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8B0wyjo4fAOFX7zOPt6B4uFVmqqGxeI3-UCm9HCuVpDVgN_JMTaHVjertl7duOcYLc0hRSHw24GdaKYJrRmbJaC87cFSyD0hoEWgZqfx5rGD2hhg7eGJUpGTjaECY5FX2CLZBWoQZj87wVY5FJMlWgZH1T-8VIxoHReetglC-tmXA4tKzaEwVPQ/s573/theater2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="482" data-original-width="573" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8B0wyjo4fAOFX7zOPt6B4uFVmqqGxeI3-UCm9HCuVpDVgN_JMTaHVjertl7duOcYLc0hRSHw24GdaKYJrRmbJaC87cFSyD0hoEWgZqfx5rGD2hhg7eGJUpGTjaECY5FX2CLZBWoQZj87wVY5FJMlWgZH1T-8VIxoHReetglC-tmXA4tKzaEwVPQ/s16000/theater2.png" /></a></div><br /><p>Also, as a continuation of one of the last features added for 42.0, where Maps remembers if the scale stock was shown or hidden last you ran Maps when starting again. I realized the feature hiding the scale is a bit hidden (you need to look for it in the keyboard shorts menu), and also it is not possible to access on a touch-only device (such as on the Pine phone). So I added a checkbox for it under the layers menu (where I think it fits in).</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKHFFTknuqFYUVxQkZAu0lZNVfXDJ1p5svHp2QNNayY4pYx8LmjPNbKDkOpdW_CQ2R7LocS055QfoUOwnbWSdnwtdKHmefDgVSy5fKh9kUDfCWBgyishC24tpMWxb7Tuxha0x1X2ByEomx2kpG7DbDBuxdxvlKpeZZV7Jv20Porr-COpOhz0r2aA/s326/show-scale.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="276" data-original-width="326" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKHFFTknuqFYUVxQkZAu0lZNVfXDJ1p5svHp2QNNayY4pYx8LmjPNbKDkOpdW_CQ2R7LocS055QfoUOwnbWSdnwtdKHmefDgVSy5fKh9kUDfCWBgyishC24tpMWxb7Tuxha0x1X2ByEomx2kpG7DbDBuxdxvlKpeZZV7Jv20Porr-COpOhz0r2aA/s16000/show-scale.png" /></a></div><br /> And that's about it for this time.<p></p><p>Next time, I think there will be some more under-the-hood changes.<br /></p>Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com2tag:blogger.com,1999:blog-5620128670216603593.post-91533041239120743242022-03-11T10:53:00.003+01:002022-03-11T10:53:56.276+01:00Maps and GNOME 42<p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhAkMyA5NN-wqlh65dvmBM0BpLgXGsYQXN24JBgs42f1HV3seeg_k2g4EwKtqoXSTqMhQ1FLzBI9QlssTtCX6JPmp0tda1D-oWGOZZbSana_QU4Lk7O3EbD8qwWamZYuGSNrbvkwprOagmlpfAKn_UmJ7htOP9oUJ74RWK70-OB2_JOBaGVl8h8Uw=s464" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="464" data-original-width="461" src="https://blogger.googleusercontent.com/img/a/AVvXsEhAkMyA5NN-wqlh65dvmBM0BpLgXGsYQXN24JBgs42f1HV3seeg_k2g4EwKtqoXSTqMhQ1FLzBI9QlssTtCX6JPmp0tda1D-oWGOZZbSana_QU4Lk7O3EbD8qwWamZYuGSNrbvkwprOagmlpfAKn_UmJ7htOP9oUJ74RWK70-OB2_JOBaGVl8h8Uw=s16000" /></a></div><p></p><p>The release of GNOME 42 (and the Maps release accomplishing it) is due in a little over a week.</p><p><br /></p><p>I have already covered some of the more visible updates for Maps 42.0 in the last update, such as the development profile (allowing to run directly from GNOME Builder, or install “nightly” Flatpak builds, and be able to run them in parallel with a stable release (distinguished by it's icon overlay and headerbar styling).</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhRgULGT2XqqYrXvIEjkh1GWNzFhl6BoUwDdlDmt0_jhG1pXDBRLvQzKfN6WHr8CAz7Hstr3GL23EZAHd2o3LVCVMABqq0V76h1edTiIemqxYM8h7NSMn1XitIol3Y0fVVMKlnK501XknZQjvJoJfVF3cRnT4iS_NfvUrAUPDDegTsIiVCtWcskRQ=s517" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="486" data-original-width="517" src="https://blogger.googleusercontent.com/img/a/AVvXsEhRgULGT2XqqYrXvIEjkh1GWNzFhl6BoUwDdlDmt0_jhG1pXDBRLvQzKfN6WHr8CAz7Hstr3GL23EZAHd2o3LVCVMABqq0V76h1edTiIemqxYM8h7NSMn1XitIol3Y0fVVMKlnK501XknZQjvJoJfVF3cRnT4iS_NfvUrAUPDDegTsIiVCtWcskRQ=s16000" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjpLZTT8ItsBo3wE4fwfDY5Bdp6KHT3tDRX7NBM9oW-nfXwg71WVKRFUcCFeVSwVyYPubwNPPRhdYQi079wLYIRrgkfNevXZRSuLpmoCLsuOjT2RzNTH560Dvc2-MoAKV730k-or-4KCnZdJ1LCSHZGk52oSlku4yH3viQsXJtahJsFn4U_mi2vnQ=s646" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="168" data-original-width="646" src="https://blogger.googleusercontent.com/img/a/AVvXsEjpLZTT8ItsBo3wE4fwfDY5Bdp6KHT3tDRX7NBM9oW-nfXwg71WVKRFUcCFeVSwVyYPubwNPPRhdYQi079wLYIRrgkfNevXZRSuLpmoCLsuOjT2RzNTH560Dvc2-MoAKV730k-or-4KCnZdJ1LCSHZGk52oSlku4yH3viQsXJtahJsFn4U_mi2vnQ=s16000" /></a></div><br /><br /> Also we have the support for handling the <span style="font-family: courier;">maps: <span style="font-family: arial;">URI scheme, allowing to open search queries from other programs. This feature will already be utilized by GNOME Contacts for opening locations of contacts in your address book when they have a physical address set.</span></span><p></p><p><span style="font-family: courier;"><span style="font-family: arial;">Some of the last changes involves utilizing the “tabular numbers” Pango font feature attribute, to get the time labels to align up vertically (even when the system font has variable-width digits) when rendering public transit itineraries.</span></span></p><p><span style="font-family: courier;"><span style="font-family: arial;"></span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: courier;"><span style="font-family: arial;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjurDjGySZiPQl2dYgtuybcPV2pkX3RegJLnab1WwgWSWmrebSianMnkYhZnSnXrBnmu_GRHmxbnMJv_297ICQ5Y6gv_EvciuL6bQNcst6UA8mTlaEaEd_JDybyld3nqz0HkF5uL4WtVkzi5cBEasZFyqXsgAm7RjsIRxdtsszyMGfOhtn9bPCRYg=s572" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="572" data-original-width="333" src="https://blogger.googleusercontent.com/img/a/AVvXsEjurDjGySZiPQl2dYgtuybcPV2pkX3RegJLnab1WwgWSWmrebSianMnkYhZnSnXrBnmu_GRHmxbnMJv_297ICQ5Y6gv_EvciuL6bQNcst6UA8mTlaEaEd_JDybyld3nqz0HkF5uL4WtVkzi5cBEasZFyqXsgAm7RjsIRxdtsszyMGfOhtn9bPCRYg=s16000" /></a></span></span></div><span style="font-family: courier;"><span style="font-family: arial;"><br /> </span></span>Also, we have revised screenshots prepared by Sofie Herold, linked in the “appdata“ metadata to show in software centers like GNOME Software.<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh4k7-h_ptGF6MltaIkrkDYeJhg75SwscisteIyld4n3qQTTnSg8MgIDx-fZxMBoPV0hCFE_NAn8INLxFBXykmFNAFu2g6Mw66SyWjvPYbllBDOQrWBG9s9PTALQzOkRZJj_VXNayhPKPQFg4G58NYUe3vcuMW-q1nnuQx-Mh9hEAbWiiEcaowPdQ=s1252" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="852" data-original-width="1252" height="436" src="https://blogger.googleusercontent.com/img/a/AVvXsEh4k7-h_ptGF6MltaIkrkDYeJhg75SwscisteIyld4n3qQTTnSg8MgIDx-fZxMBoPV0hCFE_NAn8INLxFBXykmFNAFu2g6Mw66SyWjvPYbllBDOQrWBG9s9PTALQzOkRZJj_VXNayhPKPQFg4G58NYUe3vcuMW-q1nnuQx-Mh9hEAbWiiEcaowPdQ=w640-h436" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiOw82IazO24RCu5dx3kr52ri3oefqLri9S02kaoZPKDsWgx_PERGRifx0KFqruNvPof3a9qrY_mphto7Ht4h8G9j0_hDV_J0v1-WGtzvuA45aKa8OQqw_CBXhEi-MfzeynvfcZcuj_wFVvLXA49AaaRwpG139RwfzivWYmyYFaSq9GvpS5NAuUHg=s1252" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="852" data-original-width="1252" height="436" src="https://blogger.googleusercontent.com/img/a/AVvXsEiOw82IazO24RCu5dx3kr52ri3oefqLri9S02kaoZPKDsWgx_PERGRifx0KFqruNvPof3a9qrY_mphto7Ht4h8G9j0_hDV_J0v1-WGtzvuA45aKa8OQqw_CBXhEi-MfzeynvfcZcuj_wFVvLXA49AaaRwpG139RwfzivWYmyYFaSq9GvpS5NAuUHg=w640-h436" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjS6Bu4Sq_Wo_PLO4Xtpt9LzEgQt_3teLicLXpBKyBnYZp9UMRIuF2ef2ZGxhP9ByjwsolyeCrN9AAT-W4O6vkRiLiTDZnthH4kAXPhL0vhVLvXLNm148NtBvcvmaEj3iEUh9SOZVPagbWiey37aNTOyLM-JNmYTZ1LI9U67PTNccbRKt0skqiLrw=s1252" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="852" data-original-width="1252" height="436" src="https://blogger.googleusercontent.com/img/a/AVvXsEjS6Bu4Sq_Wo_PLO4Xtpt9LzEgQt_3teLicLXpBKyBnYZp9UMRIuF2ef2ZGxhP9ByjwsolyeCrN9AAT-W4O6vkRiLiTDZnthH4kAXPhL0vhVLvXLNm148NtBvcvmaEj3iEUh9SOZVPagbWiey37aNTOyLM-JNmYTZ1LI9U67PTNccbRKt0skqiLrw=w640-h436" width="640" /></a></div><br /><p>Another small attention to detail that I included pretty late, is that now the state of showing the scale (which can be toggled with the ctrl+s shortcut) is now stored in gsettings and remembered between runs (rather than always showing when you start next time, if you choose to hide it).</p><p>Unfortunalty, I totally forgot that adding new gsettings schema keys also means adding new strings for translation (the descriptions), so I accidentally broke the “string freeze” break (which started after the 42.beta release). So I had to retroactively ask for an exception.</p><p>Sorry about the inconvienience!</p><p>And, until next time!<br /></p>Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com0tag:blogger.com,1999:blog-5620128670216603593.post-36868761058161955872021-12-22T10:32:00.003+01:002021-12-22T10:32:51.187+01:00Christmas Maps<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjd1YCPrWJmgClssf7VMuYSa2PuS9v2LsppKRTqo7cMU5dGD2XHlKOXJG40obOJ61G-bzz-OVNII1JpHHUod8BwSW0Y7q7d8CWl4ysPOR_nxfZTPLOHQJj5dfhlGOMjDsMeha0nzAwdKUQz_NI4Cj4C-Iekt2vqXhTVttK3odWfO9OS-8c-T5Lb3Q=s517" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="486" data-original-width="517" height="301" src="https://blogger.googleusercontent.com/img/a/AVvXsEjd1YCPrWJmgClssf7VMuYSa2PuS9v2LsppKRTqo7cMU5dGD2XHlKOXJG40obOJ61G-bzz-OVNII1JpHHUod8BwSW0Y7q7d8CWl4ysPOR_nxfZTPLOHQJj5dfhlGOMjDsMeha0nzAwdKUQz_NI4Cj4C-Iekt2vqXhTVttK3odWfO9OS-8c-T5Lb3Q=s320" width="320" /></a></div>So it's that time of the year again and about time for an end-of-year post.<p></p><p>Some news in Maps for the upcoming GNOME 42.</p><p>Finally, we have added support for running development versions of Maps (such as from the Nightly Flatpak repo) in parallel with the stable ones</p><p>The develop one is distinguished by the “cogwheel” background in the headerbar, and also by it's ”bio-hazard” strip icon as seen above. <br /></p><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEigB7Ju8_dDbJ1nbilRDrKTU27zI8Pj4qESkY_6Ydydk5qRtAYET5gUoH_Uyohxu-gxE-C4rDXg7zL25cRsBt7TSk8RFqjUTbE59zeJ9RBk0hD3BWA7-1uFrDIzazCoOAj6vDVYeIfCd68OvGeqUQKMLu6GvzrVW2bYU8izPF4KbL5kFn0LGVRKUg=s646" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="168" data-original-width="646" src="https://blogger.googleusercontent.com/img/a/AVvXsEigB7Ju8_dDbJ1nbilRDrKTU27zI8Pj4qESkY_6Ydydk5qRtAYET5gUoH_Uyohxu-gxE-C4rDXg7zL25cRsBt7TSk8RFqjUTbE59zeJ9RBk0hD3BWA7-1uFrDIzazCoOAj6vDVYeIfCd68OvGeqUQKMLu6GvzrVW2bYU8izPF4KbL5kFn0LGVRKUg=s16000" /></a></div><br /><p>Also we've had an old feature request laying around about supporting a command-line option to initiate a search.</p><p>In the meantime in Evolution there was discussions about being able to launch a search using a configured map application, rather than just using the OpenStreetMap web-based search. In that issue it was suggested there is a draft maps: URI scheme that has been used by Apple Maps on iOS.</p><p>So I have implemented this is Maps, so that Maps will now register as a mime-handler for the maps: URI scheme. And you can then open URIs of the form something like:</p><blockquote><p><span style="font-family: courier;">maps:q=search%20query</span></p></blockquote><p>This could be tested from the command line using the <span style="font-family: courier;">gio </span>command</p><blockquote><p><span style="font-family: courier;">$ gio open maps:q=search%20query</span><br /></p></blockquote><p> </p><p>I also took the opportunity to add a DBus action to perform search.</p><p>This can be tested using a command-line like the following:</p><blockquote><p><span style="font-family: courier;">$ gdbus call --session --dest org.gnome.Maps.Devel --object-path /org/gnome/Maps/Devel --method org.freedesktop.Application.ActivateAction 'search' "[<'search query'>]" "{}"</span><br /></p></blockquote><p> or by using the d-feet DBus debugger</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjxaaDE0UgAWMXJUtfsiZ7ZOmFb98fBruoJVQQOagkxVl9JggU3SgwHF4Yn9q7q9CkVUua7yl7egUqV2LMD4HUzeyhg4iWb8OucbfA2sjcSvrRYUUvXaVp8m5vxSAqiPTxyWot_3IfaQY7S3bsgXVqerAb9PuWZ80oSgh8bhNaUwmDL6QontfLj1Q=s662" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="589" data-original-width="662" src="https://blogger.googleusercontent.com/img/a/AVvXsEjxaaDE0UgAWMXJUtfsiZ7ZOmFb98fBruoJVQQOagkxVl9JggU3SgwHF4Yn9q7q9CkVUua7yl7egUqV2LMD4HUzeyhg4iWb8OucbfA2sjcSvrRYUUvXaVp8m5vxSAqiPTxyWot_3IfaQY7S3bsgXVqerAb9PuWZ80oSgh8bhNaUwmDL6QontfLj1Q=s16000" /></a></div><br /><span style="font-family: inherit;"> (and even though the output states no return, Maps will actually launch, or activate the currently running instance with the search performed).</span><p></p><p><span style="font-family: inherit;">And I also implemented an old-school command-line argument -S with the same semantic (taking the search query as it's argument) as per the original feature request.</span></p><p><span style="font-family: inherit;">These will either show the search popover in Maps when there are multiple search results, or just open the place bubble with the place selected when the search was specific enough to have a single result (such as when searching for a contact's address).</span></p><p><span style="font-family: inherit;"> Furthermore, as a little refinement the routing instructions for turn-by-turn based modes now also makes use of the u-turn icons:</span></p><p><span style="font-family: inherit;"></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhGvP65eacFQm1ul2tdSzxrJH8qUDxvJuCom3eyyvuE8qLuLY_zkJnUYXnPTldoS_mB6ya6VnGgYEOh1vHgZ1cqDqXHm2ZYr9NN_Wz6hWKupvECmUkQoNWf8hUt9Tu__7KhhuBrWBu_bOHtsYbFCtD9BYDgkR22lPoJmAvHZC9_xCLn7W41_GWHAw=s706" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="706" data-original-width="364" src="https://blogger.googleusercontent.com/img/a/AVvXsEhGvP65eacFQm1ul2tdSzxrJH8qUDxvJuCom3eyyvuE8qLuLY_zkJnUYXnPTldoS_mB6ya6VnGgYEOh1vHgZ1cqDqXHm2ZYr9NN_Wz6hWKupvECmUkQoNWf8hUt9Tu__7KhhuBrWBu_bOHtsYbFCtD9BYDgkR22lPoJmAvHZC9_xCLn7W41_GWHAw=s16000" /></a></div><br /> There was also a corner-case bug introduced by me when refactoring the instruction types to decouple them the GraphHopper-specific codes, resulting in a bug in some cases with u-turns preventing the route to show up. This was spotted, and fixed by one of our newcomer contributors Marina Billes.<p></p><p><span style="font-family: inherit;">One thing missing when it comes to the instruction icons by the way is that we miss icons for “keep left” and “keep right”. So I've created an issue for that (https://gitlab.gnome.org/GNOME/gnome-maps/-/issues/410). (I first gave Inkscape a go, but I quickly realized icons attempt to draw looks more like deformed sausages :-) ).</span></p><p><span style="font-family: inherit;"> </span></p><p><span style="font-family: inherit;">Another thing that's been on my mind for a while is the default zoom levels we use when “going to” a place when selecting a search result. Currently we find a suitable zoom level based on the so called bounding box of a feature (when it's available in the result item). This means things like buildings and parks can usually be shown initially so that it fits in the present window. For other object that are mere nodes (just a pair of coordinates), we have used some presets based on the place types as defined by the geocode-glib library. But these are quite limited and only covers a few cases.</span></p><p><span style="font-family: inherit;">So I started playing with a WiP branch to select more fine-grained default zoom levels for more place types with a heuristic based on the types we get from the OSM data.</span></p><p><span style="font-family: inherit;">This way, e.g. the continents (which are represented in OSM as nodes) gets a better fit, and not just defaults to a fully zoomed-in (as a fallback) place somewhere in a rural area or such:</span></p><p><span style="font-family: inherit;"> </span></p><p><span style="font-family: inherit;"></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEitfaCiVWGUs1wbW8qau2I8uCCjt0aLwLchQbSgBKIran2yA6hbka7PmEnsauRfvxZ48yT_hoNjaqGZ6kIBMvizxjmCiD4P6W0mDCWS_MxKLGB5LfjjrDqCT4K9h5dSaihxnN1WvBXkLSQeCHUncq7wJafqZ4CjOblwbUAOKKR0bzW0Kjll3cTBOw=s1917" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1245" data-original-width="1917" height="416" src="https://blogger.googleusercontent.com/img/a/AVvXsEitfaCiVWGUs1wbW8qau2I8uCCjt0aLwLchQbSgBKIran2yA6hbka7PmEnsauRfvxZ48yT_hoNjaqGZ6kIBMvizxjmCiD4P6W0mDCWS_MxKLGB5LfjjrDqCT4K9h5dSaihxnN1WvBXkLSQeCHUncq7wJafqZ4CjOblwbUAOKKR0bzW0Kjll3cTBOw=w640-h416" width="640" /></a></div><p></p><p><span style="font-family: inherit;">And also a few more distinct levels for different place “sizes”, such as hamlets so we don't have to resort to a “one size fits” all level more suitable for larger towns and cities:</span></p><p><span style="font-family: inherit;"><br /> </span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh2YC_IFHtlCEfBLRAM34rw21OSvhGkTq4-rOQkSop98CwuLo8r0Q0g-mZKrTTOn3ofNF9eqAbspmk3VIzCI6327qTf-TOYjQcxaT3qX8J5WjmiHMi3oS_GikldW26hQH-NrFaYv8IICGla7h44sHUHdX48rt6PfAPRR8nMh0DsOSBfLLTBt5R2ug=s1917" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1245" data-original-width="1917" height="416" src="https://blogger.googleusercontent.com/img/a/AVvXsEh2YC_IFHtlCEfBLRAM34rw21OSvhGkTq4-rOQkSop98CwuLo8r0Q0g-mZKrTTOn3ofNF9eqAbspmk3VIzCI6327qTf-TOYjQcxaT3qX8J5WjmiHMi3oS_GikldW26hQH-NrFaYv8IICGla7h44sHUHdX48rt6PfAPRR8nMh0DsOSBfLLTBt5R2ug=w640-h416" width="640" /></a></div><p></p><p>And I guess that will wrap it up for this time!</p><p>Happy Holidays everyone!<br /><br /></p>Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com1tag:blogger.com,1999:blog-5620128670216603593.post-81219590302680723652021-09-20T22:20:00.001+02:002021-09-20T22:20:26.679+02:00Maps and GNOME 41<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXBQY32Lo_y2SQtMldACPF6g0hDHL7TpgrX33PcfoXHjUTA3JGEcoVd0gTOvzAULWPxRiglWgAZ9a1IonK3Tvc6CLfk7LZW3zQEeaVhLnO65iSI7hWRj58qJwMpvYVFYnnfR7u8-E58w/s460/about_41.0.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="458" data-original-width="460" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXBQY32Lo_y2SQtMldACPF6g0hDHL7TpgrX33PcfoXHjUTA3JGEcoVd0gTOvzAULWPxRiglWgAZ9a1IonK3Tvc6CLfk7LZW3zQEeaVhLnO65iSI7hWRj58qJwMpvYVFYnnfR7u8-E58w/s16000/about_41.0.png" /></a></div> <br /><p></p><p> It's been a while since my last blog post. And in the meantime GNOME 41 was released. So I thought it would be time for a new post, although there's not been that much news to show in Maps itself since the last update (where I showcased the refreshed icons for search results.</p><p>But a few small visual improvements have been done since.</p><p>Already in 40.0, we made the display of population numbers for places (such as towns, cities, and similar) locale-aware. So that it now uses localized digits and decimal separators.<br /></p><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK3zaYdnGbe3qkShGmkyWTZNm3MSzsxt3AzVdryGl881UFThep5ZaLa5bJu2G-ws2b3ct_eFG56irdq1QKws7Wu8hwMZx4C63BLN9sokfDv5JxYTnZOPaDHQvzN8oLZ8KO2kCihmX0tw/s612/population_en.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="612" data-original-width="361" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK3zaYdnGbe3qkShGmkyWTZNm3MSzsxt3AzVdryGl881UFThep5ZaLa5bJu2G-ws2b3ct_eFG56irdq1QKws7Wu8hwMZx4C63BLN9sokfDv5JxYTnZOPaDHQvzN8oLZ8KO2kCihmX0tw/w236-h400/population_en.png" width="236" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUkphZlWOiekcPzbTrk4CO1dJzpQR0PIQbkGb6uYj4MjCRsOmJmzdPUAOhBM1QWTvDUCPJYZy_NY1Y9UmIC-8scpC1CWO4Xg_Qo4uBkJ8ugCGPXB4KQ5Kq4tGU5vWGatzQt_UIxarkMg/s576/population_fa.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="576" data-original-width="336" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUkphZlWOiekcPzbTrk4CO1dJzpQR0PIQbkGb6uYj4MjCRsOmJmzdPUAOhBM1QWTvDUCPJYZy_NY1Y9UmIC-8scpC1CWO4Xg_Qo4uBkJ8ugCGPXB4KQ5Kq4tGU5vWGatzQt_UIxarkMg/w234-h400/population_fa.png" width="234" /></a></div></div><br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpkvxzhaP3crT6SU9LMQJ_keXo24VVTLkAgVV7mUsMnzW9GG9BoWlze_zq7zJJ3O6IEszqRLJxBm7VYPhaUYkKL1CCRpNDe7Cs_ryyLrFC8ABVRwyjZfsGxUPyczo52ELexofZcxeX4Q/s609/population_sv.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="609" data-original-width="352" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpkvxzhaP3crT6SU9LMQJ_keXo24VVTLkAgVV7mUsMnzW9GG9BoWlze_zq7zJJ3O6IEszqRLJxBm7VYPhaUYkKL1CCRpNDe7Cs_ryyLrFC8ABVRwyjZfsGxUPyczo52ELexofZcxeX4Q/w231-h400/population_sv.png" width="231" /></a></div></div></div><br /><br /><br /><p>Now in 41.0 another small refinement has been made to show elevations below mean sea level expressed in words, rather that just showing a negative numer (which, although correct, may look a bit technical):</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh41d7fnPPDMOq72hn-ZubdyHVQoR6xZVzOrRRTVzZ3Tf6MiykC8fgt7EH7YZ8DqUSiv2JqBubj0B0PX9Rc0bjK0WZJ1IYPn_ooHiZjrPLrlC4Hmgu1cSbDCmj7QU8MG0coGuzzj_u1mw/s606/below_sea_level.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="606" data-original-width="386" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh41d7fnPPDMOq72hn-ZubdyHVQoR6xZVzOrRRTVzZ3Tf6MiykC8fgt7EH7YZ8DqUSiv2JqBubj0B0PX9Rc0bjK0WZJ1IYPn_ooHiZjrPLrlC4Hmgu1cSbDCmj7QU8MG0coGuzzj_u1mw/s16000/below_sea_level.png" /></a></div><br /><p>Also along the lines of visual polish, we now show population numbers in a rounded format if the value is an exact multiple of 100,000, assuming such a figure is most likely not an exact number but rather an approximation.</p><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCEgRp75sU7cQzOfT4lyAC6k1wm12USUNISvj5-rP_qG9KZkAIJMuvT4kLKxyhbBes4eLk0_mbYG6wKfgG88s5i0_HQ_X7gZhFAaNCUQ3p72zatL7CBMh3gUGwGnUExIo5pBfaChHucA/s607/rounded_pop_en.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="607" data-original-width="347" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCEgRp75sU7cQzOfT4lyAC6k1wm12USUNISvj5-rP_qG9KZkAIJMuvT4kLKxyhbBes4eLk0_mbYG6wKfgG88s5i0_HQ_X7gZhFAaNCUQ3p72zatL7CBMh3gUGwGnUExIo5pBfaChHucA/w229-h400/rounded_pop_en.png" width="229" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9Psk2o_1bObdGjNBADz1gZ_JhXJHd1BlmmOJBfK1z69zGj8tGXFRSNbgnLXenBI35Hfi3dp2hBGyRyLa2b5PmG6xy_fyrc_QrH6u9jowfkEWCE2twjmVhSugEffhSRz6nd4cutr0yCA/s611/round_pop_sv.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="611" data-original-width="352" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9Psk2o_1bObdGjNBADz1gZ_JhXJHd1BlmmOJBfK1z69zGj8tGXFRSNbgnLXenBI35Hfi3dp2hBGyRyLa2b5PmG6xy_fyrc_QrH6u9jowfkEWCE2twjmVhSugEffhSRz6nd4cutr0yCA/w230-h400/round_pop_sv.png" width="230" /></a></div></div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ0Z2UtMf8-qD70O4NehFbGrDy3VlIpPluuaPq1F1oCgOffOJgpqFgjWUL7KlnUagDsLDFeRPS5d-O9psAtc78fTgvCxsWsFfeULtW1sBRIWRIcBmMAOkY2vqr-JQ25KJhwvzYnafZXA/s617/round_pop_ja.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="617" data-original-width="357" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ0Z2UtMf8-qD70O4NehFbGrDy3VlIpPluuaPq1F1oCgOffOJgpqFgjWUL7KlnUagDsLDFeRPS5d-O9psAtc78fTgvCxsWsFfeULtW1sBRIWRIcBmMAOkY2vqr-JQ25KJhwvzYnafZXA/w231-h400/round_pop_ja.png" width="231" /></a></div><br />This utilises the localization API from ES (JavaScript) and as can be seen here gives a localized unit suffix and also in the case of Japanese as shown in the last example, the multiple in this case is 10,000, as this is based on traditional Chinese numerals, with denominations 10⁴, 10⁸ and so on. So in this case it would translate to “800 ten-thousands (man)”.<p>And over in libshumate (the new GTK4-based map rendering library we're working to eventually replace libchamplain, and enable migrating to GTK4), James and Corentin has been busy.</p><p>Among other things, James has implemented rotation support (for pinch gestures on tough screens among others), fractional scaling (should make smoother pinch zooming possible, something that has been quite poor currently in libchamplain, and thus in Maps). Also he started working on a renderer that vector format tiles:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilabEnQdHH_F7xlpIsFNeiDWyJYeDFLCSy23mc1JkCvM-Tnkz4WlrCq8wFkariLHkiVmsj236-VZ6uOezwhkyYbGKMHSLuh3hYRyWNj49jxneH6-VO83sFZhyphenhyphenL4_CGeDxifw5FtaWTxw/s1216/shumate-vector-tiles2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="741" data-original-width="1216" height="390" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilabEnQdHH_F7xlpIsFNeiDWyJYeDFLCSy23mc1JkCvM-Tnkz4WlrCq8wFkariLHkiVmsj236-VZ6uOezwhkyYbGKMHSLuh3hYRyWNj49jxneH6-VO83sFZhyphenhyphenL4_CGeDxifw5FtaWTxw/w640-h390/shumate-vector-tiles2.png" width="640" /></a></div><p>Using vector tiles is something that's been in long-term plans for a long time. One thing that this could enable is the possibility to download map data for offline usage, something that is not really feasible with bitmap tiles. But actually I think something perhaps even more useful could be the possibility to render names in the user's language. This has always been an area where compromises had to be done. For example Mapbox' street tiles uses English names in the default tile set which would have the benefit of rendering as something that many people could read out as common Romanized transliterations of place names where the native reading is in a script they can't read. The downside being that they see place names near there home always in English, even though they could read (and might be more familiar with) the native reading. On the other hand the default openstreetmap.org tiles (which Maps now uses) renders the native names (which is better for your home location, but vice versa would make any place where the native script is unfamiliar not understandable).</p><p>And myself I have started on a little side project <a href="https://gitlab.gnome.org/mlundblad/gnome-streets">GNOME streets</a>. a style for rendering bitmap tile maps using the GNOME color palette (though only some parts of the map uses these colors so far):</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFQTrMvgaRBDGeZahBenYcGYAt0YlG95sdQB8nDdCAEzjVpFgzHsgN5OT3S_aluV1_iPHX63FiYlUJRjNDH7jhZbnnBa4lY7Y3YIjDMmjz-sJEH6FkTLaBMC-wpLh5DW_FByyW85_TNg/s2048/gnome-streets-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1131" data-original-width="2048" height="354" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFQTrMvgaRBDGeZahBenYcGYAt0YlG95sdQB8nDdCAEzjVpFgzHsgN5OT3S_aluV1_iPHX63FiYlUJRjNDH7jhZbnnBa4lY7Y3YIjDMmjz-sJEH6FkTLaBMC-wpLh5DW_FByyW85_TNg/w640-h354/gnome-streets-1.png" width="640" /></a></div><br /><p>Eventually such a style could either be deployed on a GNOME-hosted bitmap tile server, or it could perhaps be used as the base of a stylesheet for rendering vectors tiles client-side in Maps.<br /></p><p>So, over and out for now, until next time!<br /></p>Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com0tag:blogger.com,1999:blog-5620128670216603593.post-91737234670847009712021-05-04T22:41:00.000+02:002021-05-04T22:41:10.234+02:00Spring Maps<p> Since it was a while since the release of GNOME 40, I thought it might be time again for a post.</p><p>Since the 40.0 release there's just been a bug fix release (40.1) where, among other things, a bug where toggling a place as a favorite and then “unfavoring” it again, made it impossible to select that place again until restarting Maps.</p><p>And in master, leading towards 41 there's also been some goings-on.</p><p> </p><p><b>A new Bookmarks button icon</b><br /></p><p>First, one issue that was brought to our attention was that since we've used the star icon both for the favorites menu button in the header bar and for the button to mark a place as a favorite in a “place bubble” and this get a bit confusing when the new adaptive mobile mode is active. Since in this case the favorite button moves to the bottom bar and this lines up the favorite button in the place bar shown above that when selecting a place.</p><p>So, to mitigate this we decided to adopt the same bookmark icon as used in GNOME Web (Epiphany) for the favorites menu button to keep them apart.</p><p>In the desktop layout it looks like this:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOcHAms0UWFmOGjb7u9XEGV4WqKLJhFG2R5FWgfDXsgekRJY8E7a872Ykk8IZvFPsOYY1agP_eczCkkuC60I6IDJTp23RrIZyGo3adg59jyeWFF86CNdicohIVVGnIo92_Anun4yWWVA/s293/headerbar-bookmarks.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="186" data-original-width="293" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOcHAms0UWFmOGjb7u9XEGV4WqKLJhFG2R5FWgfDXsgekRJY8E7a872Ykk8IZvFPsOYY1agP_eczCkkuC60I6IDJTp23RrIZyGo3adg59jyeWFF86CNdicohIVVGnIo92_Anun4yWWVA/s0/headerbar-bookmarks.png" /></a></div><br /><p>And when in the mobile “narrow mode”:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicA18qyP1enKZymBrv_RX5CHp7DNPm1X-ZIzbcQSHlU0f77K2alKZ9aQkqpcQl7RKRrwZWDfMe7tmkcRD9at6pI-xYFRyuvCO07E_FPl6jlWRNm5p96kJvI77X8WI8uBj-GwIEc3l72A/s198/mobile-bookmarks.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="198" data-original-width="169" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicA18qyP1enKZymBrv_RX5CHp7DNPm1X-ZIzbcQSHlU0f77K2alKZ9aQkqpcQl7RKRrwZWDfMe7tmkcRD9at6pI-xYFRyuvCO07E_FPl6jlWRNm5p96kJvI77X8WI8uBj-GwIEc3l72A/s0/mobile-bookmarks.png" /></a></div><br /><p>Here, the buttons can be seen horizontally aligned, with the top one being the button to mark the place as a favorite.</p><p><b>An overhaul of the search result icons</b></p><p>For the icons shown in the search results list we always relied on the icons provided by the libgeocode-glib library. This has had some issues, however. For one this icon set is quite limited, so most places has just received a generic pin icon.</p><p>So now these have all been replaced with fresh new icons from the GNOME icon catalog:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2GHNVk1qeqWO5myWKkPjoqNbdBw6k57TiPCCIookD5F4Q31lUuOXsXeRKjCULtcM5EmimrXMErjxW76bk6hKqjEwahoc71KvPA5Oro3fL_X2zJMw09NcYhJkuE4RRWn2b2Bjz6Kq4hw/s509/icon-park-cafe.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="376" data-original-width="509" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2GHNVk1qeqWO5myWKkPjoqNbdBw6k57TiPCCIookD5F4Q31lUuOXsXeRKjCULtcM5EmimrXMErjxW76bk6hKqjEwahoc71KvPA5Oro3fL_X2zJMw09NcYhJkuE4RRWn2b2Bjz6Kq4hw/s16000/icon-park-cafe.png" /></a></div><br /><p>Jakub Steiner also drew up some brand new icons for, among other things cafes (shown above), pubs, bars, cities, and towns.</p><p>These icons are also proper symbolic icons, meaning they adapt to the dark (night mode) theme also:</p><div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfcuO1XHsF4A0_rrBqlHhzc6iV_JusX68f_vzdik1V5DK4pB8MejKKpPgn_r3OZH5FVem7O98ulpfmupAL2fopMAOmzllXIUFw4UZ8G_GVo2PdfE4h3uvIy26V6Lh97gfVdCT1IQ43CA/s518/icons-night.png" imageanchor="1"><img border="0" data-original-height="440" data-original-width="518" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfcuO1XHsF4A0_rrBqlHhzc6iV_JusX68f_vzdik1V5DK4pB8MejKKpPgn_r3OZH5FVem7O98ulpfmupAL2fopMAOmzllXIUFw4UZ8G_GVo2PdfE4h3uvIy26V6Lh97gfVdCT1IQ43CA/s16000/icons-night.png" /></a></div><br /><p>In contrast to the old icons, which didn't look to great against a dark background:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDimokyP05kPRYetQIJB5eoT8EQL2TEjTTolu23f60HFikWlxXE2CRDn44DTBiis84tlTKWIt6sCnCH1_Zg0VbuymD7iwDmXxJ-zXmOcQlx5cbDIzM7jxUFUkKVZaW9raOSGvuOgPi0Q/s504/icons-night-40.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="433" data-original-width="504" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDimokyP05kPRYetQIJB5eoT8EQL2TEjTTolu23f60HFikWlxXE2CRDn44DTBiis84tlTKWIt6sCnCH1_Zg0VbuymD7iwDmXxJ-zXmOcQlx5cbDIzM7jxUFUkKVZaW9raOSGvuOgPi0Q/s16000/icons-night-40.png" /></a></div><br /><p>Furthermore, bus stops, train stations, and similar will now use the same icons as where already used to render journey plans, so this looks more consistent</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgct7b7fJXXHNWC-8vzIJ0MQyh_fut0Q6Ol5AiV_6gTMHyFxG7i76lESEJD3kMuCZvoSG16JG9vHzhq_B7XXy8bKU_MrDs6v6WNn6AmoNRo6dournd6uPrY6MnKS81_WTUlrOMCkYOEqQ/s1834/icon-train2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1321" data-original-width="1834" height="461" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgct7b7fJXXHNWC-8vzIJ0MQyh_fut0Q6Ol5AiV_6gTMHyFxG7i76lESEJD3kMuCZvoSG16JG9vHzhq_B7XXy8bKU_MrDs6v6WNn6AmoNRo6dournd6uPrY6MnKS81_WTUlrOMCkYOEqQ/w640-h461/icon-train2.png" width="640" /></a></div><p></p><p>I also couldn't resist adding a bit a fun as well, so now zoos get this little penguin icon:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0r6z9iVRE1xuonpTF4lECkRu8DfE7hYsOwm34KHxU6yfelC7Z-kvCRvR_LJpDgBtSuA94LVmdxQpml7W9AlDfw04Is14RTM2gTa3Ry7krHZAbVRLk8yb5TNnwta06s_rO73EmbkdqYw/s519/icon-penguin.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="446" data-original-width="519" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0r6z9iVRE1xuonpTF4lECkRu8DfE7hYsOwm34KHxU6yfelC7Z-kvCRvR_LJpDgBtSuA94LVmdxQpml7W9AlDfw04Is14RTM2gTa3Ry7krHZAbVRLk8yb5TNnwta06s_rO73EmbkdqYw/s16000/icon-penguin.png" /></a></div><br /><p><br /></p><p><b>Validating Wikipedia refs when editing OSM POIs</b></p><p>I also added validation for Wikipedia references when editing places. So now it will warn you if the reference does not follow the style language-code:Article title (such as “en:Article title“ for example).</p><p><b> </b><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUZlFxPfrCn_oN9Qq8JUlPWaRdnN1UG6TYTEkwTvoLyhfM-2FwWpg6A_YuJeyQPRvD-q-q_sgWA_4UhG_N3Hc1GHDZr0ORt1UHiX0nycoJdBpfN4vm-k1cwWjPE3d4R61cVCA_jxHvCw/s582/wikipedia-validate.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="582" data-original-width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUZlFxPfrCn_oN9Qq8JUlPWaRdnN1UG6TYTEkwTvoLyhfM-2FwWpg6A_YuJeyQPRvD-q-q_sgWA_4UhG_N3Hc1GHDZr0ORt1UHiX0nycoJdBpfN4vm-k1cwWjPE3d4R61cVCA_jxHvCw/s16000/wikipedia-validate.png" /></a></div><p>The light bubble, as before, will show a hint explaining the format. And still like before you can also paste in a URL from Wikipedia, and it will automagically re-format it, so for exmple it converts https://en.wikipedia.org/wiki/The_article_title → en:The article title.</p><p><b>Improvements to libshumate</b></p><p>And over in libshumate (the new library we're working on to enable migrating to GTK 4.x and away from using Clutter) <span style="font-weight: normal;"><span class="">Georges Basile Stavracas Neto and James Westman has been working on a number of improvments. So that now smooth scrolling works (meaning that when you let go of the mouse or touch pad gesture while in motion the map view continues moving a bit with inertia) and fractional scaled zooming that will be built upon later on when adding support for smooth animated zoom and pinch gestures for touch screens.</span></span></p><p><span style="font-weight: normal;"><span class=""><br /></span></span></p><p><span style="font-weight: normal;"><span class="">And that's that until next time!<br /></span></span></p><p><b> </b></p>Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com2tag:blogger.com,1999:blog-5620128670216603593.post-59947376879630145522021-03-15T22:38:00.001+01:002021-03-15T22:38:34.495+01:00Maps and GNOME 40<p> As we have just pushed out the release-candidate before the GNOME 40 release next week I thought it would be appropriate with a little summary of the news for 40.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivpUj4ZFuxLDA-lAm3BRaqhqWH92SPD7fzPORoqvvlSgbyCg8Bl7JLTLbZ2UMstNc4gkPVNKh5wrsEwoQYQOnSXqetq1GxDqCOh5SoKYflTs_NMTe5Z_VwqH3l_WE-_Kc_fw1VIxMA6A/s471/40.0-about.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="459" data-original-width="471" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivpUj4ZFuxLDA-lAm3BRaqhqWH92SPD7fzPORoqvvlSgbyCg8Bl7JLTLbZ2UMstNc4gkPVNKh5wrsEwoQYQOnSXqetq1GxDqCOh5SoKYflTs_NMTe5Z_VwqH3l_WE-_Kc_fw1VIxMA6A/s16000/40.0-about.png" /></a></div><p>The first big visual update this cycle has been the new updated “place bubbles” redesign by James Westman:</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFSk3q1AEJBFCdVR0lY9mL6c7_FVlLodvsTvOpVVCmTztCVJfamoB9_r3moi9EVaLOmUxVReuo_R-0IMD36-g8dVn7U5qLglQIeRGIEAdKwc8Oz_KTwCZpufQcEO2-34X00sV-OB7NoA/s1778/Place+bubble.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1153" data-original-width="1778" height="416" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFSk3q1AEJBFCdVR0lY9mL6c7_FVlLodvsTvOpVVCmTztCVJfamoB9_r3moi9EVaLOmUxVReuo_R-0IMD36-g8dVn7U5qLglQIeRGIEAdKwc8Oz_KTwCZpufQcEO2-34X00sV-OB7NoA/w640-h416/Place+bubble.png" width="640" /></a></div><br /> This has already been covered in earlier postings, but still earns mentioning when summing up.<p></p><p>I also made some tuning to the way we present the information for places. The title will now show the place' name in the user's language, when that is available in the OpenStreetMap data. Also it will show the place' native name, as locally written, when they differ:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCSBbWJ9IHWe1yEX6euSNN9VRRbyLQnLMeVt8l_pLxqwfQO5Y7k5eHdOe0hcMmD4_nfLPHZuhrfRqEu_Py8Q3eu22jVhEQKAqjiAKAvTGgHGb-VaQP0M8I6KoFLu-tR_KRRmPVUiVJVw/s1778/Place+bubble+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1153" data-original-width="1778" height="416" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCSBbWJ9IHWe1yEX6euSNN9VRRbyLQnLMeVt8l_pLxqwfQO5Y7k5eHdOe0hcMmD4_nfLPHZuhrfRqEu_Py8Q3eu22jVhEQKAqjiAKAvTGgHGb-VaQP0M8I6KoFLu-tR_KRRmPVUiVJVw/w640-h416/Place+bubble+2.png" width="640" /></a></div><br /><p>The other big update has been further improvements of the interface' adaptiveness for mobile (narrower) displays, also by James. When selecting a place marker from a search result when in mobile mode, instead of showing the popover style we use for desktop, a ”place bar” at the bottom now appears:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsPs__BpaBmuaG8izXV7-YNfXcR9sWXyniVCTF_R-mgdw2A3v2YOANHQFT_agmfOBbyZpbnVdy3OgyvUML8Qkl5lBwo7jkDH6McmXX9-Ecg3XtQjjFirR7SIDXF8JondcMA-XdF__fYQ/s1153/Place+bar.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1153" data-original-width="600" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsPs__BpaBmuaG8izXV7-YNfXcR9sWXyniVCTF_R-mgdw2A3v2YOANHQFT_agmfOBbyZpbnVdy3OgyvUML8Qkl5lBwo7jkDH6McmXX9-Ecg3XtQjjFirR7SIDXF8JondcMA-XdF__fYQ/w333-h640/Place+bar.png" width="333" /></a></div><p>And when clicking/tapping on this bar, a dialog (which will fill the entire space on smaller displays) appears:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcGAlzKBCcpWn8535qeA3DVsfMnLzEr5-KNy0ZyrHFV4C5XzkUP45pONoYX-VtsMFflF9U7KPtXZjYzqfKSPR9ShEALZfy7g6IPdqlCCDV6HS-gtno_DTM3TACSr7JqcND-shFOiCGyQ/s1120/place+dialog+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1120" data-original-width="499" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcGAlzKBCcpWn8535qeA3DVsfMnLzEr5-KNy0ZyrHFV4C5XzkUP45pONoYX-VtsMFflF9U7KPtXZjYzqfKSPR9ShEALZfy7g6IPdqlCCDV6HS-gtno_DTM3TACSr7JqcND-shFOiCGyQ/w286-h640/place+dialog+2.png" width="286" /></a></div><p>Though not yet used by Maps, there's also been a lot of progress made on the new map rendering library libshumate, based on GTK 4 that is set to replace libchamplain and which will let us move away from depending on Clutter and thus also allow migrating from GTK 3.</p><p>James Westman and Georges Basile Stavracas Neto. The demos accompanying the library has been consolidated into a single demo application and also gained a Flatpak manifest, which means the demo can be run directly from the GNOME Builder IDE, allowing to “run” the library direcly when making changes. Georges also implemented so called ”kinetic scrolling” (meaning the view has keeps some inertia when you give it a ”push”, which greatly improves the feeling of smoothness as it doesn't stop abruptly, moving one step further towards providing a matched look-and-feel to what we currently have with libchamplain.</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRDs662TmblZcmMdzJxbm7HvFDNwM2jvr1mGCxYi7FjH7p0EJB-vU74yFQYwQv4g-_nklV7ZY-XGow1pp9MCgMz96yab8hcJpbJ3RXSGtSrjmXLIZI2P7bM2blb_ebl9ONbDvx_GNyVQ/s1230/shumate-demo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="889" data-original-width="1230" height="462" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRDs662TmblZcmMdzJxbm7HvFDNwM2jvr1mGCxYi7FjH7p0EJB-vU74yFQYwQv4g-_nklV7ZY-XGow1pp9MCgMz96yab8hcJpbJ3RXSGtSrjmXLIZI2P7bM2blb_ebl9ONbDvx_GNyVQ/w640-h462/shumate-demo.png" width="640" /></a></div><br /> James also implemented a test tile source, which can be showcased using the drop-down menu in the demo app. This test source shows the background tile indexes (the TMS tile coordinates, <a href="https://wiki.openstreetmap.org/wiki/TMS">https://wiki.openstreetmap.org/wiki/TMS</a> ) which can be handy for debugging, as well as serves as an example of writing a custom tile source implementation.<p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6ldVVbwHbEBRZAbOB9VAIreZ7eRHhG5c5_GNPRrxug_TnZkpuwint9eqZI4ybkINSYi_y4ucwdjZ1Atiq4ZmvGe6Kyxjp7jnIRCRBXJmQivlwk_Zmn11m-7uwiLO2UIkV2L6Z-LFGQg/s1395/shumate-demo-test-pattern.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="944" data-original-width="1395" height="434" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6ldVVbwHbEBRZAbOB9VAIreZ7eRHhG5c5_GNPRrxug_TnZkpuwint9eqZI4ybkINSYi_y4ucwdjZ1Atiq4ZmvGe6Kyxjp7jnIRCRBXJmQivlwk_Zmn11m-7uwiLO2UIkV2L6Z-LFGQg/w640-h434/shumate-demo-test-pattern.png" width="640" /></a></div> <p></p><p>And as always, stay tuned for coming updates on the progress towards GNOME 41 and other stuff coming!</p><p>Cheers! <br /></p><p> </p><p> <br /></p>Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com0tag:blogger.com,1999:blog-5620128670216603593.post-62626984124782248732021-02-28T23:12:00.001+01:002021-02-28T23:12:39.081+01:00Excursions: Driving on the wrong side<p>I think it's about time for the next installment in the Excursions series. </p><p>One area I was always interested in this a long time back has been transportation-related infrastructure like roads and rail. And a fact that comes up quite naturally along that is the “sidedness” of traffic in different countries. Today a majority makes use of right-hand traffic, but this has changed over the cause of time. It is sometimes said the prevalence of right-hand traffic in Europe (and the Western world in general) is related to Napoleon and him wanted to keep England “at arms length”. This seems to quite disputed though…</p><p>But rather that going through various countries handedness here. I thought we should look at something more interesting and quirky. Because as it turns out, it's not always the case that the standard is entirely the same within a single country.<br /></p><p>For the first example we could take the United States. Driving on the right, right?</p><p>Well, mostly, but there's an exception as it turns out:</p><p>The territory The US Virgin Islands is actually left-hand traffic.</p><p><a href="https://en.wikipedia.org/wiki/United_States_Virgin_Islands">Wikipedia</a> <br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv_XVeYGoL8Y47GfCQ-ZQjVYPtBB7t8a2OjcNgAkx0dbaa41WARlPBqk47WWtYQRQyBboGj1zshPHKAx-DWex0mdpJJvImIvhQ7TIFl9mIMLtUqV83891ObgMw5bhW5zlU2xubzlAGBg/s1468/US+Virgin+Islands.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1133" data-original-width="1468" height="494" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv_XVeYGoL8Y47GfCQ-ZQjVYPtBB7t8a2OjcNgAkx0dbaa41WARlPBqk47WWtYQRQyBboGj1zshPHKAx-DWex0mdpJJvImIvhQ7TIFl9mIMLtUqV83891ObgMw5bhW5zlU2xubzlAGBg/w640-h494/US+Virgin+Islands.png" width="640" /></a></div><p><a href="https://openstreetmap.org/relation/286898">https://openstreetmap.org/relation/286898</a></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1omdX1KV_DlHqsNGtIK5LulA4M3NAjZmTrq9-nvWtnCnEOJf75ife2tDttoCz05POR-Bee1csa8B9RpeKNu4nRoLGUdkHLBWLJxomtW2szDVgG573bYppysQWzAYfTV-HANgQ3n-Wpg/s1468/Charlotte+Amalie.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1133" data-original-width="1468" height="494" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1omdX1KV_DlHqsNGtIK5LulA4M3NAjZmTrq9-nvWtnCnEOJf75ife2tDttoCz05POR-Bee1csa8B9RpeKNu4nRoLGUdkHLBWLJxomtW2szDVgG573bYppysQWzAYfTV-HANgQ3n-Wpg/w640-h494/Charlotte+Amalie.png" width="640" /></a></div><p>Here we can see a map view of the capital city Charlotte Amalie, and on the follow view we can clearly see LHT on a dual carriageway street: <br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh03u-4iEijbooTo0zbUQj6rETC9nZOyTQTQAUc7bY0ARhOpQx1XI5H16BQ2K-FZs3FPm6YH0gaB3LEHv3YwYfo8LCRNAf1JsLs9OPJ7q5fh997YVAbW0hHCaBSxk00g1BKpq8Cf_rAA/s1468/Virgin+Islands+LHT.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1133" data-original-width="1468" height="494" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh03u-4iEijbooTo0zbUQj6rETC9nZOyTQTQAUc7bY0ARhOpQx1XI5H16BQ2K-FZs3FPm6YH0gaB3LEHv3YwYfo8LCRNAf1JsLs9OPJ7q5fh997YVAbW0hHCaBSxk00g1BKpq8Cf_rAA/w640-h494/Virgin+Islands+LHT.png" width="640" /></a></div><br /><p>And talking about the United Kingdom (LHT, and remember the Napoleon remarks…). Despite being a well-known LHT example, especially in a European context, there's a part of the UK practicing RHT. Namely Gibraltar:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvqfrfclBRUFZbQI-BlZtxkh1i2Z7QqbYLCV7umdPovMKCyJI0rYpJfu6Ke0DHDVQ-zfHtFaslDNKDNWo6D8OqVCfpSNEUJB0X1lJiw1CeJfsfHpUUFZYK9VQNwQy5NMCAzivws7W83Q/s1666/Gibraltar.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1119" data-original-width="1666" height="430" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvqfrfclBRUFZbQI-BlZtxkh1i2Z7QqbYLCV7umdPovMKCyJI0rYpJfu6Ke0DHDVQ-zfHtFaslDNKDNWo6D8OqVCfpSNEUJB0X1lJiw1CeJfsfHpUUFZYK9VQNwQy5NMCAzivws7W83Q/w640-h430/Gibraltar.png" width="640" /></a></div><p>Always sharing land border with Spain this was more practical it seems…</p><p>Another quirky feature in Gibraltar is the level-crossing with the runway on the airport on the main road (connecting with Spain) Winston Churchill Avenue (<a href="https://en.wikipedia.org/wiki/Winston_Churchill_Avenue,_Gibraltar">Wikipedia)</a><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCz_m-sUZGC6qAY5ZivqUg1eKNpUAHow9YKuMs1aiXBpLXXOBHSazoBijGrTNHKBkgfH5WT4QwlJqZAvaw_3rgn-7H77IT28Few7ijpW5akOaUcNmrhkhfsUistE-xFuGpqCl1v4tNhw/s1666/Winston+Churchill+avenue+Gibraltar.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1119" data-original-width="1666" height="430" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCz_m-sUZGC6qAY5ZivqUg1eKNpUAHow9YKuMs1aiXBpLXXOBHSazoBijGrTNHKBkgfH5WT4QwlJqZAvaw_3rgn-7H77IT28Few7ijpW5akOaUcNmrhkhfsUistE-xFuGpqCl1v4tNhw/w640-h430/Winston+Churchill+avenue+Gibraltar.png" width="640" /></a></div><p>It has crossing gates and lights, pretty much like on a railroad crossing… except when it's ringing, a Boeing 737 might zip by…</p><p><br /></p><p>Next we go east to Hong Kong. Under British influence Hong Kong practiced left-hand trafic. And this has been kept also after 1997. Thus on the borders to mainland China contraptions like these can be seen to facilitate switching sides:<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR96R_9OtPd32aaa0Z5O9WEp932P29l3tgdl8iaNsyBgdRYskPuPvjYv2jOpnQ9VOwtFR00JdMQwUC7WXlKAKouFm_UqVxmlHJPnQGmR7KecTz2h_GH7qIB-U4LK3t8sazkaj-yH_2CQ/s1666/Hong+Kong+LHT-RHT.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1119" data-original-width="1666" height="430" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR96R_9OtPd32aaa0Z5O9WEp932P29l3tgdl8iaNsyBgdRYskPuPvjYv2jOpnQ9VOwtFR00JdMQwUC7WXlKAKouFm_UqVxmlHJPnQGmR7KecTz2h_GH7qIB-U4LK3t8sazkaj-yH_2CQ/w640-h430/Hong+Kong+LHT-RHT.png" width="640" /></a></div><br /><p>And not far from there we have a similar situation in Macao. When Macao was a Portuguese colony from the 16th century until 1999. And while Portugal itself switched from LHT to RHT in 1928, in Macao LHT continued, and it has been retained. A similar “trafic carousel“ as in the Hong Kong case can be seen at the mainland side of the Lótus Bridge (<a href="https://en.wikipedia.org/wiki/L%C3%B3tus_Bridge">Wikipedia).</a><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi21_HPsZ4hDuy6YjACo1J7X9CCmrAT6iqE5-HfT6JN84_OLzqidFCUaSknqaOJeMN3F8guBe_jvt6TbOcHTHgKFCmUSb3QSpe7txV7UIknZKpw-2MxKkNiN5P8n5_iNP3RnKusgX7jLw/s1666/Lotus+bridge.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1119" data-original-width="1666" height="430" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi21_HPsZ4hDuy6YjACo1J7X9CCmrAT6iqE5-HfT6JN84_OLzqidFCUaSknqaOJeMN3F8guBe_jvt6TbOcHTHgKFCmUSb3QSpe7txV7UIknZKpw-2MxKkNiN5P8n5_iNP3RnKusgX7jLw/w640-h430/Lotus+bridge.png" width="640" /></a></div><br /><p>On the more quirky historical case is a road near the lake Björkvattnet (geo:64.608587,13.700729;crs=wgs84;u=0) in Jämtland in Sweden. While Sweden was LHT until 1967, neighboring Norway had been practicing RHT since a long time before. So when a new road was built between Kvelia and Tunnsjø (in Norway), the shortest and most conveniant option was to build the road for a stretch through Sweden. But imposing left-hand trafic on this single and at the time not connected to other roads in Sweden seemed inconvenient. So this road (and residents living there) was just practising RHT. And the only connections where through Norway anyway (the Z822 road leading to Gäddede and connecting to the rest of the Swedish road network was not built until some time after 1967, I think I read some discussions on this and when the roads where built at some forum, but I can't find those again…).<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcmRwITbj-qzCJt3Lv3NXiLGE6-N5w18H04XUTEvs1l2SnlCSQ9knoHcuPW3NEqIg4jYMcSvN2grWrl2h_XSNBXyuSk6O53sIZdadBQcEBNSceky4pgkeMbGX6yvAsKgAVjyKRPnBj9A/s1666/Bj%25C3%25B6rkvattnet.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1119" data-original-width="1666" height="430" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcmRwITbj-qzCJt3Lv3NXiLGE6-N5w18H04XUTEvs1l2SnlCSQ9knoHcuPW3NEqIg4jYMcSvN2grWrl2h_XSNBXyuSk6O53sIZdadBQcEBNSceky4pgkeMbGX6yvAsKgAVjyKRPnBj9A/w640-h430/Bj%25C3%25B6rkvattnet.png" width="640" /></a></div><br /><p>And also speaking of quirks, we also have the Punte Umberto I bridge in Rome <a href="https://openstreetmap.org/relation/5679034">https://openstreetmap.org/relation/5679034</a></p><p><a href="https://en.wikipedia.org/wiki/Ponte_Umberto_I">Wikipedia</a> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4AXwMGkl-5UHo82069q3rC9R3ZkMqZTjFTlK0Ce4yuygt_XSrUTN8foTvmKnQYjixIX0KqUZWXTTpX8DWp_sdffg9-aqc7bQxqxMX8q4bzORTSuwYdFzOn7O3qW6Uf1t017EQ8e59Mw/s1666/Ponte+Umberto+I.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1119" data-original-width="1666" height="430" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4AXwMGkl-5UHo82069q3rC9R3ZkMqZTjFTlK0Ce4yuygt_XSrUTN8foTvmKnQYjixIX0KqUZWXTTpX8DWp_sdffg9-aqc7bQxqxMX8q4bzORTSuwYdFzOn7O3qW6Uf1t017EQ8e59Mw/w640-h430/Ponte+Umberto+I.png" width="640" /></a></div><p>The bridge itself is actually LHT (fortunately, maybe, there's a median fence).</p><p>And while speaking of countries switch sides, it seems historically it's been most common switching from LHT to RHT. But there's case of the opposite as well. After WWII Okinawa was occupied by the United States and RHT was practiced there, but in 1978 (six years after control of the islands was returned to Japan) they switched back to LHT.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgKeDCxZx9wymqWSpcQPYqPVOKY9pm0tKVQ9g2PLM-ug6wchCzCBcyHPemXFVJ7aX-bZw3eSUSs2el8fSLyhg1CxajBuI3ZsJ8ugT2xq7vX90EDs0palYaB8FDv9BRCj-Ype6L9gCpjg/s1666/Okinawa.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1119" data-original-width="1666" height="430" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgKeDCxZx9wymqWSpcQPYqPVOKY9pm0tKVQ9g2PLM-ug6wchCzCBcyHPemXFVJ7aX-bZw3eSUSs2el8fSLyhg1CxajBuI3ZsJ8ugT2xq7vX90EDs0palYaB8FDv9BRCj-Ype6L9gCpjg/w640-h430/Okinawa.png" width="640" /></a></div><p><a href="https://openstreetmap.org/relation/4556086">https://openstreetmap.org/relation/4556086</a> </p><p>Arguably this could be seen more as a case of reverting back to how it was before and getting back to the standards in the rest of the country. But still a bit interesting, I think.</p><p>And there is actually plans for a country as a whole to switch from RHT to LHT. And this is in Rwanda. The motivation would be that neighboring countries are predominantly LHT, so besides benefits of being similar to neighbors, prices of used vehicles with the steering wheel on the right side are generally lower.</p><p> </p><p>Here's a map view from the capital Kigali: <br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX804q3WLBccw_ue6OcadkwF0PLSWNiIxWLXYxBsKDKHMxj9HBN8gSWarHi4z1lnMRPyJ7vLzr_qC_v3A89lY0xmUamDDlEvhO-sgeHVsswHrCGO7unE5XHst-yUu5Rw-lU51aTx0GhQ/s1666/Kigali.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1119" data-original-width="1666" height="430" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX804q3WLBccw_ue6OcadkwF0PLSWNiIxWLXYxBsKDKHMxj9HBN8gSWarHi4z1lnMRPyJ7vLzr_qC_v3A89lY0xmUamDDlEvhO-sgeHVsswHrCGO7unE5XHst-yUu5Rw-lU51aTx0GhQ/w640-h430/Kigali.png" width="640" /></a></div><p><a href="https://openstreetmap.org/node/60485579">https://openstreetmap.org/node/60485579</a></p><p> </p><p>And by the way, if you use GNOME Maps, you can paste the openstreetmap.org URLs and geo: URIs directly into the search bar to go to these places.</p><p> </p><p>So, let's see what we should explore next time! <br /></p><p></p>Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com2tag:blogger.com,1999:blog-5620128670216603593.post-60913033592624686222020-12-22T23:20:00.005+01:002020-12-22T23:20:54.542+01:00Christmas Maps<p> So, it's that time of year again. And even if this year is a lot different than usual in many ways I thought we should still follow the tradition of summing up some of the last updates to GNOME Maps in 2020 (and before the first beta of what will be part of GNOME 40, in the new versioning scheme).</p><p>The biggest change that was landed since the release of 3.38 has been the redesigned ”place bubbles” by James Westman. James has already written an excellent blog post highlighting this. But I still want point this out here as well. The bubbles now feature larger thumbnails with images from Wikipedia when places are tagged with Wikipedia articles in OpenStreetMap (and the article features a title image), utilizing the MediaWiki API. This feature has been present for some time, but with the redesign the thumbnail are larger and has a more balanced and prominent place. Furthermore a short summary of the Wikipedia article is also shown (in the language preferred by the user's locale settings, if the article is translated to that language in Wikipedia). The details are also shown in a nicer list view-style with icons to give visual cues.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiawM7Li1hF2hTV_NAyHxyOH02kegfedxv91yPb03lGgg0MMv3GyHOtIbLLY_bClQRYjufsEPmxSKxH2cpQoFr0XL1nrJhLS0TROY6h5fWGFVkMmsIiZ7tdtBXhRmZZmQ0JReOxrTj1Ag/s847/bubble-redesign.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="847" data-original-width="701" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiawM7Li1hF2hTV_NAyHxyOH02kegfedxv91yPb03lGgg0MMv3GyHOtIbLLY_bClQRYjufsEPmxSKxH2cpQoFr0XL1nrJhLS0TROY6h5fWGFVkMmsIiZ7tdtBXhRmZZmQ0JReOxrTj1Ag/w530-h640/bubble-redesign.png" width="530" /></a></div><p><br /></p><p>And this is not all there is to it either. James has been starting
work on making these adaptive so they can adjust to smaller (narrower)
screen sizes, such as on phones:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFI1TiQzHd_4lgKhCWu87gf7J_ivp_RMmusiA7WoE4r2hLS_8b7XIYpUeHfvsHl64l96NBo-Eamr2td199KIccRoMYLNdj09e81nTR7E60LDqEgb28r_Z6kAzwoLpRURAPsdfn9hNRKQ/s623/place-bubble-adaptive.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="623" data-original-width="327" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFI1TiQzHd_4lgKhCWu87gf7J_ivp_RMmusiA7WoE4r2hLS_8b7XIYpUeHfvsHl64l96NBo-Eamr2td199KIccRoMYLNdj09e81nTR7E60LDqEgb28r_Z6kAzwoLpRURAPsdfn9hNRKQ/s16000/place-bubble-adaptive.png" /></a></div><br />This is something we hope to finish up in time for GNOME 40.<p><br /></p><p>James also implemented better handling for cases where website URLs are malformed in OSM (such as one missing the proptocol, e.g. https:// or http://), skipping showing the link instead of presenting a link which will not work. Along with this the dialog for editing places in OSM will highlight a malformed website field (and the code has provisioning for adding other validators further on, e.g. for phone numbers).</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRpJf1jQDwACg8V7oycpTSvBitO7Gz-PqwWL6a3jjnvgAoDNLsnDJXGzQxmZBgWIYQD85t0cBaoROYCR2jFtAHX8NMpsaVYSu-OE7r0R1rALgvGOF7qyj4N_1zuHnc3eMCxoqMTXyruw/s847/edit_invalid_url.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="819" data-original-width="847" height="618" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRpJf1jQDwACg8V7oycpTSvBitO7Gz-PqwWL6a3jjnvgAoDNLsnDJXGzQxmZBgWIYQD85t0cBaoROYCR2jFtAHX8NMpsaVYSu-OE7r0R1rALgvGOF7qyj4N_1zuHnc3eMCxoqMTXyruw/w640-h618/edit_invalid_url.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix5BVTV0LNMtW8hQRibtwn5eeUx-JpM8YtsLu-7WnVz-s_43bPHvDfcqashOIxLdbzDwGDLrQscI1dx6gIffDNECLvzappbYGrH4BG5WoEsSEYqEaePjffqKUbny-uL-S667iopA8cew/s847/edit_valid_url..png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="819" data-original-width="847" height="618" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix5BVTV0LNMtW8hQRibtwn5eeUx-JpM8YtsLu-7WnVz-s_43bPHvDfcqashOIxLdbzDwGDLrQscI1dx6gIffDNECLvzappbYGrH4BG5WoEsSEYqEaePjffqKUbny-uL-S667iopA8cew/w640-h618/edit_valid_url..png" width="640" /></a></div><br /><p>Another thing that had bothered me a bit lately is how we render opening hours. Before we displayed them in a single line:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWc6VXRz_3qxPlR_lhG0KR7dTtAhMHQBU_6srP-O5G_pswWQX0y30vBsxcdHMHZ3H4-eH9Nu_hpbQjRk5JxZEjhzSCMW28y8IJr451qFKjjU5ozuhVo7Io-vxZgSqx8wGjxua3-0bTIQ/s588/opening_hours_old.png.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="479" data-original-width="588" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWc6VXRz_3qxPlR_lhG0KR7dTtAhMHQBU_6srP-O5G_pswWQX0y30vBsxcdHMHZ3H4-eH9Nu_hpbQjRk5JxZEjhzSCMW28y8IJr451qFKjjU5ozuhVo7Io-vxZgSqx8wGjxua3-0bTIQ/s16000/opening_hours_old.png.png" /></a></div><br /><p>As can be seen here the line wrapping happens in a very awkward place right between a day and it's time interval.</p><p>So I took the opportunity now that we have the list with separators to do some restructuring rendering it a grid to get a cleaner look:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxMtfxr9ICmOZXoO3gLcc8P8L5vs0U9SoCVJNASbh5n3XSQseUC-bCPpWQa6Jt08vrp0KyBpjnLknDRYOmCubFZXHQfoNub2ATxr2ORlefAYRJA1_oiRSvuMEsSsTht8aJvZ08WDNavA/s544/opening_hours_redesign.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="479" data-original-width="544" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxMtfxr9ICmOZXoO3gLcc8P8L5vs0U9SoCVJNASbh5n3XSQseUC-bCPpWQa6Jt08vrp0KyBpjnLknDRYOmCubFZXHQfoNub2ATxr2ORlefAYRJA1_oiRSvuMEsSsTht8aJvZ08WDNavA/s16000/opening_hours_redesign.png" /></a></div><br /><p>I also re-implemented the rendering of times using the localization API from EcmaScript (JS) that we get via GJS. For example this is how it would look in Persian:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj18rRx3Vw0AiNszyTCUDH5V7DmbyWj6SL4onpgQDPWL1EfitzPgmVsZayYFjQuhNFJfRNyGQdn-yXYAhrJ_uuJnITpx4BBDfM6nLN9YZPtaNJMe6PFsCLZASQDEjN5614xSrUcyRnLTw/s540/opening_hours_fa.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="462" data-original-width="540" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj18rRx3Vw0AiNszyTCUDH5V7DmbyWj6SL4onpgQDPWL1EfitzPgmVsZayYFjQuhNFJfRNyGQdn-yXYAhrJ_uuJnITpx4BBDfM6nLN9YZPtaNJMe6PFsCLZASQDEjN5614xSrUcyRnLTw/s16000/opening_hours_fa.png" /></a></div><p>Also since the last time we've had some new contributors. Ravi Shankar improved the detection of invalid URLs and Anubhav Tyagi has improved loading of shape layer files (GeoJSON, GPX, and KML) by replacing synchronous file I/O with asynchronous while loading and also an update to show a dialog asking the user for confirmation when loading files larger than 20 MB since it can takes some time to load (and parse).</p><p>And last, but not least, Maps old-timer Jonas Danielsson contributed a fix to normalize phone numbers in the links shown for phone number when an app is installed that can handle tel: URIs. This allows the Calls app on e.g. the PinePhone to use these links directly from Maps.</p><p>I think that was pretty much it for now!</p><p>And until next time, happy holidays and merry Christmas!<br /></p>Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com3tag:blogger.com,1999:blog-5620128670216603593.post-36019341871931721172020-11-10T22:38:00.002+01:002020-11-10T22:38:51.390+01:00Excursions: The Seven Bridges of Königsberg<p><br />Making a little test with a new kind of blog post format where I explore some interesting fact related to geography and some history and fact around it.</p><p>For this first one I was going to take a look at the mathematical problem involving the bridges of Königsberg (present day Kaliningrad).</p><p>I have an old mathematical chart that I got from my father:</p><p><br /></p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJyJ88VEMmqU77aUr3abNxDMPgwCzvjhr3n4sGX022gell4YFh3iSkfHgbh3icoYZm0eVjoOP35Ji51GhNiZNObUCzpA4RijJUcSR90Td8G_INyEr2UhysheH71ffA_ggR-7I0XlwJGA/s2048/matematikkarta.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1460" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJyJ88VEMmqU77aUr3abNxDMPgwCzvjhr3n4sGX022gell4YFh3iSkfHgbh3icoYZm0eVjoOP35Ji51GhNiZNObUCzpA4RijJUcSR90Td8G_INyEr2UhysheH71ffA_ggR-7I0XlwJGA/w456-h640/matematikkarta.jpg" width="456" /> </a></div><div class="separator" style="clear: both; text-align: center;"> </div><div class="separator" style="clear: both; text-align: left;">I used to study this a lot growing up and I recently was a bit curious as to when it was actually issued. The chart was issued by a company called Original-Odhner (<a href="https://sv.wikipedia.org/wiki/Original-Odhner">https://sv.wikipedia.org/wiki/Original-Odhner</a>, there is no English article in Wikipedia for it…) and doing some more research I found a mention of this chart in an old issue of a technical magazine called “Teknisk Tidskrift” from 1959 (<a href="http://runeberg.org/tektid/1959/0026.html">http://runeberg.org/tektid/1959/0026.html)</a> where the chart is mentioned as being recently published, so that should put it around 1959, or perhaps 1958.</div><div class="separator" style="clear: both; text-align: left;"> </div><div class="separator" style="clear: both; text-align: left;">In any case, up near the top left corner there is a description of this topological problem outlined above:</div><div class="separator" style="clear: both; text-align: left;"> </div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh17oMvv52GRYWF3sRv2hucFwOq3Hl7ZnBQ_s7tFEbeWZBUTvI1URRNqHfF-Z_2J9EU114F6L1-YMO21NaMmvKuPCfhFA4F0hk4_y4sva-IbAdbqCQzbWxIGZevv_C_16AWYQMoabr6TA/s5472/K%25C3%25B6nigsberg.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="5472" data-original-width="3648" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh17oMvv52GRYWF3sRv2hucFwOq3Hl7ZnBQ_s7tFEbeWZBUTvI1URRNqHfF-Z_2J9EU114F6L1-YMO21NaMmvKuPCfhFA4F0hk4_y4sva-IbAdbqCQzbWxIGZevv_C_16AWYQMoabr6TA/w427-h640/K%25C3%25B6nigsberg.JPG" width="427" /></a></div><br /> So, the subject of this post is the problem with the seven bridges of Königsberg in what was back in Leonard Euler's days in the 18th century Prussia (nowadays Kaliningrad, today a Russian enclave surrounded by Lithuania and Poland). In those days the two islands of city was connected by seven bridges and a common passtime of the recidents was to try to come up with a way of performing a walk crossing all the bridges, but only cross each bridge of time (<a href="https://en.wikipedia.org/wiki/Seven_Bridges_of_K%C3%B6nigsberg">https://en.wikipedia.org/wiki/Seven_Bridges_of_K%C3%B6nigsberg)</a></div><div class="separator" style="clear: both; text-align: left;"> </div><div class="separator" style="clear: both; text-align: left;">Euler managed to prove in 1736 that this is a mathematically impossible problem. Part of the solution involved the abstraction of the problem into one of a pure graph. Thus ignoring the choice of paths in areas on land and the islands, between the bridges. Being irrelevant (for the solution of this specific problem). And this is a very important observation. The same principle applies for the algorithms we use today for finding shortest or quickest routes. By treating the way segments as edges in a graph with weights (corresponding to e.g. distance, time required, or other significant parameters ranking preferred characteristics) ignoring things like the actual bends and twists between each intersection where a choice of direction needs to be taken.</div><div class="separator" style="clear: both; text-align: left;"> </div><div class="separator" style="clear: both; text-align: left;">To conclude this, we could take a virtual excursion to present-day Kaliningrad.</div><div class="separator" style="clear: both; text-align: left;"> </div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPJXO78rmcUT3JgmWDZpLHj0lmCTbWIXZjfUh3_naeJoQqtlUF0fyaTw91dWZ1YFD5rLPKWkXfXrkSTdpE6mRIiw-Vr1mZHy3Y-V0ikJG-eAUx_MaawA0G-E7zwGpGw1M1o3W_rq8V0g/s1808/Kaliningrad.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1255" data-original-width="1808" height="445" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPJXO78rmcUT3JgmWDZpLHj0lmCTbWIXZjfUh3_naeJoQqtlUF0fyaTw91dWZ1YFD5rLPKWkXfXrkSTdpE6mRIiw-Vr1mZHy3Y-V0ikJG-eAUx_MaawA0G-E7zwGpGw1M1o3W_rq8V0g/w640-h445/Kaliningrad.png" width="640" /></a></div><br /> The central island that the town center in Euler's days, is now a park (it was devastated during WWII)</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSzhRpSjZ-iIpPBoLAMDBSXgwVLjER9jONzgl8P06RwnJdN8p5GPhw9JUevG6h-hyQEMJiVCR0ZlE3dxnQVvsIbu0xqV9iOJEwVOFgszXCy1rZ9GbkvZJQ2oPSGQcesBOzw-WCn67eEQ/s1808/Kaliningrad+aerial.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1255" data-original-width="1808" height="444" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSzhRpSjZ-iIpPBoLAMDBSXgwVLjER9jONzgl8P06RwnJdN8p5GPhw9JUevG6h-hyQEMJiVCR0ZlE3dxnQVvsIbu0xqV9iOJEwVOFgszXCy1rZ9GbkvZJQ2oPSGQcesBOzw-WCn67eEQ/w640-h444/Kaliningrad+aerial.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: left;">Of the original seven bridges of the old puzzel, five remain in their position today (only two seems to be the original ones from 1736). And incidentally one <i>can </i>actually make an equivalent walk today, using the present day bridges.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimvB1C_jWpy8bRba6jxmthJJUq5FD8zMh8S6zsn5WZFXzpIac7yGIe0Zeh-yvSHB9D7hkYHCiNxX4JlnOAZI6A0Odw6ViZH17G4TCdrccVguG_nqTw5r2p9S7A1obI2nE6gEJlj9bt9A/s1808/Kaliningrad+bridge+walk.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1255" data-original-width="1808" height="444" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimvB1C_jWpy8bRba6jxmthJJUq5FD8zMh8S6zsn5WZFXzpIac7yGIe0Zeh-yvSHB9D7hkYHCiNxX4JlnOAZI6A0Odw6ViZH17G4TCdrccVguG_nqTw5r2p9S7A1obI2nE6gEJlj9bt9A/w640-h444/Kaliningrad+bridge+walk.png" width="640" /></a></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Hope you liked this form of post, and maybe somebody has ideas for other places and stories to explore!</div><p></p>Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com2tag:blogger.com,1999:blog-5620128670216603593.post-32576737675567451162020-10-18T22:39:00.000+02:002020-10-18T22:39:10.705+02:00Maps in GNOME 3.38<p> It's been a while since the last blog post and it's been a while since 3.38.0 was released, and in fact there was already the stable on-schedule 3.38.1 release. On top of that a sneaky asynchronous programming bug showed up that in some circumstances such as high-latency connections, or fast typing can give out-of-sync search results I cut an extra 3.38.1.1 patch release.</p><p>But now to the summary of the 3.38 user-facing changes. I think all of this has been covered in previous posts, but I guess it's always nice with a bit of a summary.</p><p>For one thing, we now have a night mode, utilizing Mapbox' dark tile set:</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg10dyOE0zXyCuDuQaUHSP22J8plLMn29pgSWOymuA_yUXluHKDoPN6npA_LlPHuytPoSvm61sgyo6OTDgMu2pHgsW7_vK2gru9M40sBOHjYHHSdlMdhq172sx98qDuqUw-WcZfxdhOZg/s314/hamburger-night-mode.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="236" data-original-width="314" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg10dyOE0zXyCuDuQaUHSP22J8plLMn29pgSWOymuA_yUXluHKDoPN6npA_LlPHuytPoSvm61sgyo6OTDgMu2pHgsW7_vK2gru9M40sBOHjYHHSdlMdhq172sx98qDuqUw-WcZfxdhOZg/s0/hamburger-night-mode.png" /></a></div><br /><p></p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaxly1M0vemOuXMyD4EApkK6rYyU6Sj6JiE0SNU13vRUNXx5Qbxmhf5wQ2CKRnABKazxHnf29CSgVLnvtoOj5Hs5OduFMZM9_OY90d1-A3gm2PBsvtaK06RQzwJQ_j0rG2XzyW_q5wwg/s1363/night-mode.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1068" data-original-width="1363" height="502" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaxly1M0vemOuXMyD4EApkK6rYyU6Sj6JiE0SNU13vRUNXx5Qbxmhf5wQ2CKRnABKazxHnf29CSgVLnvtoOj5Hs5OduFMZM9_OY90d1-A3gm2PBsvtaK06RQzwJQ_j0rG2XzyW_q5wwg/w640-h502/night-mode.png" width="640" /></a></div><br /><p><br /></p><p>Another feature that had been requested for quite some times was hybrid aerial mode (showing labels for street names, names of places and so on):</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0NBVqOtKgBjreQGv0_ulqaqxOJlZhLoRzr3gdSZKyfuSI7k-RgVfjGRWXWwEsH70eOuNqFjgMnpXDjWu_qAJaP46iQTmOfr0-BEU27BEJtFVnTtGu38nRgceddLnPNIno9ZT5jen4dQ/s1363/hybrid-aerial.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1068" data-original-width="1363" height="502" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0NBVqOtKgBjreQGv0_ulqaqxOJlZhLoRzr3gdSZKyfuSI7k-RgVfjGRWXWwEsH70eOuNqFjgMnpXDjWu_qAJaP46iQTmOfr0-BEU27BEJtFVnTtGu38nRgceddLnPNIno9ZT5jen4dQ/w640-h502/hybrid-aerial.png" width="640" /></a></div><br /><p>And thanks to work by James Westman the first step towards an adaptive UI (for e.g. smaller screen scenarios) has been implemented where a bottom action bar appears “taking over” some of the buttons from the header bar, leaving the search entry and main menu in narrow mode.</p><p>And video of the feature in real life says more than pictures here:</p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/Yd2eb2mGPTI" width="320" youtube-src-id="Yd2eb2mGPTI"></iframe></div><p><br /></p><p>We had also planned to make the routing sidebar adaptive for 3.38, enabling it to take over the view (with a back button, as in other similar phone-enabled UIs) when in narrow mode, by utilizing the adaptive widgets from libhandy. But unfortunately some issues showed up under Wayland with some graphics driver (related to Clutter), so we had to roll back this before the release.</p><p>And stay tuned for updates on upcoming stuff for GNOME 40!<br /></p>Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com0tag:blogger.com,1999:blog-5620128670216603593.post-43200337337877437062020-07-01T23:23:00.002+02:002020-07-01T23:23:56.491+02:00Summer MapsSince it's been a while since the last post, I thought I should share a little update about some going ons with Maps.<br />
<br />
There's now a new night mode, utilizing Mapbox' dark street tile set:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFbqaUf5vf3FqZyURIVvCWoCxOKVdg3gYdMmqzJdZornnESp_O0RrjaSRyvqgVW43gIyiwkW0OftabqaBoFBm0Bz8Z6_5rqgCuc7mlplk7UQ2ZQyH5dyElR3RpSCGz7yUgOsPXxGdEyQ/s1600/hamburger-night-mode.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="236" data-original-width="314" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFbqaUf5vf3FqZyURIVvCWoCxOKVdg3gYdMmqzJdZornnESp_O0RrjaSRyvqgVW43gIyiwkW0OftabqaBoFBm0Bz8Z6_5rqgCuc7mlplk7UQ2ZQyH5dyElR3RpSCGz7yUgOsPXxGdEyQ/s1600/hamburger-night-mode.png" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUhnxX0f4tOIxPQvEnP5Kq2TJgqHBlKB9HhytbTGbnf1t_BBpcJIlYhbMUFKHAI74ltYrrEW0gWX-UqPIlHTzPyCjjSSF8uDVtm0Vw-_BBhLk0TNlki4FgNjYHwD4pAFIw4R1EKPMbxg/s1600/night-mode.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1068" data-original-width="1363" height="501" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUhnxX0f4tOIxPQvEnP5Kq2TJgqHBlKB9HhytbTGbnf1t_BBpcJIlYhbMUFKHAI74ltYrrEW0gWX-UqPIlHTzPyCjjSSF8uDVtm0Vw-_BBhLk0TNlki4FgNjYHwD4pAFIw4R1EKPMbxg/s640/night-mode.png" width="640" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Another thing that has been requested from time to time is showing labels on the satellite mode (“hybrid” aerial). Originally the plan was more along the line of rendering vector tile data on the client-side and have this rendered as a separate layer on top of the regular “vanilla” aerial tile set. But since vector tile support has not materialized yet, another idea has been to take advantage of Mapbox' hybrid raster tiles (”satellite-streets” as they call them). So I decided to implement that, to finally have this feature:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieMXEeklwbMbNTuBdkwo6r0kTWqE7IrEb7KZqa9gx7iFL2oOgS_b7gl8IOyJRGSQNn0Nk_14MNm1hk8-OBLVHkk6ajjqILlwZ8meTF_GE6Nj4M7qOnbSKmP8SGMKmpV8HV2oAc0oP2Ew/s1600/hybrid-aerial.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1068" data-original-width="1363" height="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieMXEeklwbMbNTuBdkwo6r0kTWqE7IrEb7KZqa9gx7iFL2oOgS_b7gl8IOyJRGSQNn0Nk_14MNm1hk8-OBLVHkk6ajjqILlwZ8meTF_GE6Nj4M7qOnbSKmP8SGMKmpV8HV2oAc0oP2Ew/s640/hybrid-aerial.png" width="640" /></a></div>
So, when selecting the aerial view, a checkbox appears allowing to switch on the hybrid mode.<br />
<br />
Another thing I have missed for a while was having some sort of regression testing, e.g. some form of unit tests. I decided to roll a custom quite simplistic solution consisting of a small bit of Meson “code” to dynamically build launch scripts invoking GJS on each of a set of .js files and have the Meson test clause execute them, as can be seen here: <a href="https://gitlab.gnome.org/GNOME/gnome-maps/-/tree/master/tests">https://gitlab.gnome.org/GNOME/gnome-maps/-/tree/master/tests.</a><br />
It currently only have a few test cases, but it's a start, I guess :-)<br />
<br />
Furthermore I took some time to make the rendering of various places where numbers and times are shown to use the locale-depending formatting functionallity in ES (JavaScript) to get rid of some remaining places that still used hard-coded %d-like format strings, resulting in always using western-style digits, as can be seen in the following after this, using a Persian (فارسی) locale:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3aKBaX0NnCizI7HnFDAl_iQHzU5viilZGVUXNrQDxV0gfstg1k2BzVCd3ckIb7sObYVoRZ6lte0e6qtAoz94-PeacgzU0XxxWT5azt8hiYvVIWwpz6X8E6x-_4l3nh-NgVXd3yy6zPA/s1600/route-fa.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1068" data-original-width="1363" height="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3aKBaX0NnCizI7HnFDAl_iQHzU5viilZGVUXNrQDxV0gfstg1k2BzVCd3ckIb7sObYVoRZ6lte0e6qtAoz94-PeacgzU0XxxWT5azt8hiYvVIWwpz6X8E6x-_4l3nh-NgVXd3yy6zPA/s640/route-fa.png" width="640" /></a></div>
<br />
But, maybe we should keep the most most exiting thing til last… a little over a year ago I started a new project (libshumate) with the intention of trying to build a GTK 4 implementation of a libchamplain-like API for rendering map tiles (and markers and such). Lately Corentin Noël (tintou) took up the ball and has managed to get up to a state where it's working enough to actual display stuff (and scroll and zoom around):<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiItM8wNLpzo4c6WLPk9ajaRZBwY1m7MIfa6pzFNuKiMFAwdDq6CWGW6iqtXR1iabyibtLh0GVd_CslwuZOMHcGEbUzlzdGKKaVgkRQCuqDqXRMzopXKnd6Bm0W5OjsxTDv8oiQeBarAw/s1600/shumate-launcher.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="655" data-original-width="820" height="508" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiItM8wNLpzo4c6WLPk9ajaRZBwY1m7MIfa6pzFNuKiMFAwdDq6CWGW6iqtXR1iabyibtLh0GVd_CslwuZOMHcGEbUzlzdGKKaVgkRQCuqDqXRMzopXKnd6Bm0W5OjsxTDv8oiQeBarAw/s640/shumate-launcher.png" width="640" /></a></div>
This is the simple “launcher” demo from within the project, actually displaying a map in a GTK 4 world.<br />
And since everything is GTK widget, you can use the GTK Inspector to look around at the internals for testing/debugging:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipjWSvebrjf0u5MRqDJsdXOO8BDw7vWH1zDaEAAfG1FNisMStNlQmTYxnKaRALxAcPdy9dqM8yAY5SpX2s4KbV_W5zIRLJmJPNPEWDRIyuIFfddMH-cKfHgVGCt_OkFKIzcD7FUhjEHA/s1600/shumate-inspector.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="512" data-original-width="1600" height="204" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipjWSvebrjf0u5MRqDJsdXOO8BDw7vWH1zDaEAAfG1FNisMStNlQmTYxnKaRALxAcPdy9dqM8yAY5SpX2s4KbV_W5zIRLJmJPNPEWDRIyuIFfddMH-cKfHgVGCt_OkFKIzcD7FUhjEHA/s640/shumate-inspector.png" width="640" /></a></div>
<br />
And “everything is a widget”, like the actual tiles, so you can for example toggle off visibility of a single map tile, since it's just a regular GTK widget, like so:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcdDMrYH4oz67dd88hNfPnZF7BO5TrAI3cnU5WowVqHSePbPIM1VbYVuAvXAbGt-hEGv6dY9dacXHYPEfmbwzipTgukf-c1UlCpFnBsHmTQjI9blY2q1u6A6SU64oEWh_yMC7UKYq9-w/s1600/shumate-tile-disable.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="522" data-original-width="1600" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcdDMrYH4oz67dd88hNfPnZF7BO5TrAI3cnU5WowVqHSePbPIM1VbYVuAvXAbGt-hEGv6dY9dacXHYPEfmbwzipTgukf-c1UlCpFnBsHmTQjI9blY2q1u6A6SU64oEWh_yMC7UKYq9-w/s640/shumate-tile-disable.png" width="640" /></a></div>
<br />
I'm very impressed with Corentin's work!<br />
It's very exiting, I think it's at a point where it should probably be possible to do WiP work using in Maps (but for now probably with only barebones rendering of actual map view working).Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com0tag:blogger.com,1999:blog-5620128670216603593.post-62281697345314901672020-03-29T22:15:00.000+02:002020-03-29T22:15:01.759+02:00Maps in GNOME 3.36There's been quite a while since the last blog post. Since then 3.36.0 was released, and also the first update for the stable 3.36 branch, 3.36.1 has been released.<br />
As I've written about before one of the main features in 3.36 is the support for trip planning for public transit using third party services, as shown here from Paris:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRXoFiMQZRmIHAgGVTlru7avMAkU9iz9IGo52zDN7ORBy8_jbntlHMT5bnKqOSUr7f9XXY1bCiQZt_l-4LJdiX9vDn_p0Tx-oCIl8rz8RsfFxZYnUangTdFNmxW159k3upEhQo-sjnbw/s1600/routing-transit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="420" data-original-width="785" height="342" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRXoFiMQZRmIHAgGVTlru7avMAkU9iz9IGo52zDN7ORBy8_jbntlHMT5bnKqOSUr7f9XXY1bCiQZt_l-4LJdiX9vDn_p0Tx-oCIl8rz8RsfFxZYnUangTdFNmxW159k3upEhQo-sjnbw/s640/routing-transit.png" width="640" /></a></div>
<br />
We also support a few other areas for now, such as TriMet in Portland, Sweden (using the Resrobot API), and the Switzerland using the opendata.ch API. A full list is available on a sub page to <a href="https://live.gnome.org/Apps/Maps">https://live.gnome.org/Apps/Maps</a><br />
<br />
Another feature implemented by James Westman is that the current location marker should no longer flicker when you have live-updating (e.g. when you have an actual GPS receiver on your device).<br />
<br />
James has also implemented the first step towards a responsive UI that can scale to phone and narrow tablet portrait displays, this was finished after the UI change freeze before 3.36, so it will have to wait until 3.38<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dxxyK3tWyyiFD7a_ow9IhVi89MZrkVjLlj0d9TUYHGZ9-QbWqx7nOx3CD0aePTWkJQTG9WFXR5XcvGWsa0G9A' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div>
<br />
Oh and another thing, in these times when physical traveling is not an option browsing around in Maps application is another way to explore. And don't forget take advantage of the interlinking with Wikipedia from the OpenStreetMap database (Maps will show a link to a Wikipedia article for a place if available when you press the “Show more“ three-dots icon in a place info bubble). And if it's missing you can always add it yourself.<br />
<br />
Be safe everyone!Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com0tag:blogger.com,1999:blog-5620128670216603593.post-29910072103569864712019-12-23T17:50:00.000+01:002019-12-23T17:50:22.417+01:00Christmas MapsTo stick to the tradition I thought that I should write a little post about what's been going on since the stable 3.34 release in September. The main thing that's come since then for the upcoming 3.36 release is support for getting public transit route/itinerary planning using third-party providers. The basic support for public transit routing, based on OpenTripPlanner has been in place since 2017 with the original plan to find funding/hosting to set up a GNOME-specific instance of OTP fed with a curated set of GTFS feed. But since this plan didn't come to fruition, I repurposed the existing support so that it can fetch a list of known providers with defined geographical regions. First by utilising the existing OpenTripPlanner implementation (but rewritten to be instanciated per third-party provider). Later I have added plugins for the Swedish Resrobot and Swiss opendata.ch online API. These have yet not been activated in the service file (it's using the same service file as for tile and search providers). But this will soon be there, so stay tuned.<br />
<br />
And since it kinda mandatory with a screenshot, here's one showing a case from Paris:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiFpLIylaHvwPS9P5rd6yhwO9Ty_zAWuA4zofL1buIIo83c7xXJrReS23O_WNYlpP5i7SmD2soD4ug2AI0A0K5uT7Ss5ALGynBX0EuimbrgFi1ecJ2mDEKAW85J0dVBQl9k0kT1dUiWw/s1600/paris-transit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="928" data-original-width="1476" height="402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiFpLIylaHvwPS9P5rd6yhwO9Ty_zAWuA4zofL1buIIo83c7xXJrReS23O_WNYlpP5i7SmD2soD4ug2AI0A0K5uT7Ss5ALGynBX0EuimbrgFi1ecJ2mDEKAW85J0dVBQl9k0kT1dUiWw/s640/paris-transit.png" width="640" /></a></div>
<br />
Happy holidays!Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com0tag:blogger.com,1999:blog-5620128670216603593.post-5512400685570901012019-09-02T22:06:00.001+02:002019-09-02T22:06:44.080+02:00Maps and GNOME 3.34Just released Maps 3.33.92, the last beta release before the GNOME 3.34.0 release next week.<br />
<br />
I've already covered other news earlier, such as “search-as-you-type” auto-complete search and the new sharing dialog, allowing opening locations with any application capable of handling geo: URIs. I also implemented support for opening URLs pointing to objects in OpenStreetMap directly in Maps. This can be handy in cases when someone pastes such a URL in a chat for example (and the new sharing dialog allows to copy the same type of URL to the clipboard, or as an e-mail).<br />
<br />
James Westman has also implemented a change in how startup works, so that Maps now will open directly at the location you last viewed, instead of starting from a view of the entire world and then animating to the location. We now also remember the map type as set when closing the app the last time (“normal” or aerial view).<br />
<br />
Another thing (that is also already available in older versions as well) is that we have updated the tile style we use from MapBox.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK4T7BOFHsyVIfwVWrAbuX_wiviX1q-hBY2roGOSYWm_bLN0JGtpmEwDotXeXDN2-Uoc8aNEdF-poWv4WfLTCDhrJZn2fXZiHim8eRq_jhDrVnrJ7qLiWWjA34q0GqD0cE6Is1uKZg_Q/s1600/new_tiles.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="921" data-original-width="1476" height="399" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK4T7BOFHsyVIfwVWrAbuX_wiviX1q-hBY2roGOSYWm_bLN0JGtpmEwDotXeXDN2-Uoc8aNEdF-poWv4WfLTCDhrJZn2fXZiHim8eRq_jhDrVnrJ7qLiWWjA34q0GqD0cE6Is1uKZg_Q/s640/new_tiles.png" width="640" /></a></div>
<br />
I also started working on an idea I've been thinking about for a while, but that will not come in 3.34, so more on that later…<br />
<br />
And one last thing, I also sneaked in a small little hidden feature for 3.34, let's see if anyone finds it… 😎Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com2tag:blogger.com,1999:blog-5620128670216603593.post-63254907014060939662019-06-19T22:17:00.000+02:002019-06-19T22:17:03.140+02:00Midsomer Maps<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
Since it's been kindof a tradition for me to do some blogging around midsomer, I thought we might as well keep with that tradition this year as well… And there's been some nice news in latest beta release of Maps, 3.33.3.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
First James Westman has implemented a new improved “Send to” dialog, as the old one had some problems. The way it interacted with the Clocks and Weather apps was a bit strange, adding the exact place (let's say a shop or a pub) as an entry in e.g. Weather, which is most likely not what the user intended. So the new dialog will offer to add the nearest city (or rather METAR weather station):</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW6dqZXeWyNKtKuNYKx6xy5lYCUn_QLf_u6277SSd3AfkutvHQwGNCWgvezLk-cuuQXqTbLGTt5OqADc2pNJm8legbQ-VE0zjeZn79W2B-GAVXABiqyHYYRnhPn6l65z8uB2wzSnLayQ/s1600/send-to.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="464" data-original-width="448" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW6dqZXeWyNKtKuNYKx6xy5lYCUn_QLf_u6277SSd3AfkutvHQwGNCWgvezLk-cuuQXqTbLGTt5OqADc2pNJm8legbQ-VE0zjeZn79W2B-GAVXABiqyHYYRnhPn6l65z8uB2wzSnLayQ/s1600/send-to.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
It also includes a summary with the name and address of the place, it's raw coordinates, and a link to the corresponding raw object in the OpenStreetMap database as well as buttons to copy this information to the clipboard to be able to paste it elsewhere and also a button to initiate an e-mail message using the default e-mail client with this information, and the title of the place as the subject. Furhermore, along with the entries to add the nearby location to the Weather and Clocks apps, additionally if you have other apps capable of opening geo: URIs, they will appear at the end. In the case above I have JOSM (an OpenStreetMap editor written in Java, allowing nitty-gritty editing of OpenStreetMap data), so selecting that would open an area centered around this location in that app (however I also discovered a couple of bugs in JOSM's geo: handling, so you'll need their latest snapshot release for it to work).</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Along with this, I started tinkering with allowing to enter the OpenStreetMap URL as a search term in Maps, so that you could open such URLs directly, without resorting to a browser. Ideally I would have liked if it was somehow possible to register as some kind of “partial” URL handler for http(s) restricted to certain patterns, but this is not currently possible with the mime support we have. So that would seems like a distant dream for now… Oh, and a somewhat crazy idea might be to attempt grocking some (subset) of Google Maps URLs.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The other big thing is that I completely rewrote the search engine, so now it uses either GraphHopper's API, or the search API of the Photon project. GraphHopper also uses Photon, but using their legacy API layer. The reason I implemented support for both is that GraphHopper was fine with using their service. The good thing is that quite a lot of the JSON parsing could be handle by a common module. And I also made it so that the search provider is auto-configured through the service file, so when/if GraphHopper switches to standard Photon, we can switch, and existing Maps clients will automagically use the new endpoint. Or if we want to change provider, that could also be done seamlessly this way.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
What's more is that this finally gives us “search-as-you-type”, and this is something that calls for a video:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dwglJAWONG7XsCXtrP2xzMCOHGddDzGbBGWkgqhypFp3whrtu6MS4YX-_0CGyONS6RGmE2IRwKs68E1yV0xIQ' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
Thanks to the dynamic service file, it was also possible add attribution information that shows in the ”About“ box:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUzKqhyFSwcn2JUr8HaDEXPl5-O4RRY2pJCpsIQxU6UvlwqcRJyxMkMSAtDn6O94dYBX9xBkvMBAs9ttc8GCHLSGDTLkDzYhbzLyYkS2hYSWhBh8ens84dKh6xVrNOyzzUyoNJJTLU7Q/s1600/about.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="464" data-original-width="448" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUzKqhyFSwcn2JUr8HaDEXPl5-O4RRY2pJCpsIQxU6UvlwqcRJyxMkMSAtDn6O94dYBX9xBkvMBAs9ttc8GCHLSGDTLkDzYhbzLyYkS2hYSWhBh8ens84dKh6xVrNOyzzUyoNJJTLU7Q/s1600/about.png" /></a></div>
<br />
This is a pretty nice thing to do, I think.<br />
<br />
And there was also time to fix a 4-odd year old bug, namely that in turn-by-turn routing our icons for roundabout navigation where always showing counter-clockwise variants. This has now been rectified to use clockwise variants for locations in drive-on-the-left countries/territories:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8PoivgXaaPQ0_FsFQUjeTtkuVS4X_P4uq7L40z_SG3b5TvW7qCHVhfkPdE3Cs9KGuUV83tUZyEGCxQFlFLNMStpIwuuglyCtOwMuSHb6he4TVV9AGGb06Ms8t3719L5dpkx5Pl9OnjA/s1600/roundabouts.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="660" data-original-width="354" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8PoivgXaaPQ0_FsFQUjeTtkuVS4X_P4uq7L40z_SG3b5TvW7qCHVhfkPdE3Cs9KGuUV83tUZyEGCxQFlFLNMStpIwuuglyCtOwMuSHb6he4TVV9AGGb06Ms8t3719L5dpkx5Pl9OnjA/s1600/roundabouts.png" /></a></div>
<br />
This might come in handy for this guy:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/zu4oQBdkPr0/0.jpg" src="https://www.youtube.com/embed/zu4oQBdkPr0?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<br />
Not only those things, I also got around to fix an old, actually crashing bug when a user has more than some 250 contacts with addresses associated in their Evolution address book (such as when coupling with an enterprize Exchange server.<br />
<br />
That's it for now, I guess… :-)Marcus Lundbladhttp://www.blogger.com/profile/02923955229568787222noreply@blogger.com3