Map Style Improvements

Answered

Comments

35 comments

  • Avatar
    Abhishek Anand

    Hey Toni. 

    Thanks for sharing your suggestion regarding the Karoo map. I will take this to our Software team to see how beneficial it would be for our other fellow Karoo users. 

    Really appreciate you for taking your time and sharing your research with us.

    2
    Comment actions Permalink
  • Avatar
    Oleg Simakoff

    Toni, this is awesome! Thanks for sharing!

    0
    Comment actions Permalink
  • Avatar
    Jeff Smith

    Hi Toni,

    This is great work and I'm trying to understand the details of the file format, and what can be included and where the tags and values are defined.

    I would love to have the Karoo display the UK National Cycle Network routes.  These are shown on Open Cycle Map, Komoot, even the HH Dashboard, but not on the Karoo itself.

    I have attached a screenshot of a nearby section as queried on OCM.  Is there any way to have the Offline_v5.xml file display these cycle routes?

    Thanks, Jeff

    2
    Comment actions Permalink
  • Avatar
    Steve

    It's a +1 from me on this topic.

    Nice work on the render theme, Toni, and a +1 for the UK National Cycle Network Routes, Jeff.

    I can also see these in the Dashboard (indicated by a thin, solid, green line in Cycling map mode and a thick red line in OCM map mode) but not on the Karoo. I'd suggest this is might be a bug with the mapping on the Karoo? Some cycling paths are shown in green on the Karoo, but not the UK National Cycle Network Routes.

    I should like to think that any routes I plan in the Dashboard are accurately represented on the Karoo.

     

    0
    Comment actions Permalink
  • Avatar
    André A.

    the karoo maps only contain selected elements from OSM. the cycling routes are not included (lcn, rcn, icn, ncn) - at least not in the german maps.
    there are a lot of pois and other elements included, which in my opinion are unnecessary for a bike computer (universities, libraries and others). instead, some things are missing, which could be important e.g. for bike packing and long bike trips: fuel stations, shelter etc.

    there is certainly a good reason for this: creating complete maps with all details and pois requires an enormous amount of time and fast modern hardware. besides, such detailed maps are much larger. for example, the karoo map of brandenburg is about 139MB in size. the same map with all details is about 239MB.

    my suggestion would be to offer 2 different map variants: (simple and complete).
    alternatively you can use the maps from openandromaps (they are complete!), but for some reason these maps are automatically replaced by the original maps after some time.

    you should also offer a possibility to load your own mapstyles.

    and a highlight would be if you could configure the display of selected POIs in each style. this is provided with the map styles (keywords "stylemenu", "overlays"...).

    with this feature package, the karoo would have a unique selling point.

    1
    Comment actions Permalink
  • Avatar
    Toni

    André is correct, the Karoo maps do not include the cycling network relations. I have downloaded the Openandromaps file and modified the "offline_v5.xml" stylesheet file by adding a rule like:

    <m e="way" k="network" v="icn|ncn|rcn"> 
      <line stroke="#FF0000" stroke-linecap="round" stroke-width="2"/>
      <pathText k="ref" font-style="bold" font-size="10" fill="#000000" stroke="#ffffff" stroke-width="1.5" />
    </m>

    This results in the following maps:

    This screenshot is created using the vtm-playground app from https://github.com/mapsforge/vtm 

    I use this tool to test the stylesheet changes. 

     

    1
    Comment actions Permalink
  • Avatar
    Toni

    I have uploaded the complete stylesheet to: https://gist.github.com/tonithenhausen/1210fddcd07ddf6a4ec87710d24ea222#file-offline_v5_cyclingnetworks-xml

    1
    Comment actions Permalink
  • Avatar
    Jeff Smith

    This is great - thanks so much.  I have downloaded the OpenAndroMap for the UK, and your stylesheet and it works just fine.  I have made a few small edits to change some colours and it is a great improvement in my mind.  I have been requesting visibility of the UK NCN maps for over two years - this is clearly the right way to go.  After all, it is clearly nonsensical to have a cycle GPS with maps that do not show the national and international bike routes.  

    For reference, the OpenAndroMap is 1.24GB vs. the Karoo standard map being 820MB.

    Thanks once again for this work - I will really appreciate it when (hopefully) I can travel again on Eurovelo routes.

     

    0
    Comment actions Permalink
  • Avatar
    Olivier

    Thanks Toni! the roads and hiking tracks much better after your stylesheet!

     

    0
    Comment actions Permalink
  • Avatar
    André A.

    custom maps only work when the device is set to flight mode.

    the karoo software checks the maps in the background:

    RegionsService: Downloading regions manifest from https://nav-cdn-prod.api-hammerhead.io/v1/manifest.json

    this file contains the md5 checksums and file sizes of the original map files. it then checks whether the checksums of the map files are correct.

    this procedure is ok because it checks whether a map is out of date and needs to be updated.

    example berlin.map:

    md5 checksum of the original file is current 6def2135f7ee2969746291ab7b63ae48
    the checksum of the openandromaps map of berlin is currently 780f363566da3612b8048268b3c5c857

    the karoo software "thinks" that the openandromaps map is an outdated karoo map (because of the wrong checksum) and therefore downloads the "current" map and replaces the better openandromaps map with the original karoo map.

    because i didn't know this at the beginning and have a sim card in karoo, i "lost" 1.5GB of data traffic senselessly within 3 days.

    too bad...

    you can only prevent this unsolicited and in our case unwanted replacement of the map(s) by deactivating all network operations (flight mode). however, uploading activities or synchronising with the HH dashboard will then not work (and much more).

    But there is a simple solution:

    in karoo // settings // offline maps add the following settings/switches:

    1. automatic map update (ON/OFF, default ON (for compatibility reasons)).

    2. download map updates only via wifi (ON/OFF, default OFF (for compatibility reasons))

    these settings can be used to prevent enormous data traffic from being generated via the sim card. and these settings can be used by experts to use maps from openandromaps with their own map styles, which are much better and more comprehensive than the karoo maps.

    i'm thinking of selling my karoo2 again because of these problems (automatic activation of wifi even though i disabled it before, unasked replacement of high quality maps with simple maps, and many bugs and inconsistencies in the software and device configuration).

    1
    Comment actions Permalink
  • Avatar
    Jeff Smith

    I now have maps that look just right to me and show the detail that I like.  So far so good.

    However, when I downloaded the OpenAndroMaps I didn’t change the names, and so I had two files for the UK in the offline maps folder, the original Karoo map and the OSM map file.  The Karoo appears to do some kind of merging operation, and this seems to work mostly well.  I do have a couple of missing river sections but I believe this is due to wrong tagging in the source Open Street Maps.  With this apparent merging, it would seem that any Karoo auto-downloads of maps shouldn’t perhaps be a problem - apart from the extra storage space consumed.

    More of a problem showed itself when I downloaded the North France OpenAndroMap.  The map displayed beautifully, but I then noticed that routes in that area of France were marked as ‘Map Unavailable’ and therefore unusable.  I hadn’t downloaded any Karoo offline maps for that route.  I noticed that if I removed the Karoo UK map, UK routes were also marked ‘Map Unavailable’, even though the remaining OSM map itself worked perfectly still.

    So it seems that simply replacing the maps is not straightforward or completely successful, unless the required Karoo maps are also downloaded too, thus doubling the storage required.

    The obvious answer is for Hammerhead to specify an improved set of details that they receive from MapBox.  Especially for basics such as national and local cycle routes.  I wonder what the chances of that happening are?

    0
    Comment actions Permalink
  • Avatar
    Christian

    This workaround is great, but it is a workaround and not a solution!

    Thanks to Toni and Andre for the effort to improve the map style. But I would expect to have a solution from the Hamerhead Team.

    I am realy disapointed with the map on the Headunit. I bought it for routing on a great display with OCM, what I got is a  headunit where the information of the map is reduced by no reason.

    The workaround from Toni and Andre is only temporary until the next map update, so its no permanent solution!

    Let the useres decide if they want the whole map or a reduced version. There is plenty of storage availibel on the headunit.

    In my case I need the map of Austria and every once in a while Slovakia, Slovenia, Czech Republik. So there is still enough storage left.

    Most important are details like national and international cycling path and many of water refuell stations which, thanks to the useres, are availiable as POI in the OCM map.

    On the fly routing to an waterstation for refilling is a great feature i summer time.

    With the map and roting features as implemented now I wont get happy with the unit.

    Please make it free of choice to the user what detail grade the maps have!

     

    Thank you!

    Christian

    5
    Comment actions Permalink
  • Avatar
    František Cimmer

    @Christian I definitely agree. I will receive my unit this week, but details of maps are mandatory. There are plenty of marked hiking routes which are suitable for cycling (MTB, Gravel) here in Czech Republic. In Slovakia, Austria, Germany, Slovenia also. These routes goes thru forrests, countryside. There are also local cycling routes (different marks) on roads overlaying with hiking and international. System of hiking routes in these countries is really huge and sophisticated. All major local internet maps has overlays for for tourist maps which contains it.

    And I definitely want them on my map for planning and orientation (in terrain also), because of quick terrain orientation (marks on trees, roks, pointers on roads and so on).

    3
    Comment actions Permalink
  • Avatar
    Billi

    @Christian: I can just bolster your point of view.

    0
    Comment actions Permalink
  • Avatar
    Jeff Smith

    Could someone from Hammerhead please comment on this, and whether this is in the plans going forward?

    This should require HH changing what the maps it takes from MapBox include (and they should include national and regional bike routes!), and then update the offline_v5.xml file.  This doesn’t seem like a big job, and would be of huge value to many customers - current and future.

    Jeff

    2
    Comment actions Permalink
  • Avatar
    André A.

    jeff 🙃

    you are wrong, the change is not a small thing!

    1. the file /sdcard/offline_v5.xml (map style file) is included in the program code. if you delete it (no problem!), it will be created again the next time you call up the map 😎

    2. this file was probably copied from another source and simplified by hammerhead. this file is more or less wrong, but still works. why it is wrong? the definition of the xml file does not match the attributes and elements. this was not validated correctly in an editor.
    the file contains a mix of vtm-style definitions and mapsforge definitions. however, the program only uses the vtm-style.
    to put it simply: many things in the file do not work.
    this must be fixed FIRST.

    3. you may want to see the bike routes. others may not want to. or maybe only sometimes. how can you solve this?
    by editing the xml file? you can do that.
    but better is the following:
    you can declare a "stylemenu" in the style file (this is an existing feature of this format and the entire application!) and make different components selectable there. in the application itself, this menu must then be displayed, where you can then activate your features individually. this is how it works in many (almost all?) navigators.
    I have created such a file, but neither the menu is displayed nor the definitions (show or don't show) are respected.
    this does not have to be programmed separately, because there are libraries for this, which hammerhead also uses, but you have to familiarise yourself with this topic. remember: karoo is used by many users. if there is suddenly chaos with the map after an update, it is a catastrophe. this must be planned exactly and tested well!

    4. the maps would have to be offered in 2 variants or the complete maps would have to be taken (file size!). this would have to be configured somewhere by the user. this cannot be thought up and implemented in 10 minutes.

    5. the map update routines in karoo must be changed. currently, switching off wifi and activating flight mode does not help, because karoo still downloads the maps in the background without being asked and thus replaces its own maps again.

    6. are there any licences to consider when using free maps in a commercial project?

    there are many other points i can list, but this should be enough for now. i think we have to wait a few more days for an answer. but i think hammerhead thinks it's a great idea and is perhaps already collecting ideas for implementation 😉

    3
    Comment actions Permalink
  • Avatar
    André A.

    maybe it was a mistake to publish this customisation option... the application checks for the existence of the file /sdcard/offline_v5.xml. if this file does not exist, it is generated from the internal source code.

    but this is not necessary at all! so why was this done? answer: because the programmers can make adjustments to the style very quickly this way and don't have to recompile the whole program code over and over again.

    hammerhead can only do 2 things against our "revolt":

    1. stop using the external /sdcard/offline_v5.xml file and use the internal variant in the source code instead. that would be very bad for us as users.

    2. check our suggestions and ideas and create the very best bike computer together 👍🏻

    2
    Comment actions Permalink
  • Avatar
    Steve

    There's clearly a lot of great work going on here in this conversation. It sounds like the maps could be so much better than they are but, for some reason, we the users are not benefitting from them. There may be commercial reasons for this (more likely), or it could be that Hammerhead needs help with some of this stuff (less likely).

    There are lots of aspects of Hammerhead's business that would benefit from being improved. Even just getting hold of a Karoo 2 was a massively frustrating process for a lot of people here and seems to have left a lot of disillusioned customers. The way in which they gather and prioritise product requirements seems a bit random to me and appears to be anything but user-centred. We never hear from any of the Product Team on here. Our messages and requirements just seem to be relayed by the Hammerhead employees who monitor this forum. Nobody ever comes back to us to check and validate requirements and test prototypes with us. In the words of Ralph Speth:

    "If you think good design is expensive, you should look at the cost of bad design".

    That said, I understand it takes lot of effort - from a multi-disciplinary team - to bring a product like this to market. 

    Testing of the new Karoo 2 has clearly been quite limited and not done in a particularly structured fashion. Many of the issues I pointed out in my First Impressions post are now coming to light with complaints about the new mount, bits of plastic breaking off, button tactility, etc... And that was just about the hardware!

    Maybe I should have lowered my expectations for the Karoo 2 before it arrived but I'm underwhelmed right now and am seriously considering just buying a Quad Lock mount for my iPhone X (which has an infinitely better screen, is way faster, runs iOS, has better sound, and gives me a wider choice of mapping options). Why carry two devices when I could just carry one? Sure, the battery will not last as long, but I can charge it on the move using the Quad Lock weatherproof wireless charging head. £400 buys a very nice mount and a lot of quality mapping subscriptions.

    That said, I've never used any other kind of bike computer so I don't have a benchmark with which to compare the Karoo 2.

    Happy Friday, everyone.

    Steve

    0
    Comment actions Permalink
  • Avatar
    André A.

    @steve 🙃

    It sounds like the maps could be so much better than they are but, for some reason, we the users are not benefitting from them. There may be commercial reasons for this (more likely), or it could be that Hammerhead needs help with some of this stuff (less likely).

    oh, you put it very diplomatically. i see it a bit differently from a programmer's point of view. hammerhead definitely needs help in optimising the software and the interaction / integration with the android operating system.
    or simply more time 😉

    as an example: i read here in forum comments with very good and simple suggestions again and again the same reason for rejecting these ideas: battery load. on my device i have a debugger running and see every second (!!) error messages. for example the started camera server of android doesn't find any device. wtf? which camera? the debugging log is floated within seconds with a plethora of system errors and warnings. if you would fix these errors instead of always adding new features, it wouldn't hurt the handling and the battery life. on the contrary!

    back to the topic.

    fortunately, there is no "real programming work" to be done for the display of the maps. there are standard program libraries for this, which are also used in the karoo software. from my own experience, i can say that the styling of the maps is not done in 1 hour. not even in 3 days. of course, you can make all kinds of features visible in the maps and use better maps. but this also requires a bit more computing power. so you have to make compromises here. this is a very lengthy (learning) process with many many attempts and tests.

    and the real problem is that every karoo user has very individual requirements. how can you combine all this? of course you could make a lot more configurable in user settings, so that the device/software is even more flexible. but this increases the complexity of the software and also makes it more error-prone. so i can understand that many ideas are prioritised first before they are realised.

    in summary, however, it can be said that there is still a lot of potential here... 😊

    0
    Comment actions Permalink
  • Avatar
    Ali

    Hi everyone, we are monitoring this thread and interesting to see such engagement. There are no immediate plans to incorporate all the inputs from this post on to the Karoo, but there will gradual improvements as planned - A couple of these style improvements are "on the list" such as bike networks.

    1
    Comment actions Permalink
  • Avatar
    Jeff Smith

    This thread, for me, is very valuable indeed, and I value people’s input greatly.  Since one of my favourite cycling activities is touring, the maps are a key feature of the Karoo.  The input from this thread has allowed me to make a few changes that really do enhance what I see from the maps.  The small effort by me significantly increases the value of the Karoo for me.  So thanks to all!

    I don’t confess to be a current programmer, but what would work for me would be:

    • Availability of two levels of map file - basic or high detail
    • The ability to select visibility of features on the map such as cycles lanes, road names, cycling networks, and then poi details, maybe basic or high.

    In terms of implementation, there would be a map detail selection page in Settings, and perhaps a programmatic generation of the .xml file based on the user settings.  A refinement would be to allow the user to provide a offline_v5_override.xml file to make advanced personalisation possible.  I don’t think that the rendering process would be too severely affected.  

    I write all this based on my outdated knowledge of programming, no knowledge of how rendering really works internally, and with some limited experience of editing the xml file.  

    I do believe the quality of the maps is a key feature of the Karoo with its excellent display, and I would encourage HH to put some targeted work into this area.  

    (Thanks Ali for your comment)

    1
    Comment actions Permalink
  • Avatar
    André A.

    @Ali where is the kudoes button?! i will give you 3 kudoes for your answer. 👍🏻👍🏻👍🏻

    please please fix the errors in the vtm styles file first, before adding new things.

    You can find the definitions for this file here: https://raw.githubusercontent.com/mapsforge/vtm/master/resources/rendertheme.xsd (this is also in the file itself as a reference and validation source 🤣)

    you made a lot of mistakes when converting the style to the vtm standard.

    examples:

    bug: Attribute map-background-outside is not allowed here (element rendertheme)
    fix: definition is not a vtm attribute. delete this

    bug: Attribute stroke-linecap is not allowed here (element style-line)
    fix: use cap instead

    bug: Attribute stroke-dasharray is not allowed here (element style-line)
    fix: use dasharray instead

    bug: Attribute stroke-width is not allowed here (element style-line)
    fix: use width instead

    bug: Attribute font-style is not allowed here (element style-text)
    fix: use style instead

    bug: Attribute font-size is not allowed here (element text)
    fix: use size instead

    bug: Attribute fil is not allowed here (element text)
    fix: typo! use fill instead

    bug: Attribute display is not allowed here (element text)
    fix: definition is not a vtm attribute. delete this.

    bug: Attribute priority is not allowed here (element symbol)
    fix: definition is not a vtm attribute. delete this.

    bug: Attribute display is not allowed here (element symbol)
    fix: definition is not a vtm attribute. delete this.

    etc etc etc.

    the file contains more than 100 of these errors ...

    0
    Comment actions Permalink
  • Avatar
    Ali

    Thanks, Andre. I have added all your points on a bug with the software team to investigate. Thank you so much for sharing these. Anything that helps our community to use Karoo is greatly appreciated.

    0
    Comment actions Permalink
  • Avatar
    André A.

    here is a completely different variation of the style for purists and wahoo roam lovers...

          

     

    https://gist.github.com/auerswald/95d4527ef8c741cfbffe5642f3b92d53

    this is a first version. if anyone has suggestions for improvements, i am happy to hear them 🙃

    0
    Comment actions Permalink
  • Avatar
    Jeff Smith

    Hi André,

    Thanks for sharing the file - I have just tried it and it shows the roads very clearly and has a very clean look to it.  For my part, I do prefer to see where the dedicated bike routes are, I prefer not to ride on roads where I can avoid it, and so I would like that sort of detail still.  And I do like to see those coffee shops 😄

    I think what this shows is how versatile the rendering could be and how we all have preferences.  My personal view is that devices that allow a good degree of easy personalisation are the ones that people really like.  There is no way that HH (or whoever) can provide a one size fits all map style and have everyone as happy as they could be.  Imagine if the data field screen layouts were all completely defined and we couldn't decide what data to display in which pages.

    I do hope that Hammerhead put this work on their list with some priority.

    0
    Comment actions Permalink
  • Avatar
    Toni

    Hammerhead uses Mapforge VTM as their maps engine. In the repository https://github.com/mapsforge/vtm I found a sample that renders maps on the web using the  same stylesheet format used by Hammerhead. Thus, it would be possible to build a web app that lets a user customize the stylesheets and immediately displays the resulting map. 

    2
    Comment actions Permalink
  • Avatar
    Christian

    Hallo,

    I am realy happy to see that the discussion on this map theme is taken further!

    Thanks @Ali for taking that theme seriously.

    To be honest, I don`t have any programming skills or knowledge how this "map thing" is working.

    Regerading to the comments and inputs of Andre and Toni this is nothing that can be changed in a few days, which unsurprisingly, can`t be expected.

    But I am happy to read that you are aware, and improvements from time to time are on your list.

    I vote for the proposal from Jeff:

    • Availability of two levels of map file - basic or high detail
    • The ability to select visibility of features on the map such as cycles lanes, road names, cycling networks, and then poi details, maybe basic or high.

    As soon as the snow is gone and temperatures are rising again I am going out to test the offline_v5.xml files postet in this thread.

    @ All, thank you very much for your efforts!

    best regards!

    Christian

     

    0
    Comment actions Permalink
  • Avatar
    Jeff Smith

    That sounds like a tempting idea!

    I would be rather happy with the rendering style which appears on the Dashboard as a starting point.  I think it would make perfect sense for the Karoo and the Dashboard to share the same style, and the level of detail on the Dashboard is about right for me - and it shows national and regional bike routes!

    Perhaps if HH standardised on the Dashboard style and then we had a way of personalising it, we would have a really excellent approach?

    0
    Comment actions Permalink
  • Avatar
    André A.

    @toni I tried to reach you on facebook. How can I contact you?

    0
    Comment actions Permalink
  • Avatar
    Toni

    I cannot see a message or friend request on https://www.facebook.com/toni.thenhausen/ 

    Could you try again?

    0
    Comment actions Permalink

Please sign in to leave a comment.