Opened 7 years ago

Closed 5 years ago

Last modified 5 years ago

#1082 closed enhancement/feature request (fixed)

Announcement of destination and highway exit info

Reported by: robotaxi.myopenid.com Owned by: jandegr
Priority: minor Milestone: version 0.5.1
Component: navigation/highfive Version: git master
Severity: normal Keywords: destination, announcement, city, highway, patches
Cc: cp15

Description (last modified by usul)

When following the calculated route Navit lacks one of the most important announcement details when driving on a motorway. On every interchange you can join the motorway into two directions, which is indicated by the respective signpost of a distant big city, that helps the driver to find the correct direction.

The announcement of Navit just tells e.g. "turn right in 500m onto the A2".

Which direction? Watch the route on display and think! Even hope, sometimes...!

Better add the correct signpost of the city: "turn right in 500m onto the A2 to Berlin".

OpenStreetMap? is one of the maps that has made great progress in that category. There is a lot of motorway links already that contain the destination signpost of the motorways. Now it's worth integrating it into the announcement of Navit.

To make long story short I can provide a patch that already has this feature. It scans every announced intersection for existing signposts and takes it for the respective announcement. If the sign of that intersection contains more than one city, Navit selects the one that fits best to the calculated route, namely the one that has the best hit rate along the route. The announcement will be like the example above.

Keep in mind that the map-binfile has to be generated again, because I also adapted the maptool to get the signpost data from OSM.

You can take the patch and test it, I already tested it for about half a year and it works fine. I will never want to run Navit without it again!

However, for this patch I adapted the po.in file for German only, but it is foolproof to adapt the language of your choice.

Have fun!

Attachments (2)

destination_signs.diff (16.6 KB) - added by robotaxi.myopenid.com 7 years ago.
Patch for announcement of destination signposts
1211-1082.diff (4.7 KB) - added by jandegr 5 years ago.
more maptool changes

Download all attachments as: .zip

Change History (18)

Changed 7 years ago by robotaxi.myopenid.com

Patch for announcement of destination signposts

comment:1 Changed 7 years ago by usul

  • Cc cp15 added
  • Component changed from core to tools
  • Description modified (diff)
  • Keywords highway added
  • Milestone set to version 0.5.1
  • Priority changed from major to minor

Needs to be reviewed

comment:2 Changed 6 years ago by usul

  • Keywords patches added
  • Severity set to normal

comment:3 Changed 5 years ago by jandegr

Hi, As discussed on IRC I just posted my maptool diff. Item_def.h is not required for maptool, it crawled into the diff behind my back.

I am still convinced that You are using http://wiki.openstreetmap.org/wiki/Key:destination

as I have been using from the start, instead of

http://wiki.openstreetmap.org/wiki/Relation:destination_sign as you suggest in the opening post of this ticket.

regards, Jan

Last edited 5 years ago by jandegr (previous) (diff)

Changed 5 years ago by jandegr

more maptool changes

comment:4 Changed 5 years ago by jandegr

Hi 1211-1082.diff is replaced with a newer version :

  • rearranged *_def.h
  • now also uses exit_to info. OSM wiki says there are 18.000 exit_to tags in

the USA alone, and I stumbled on a bunch of them in France(OSM) already.

regards, Jan

comment:5 Changed 5 years ago by jandegr

Hi, I am a little short of time right now, so can only do a short progress report today. Exit_to info is working fine and very little changes are needed to the code of original topic of this ticket. Unfortunatly there is discussion going on about a posibble deprecation of exit_to and to make it even more difficult, exit_to is undocumented, so I literally have to stumble upon all kinds of variations of them in the OSM data. So far I found the Dallas High five to be mapped with the regular destination tags. Emeryville is mapped using the exit_to tags but unforunatly also uses the variation exit_to:left and exit_to:right. It is no problem to handle these as well but it will cost quite a bit of CPU to do so or requires some more remodelling of navigation.c

One of the reasons for this post is that using the exit_to subkeys or not using them, requires a change in maptool and I don't want to make changes to maptool every other day. In a short while I might come up with a version navigation.c for testing, but testers are required to build a map with the custom maptool, don't want to force testers to rebuild their maps every other day either.

The High five code underwent only small changes, it already knew the difference between merge onto ... on the left, onto ... on the right and similar exit-left and exit-right, but I can now communicate those subtilities to the user as well.

The above does not yet use the nifty destiantion algorithm from Robotaxi nor the exit_to-subkeys.

regards, Jan

Last edited 5 years ago by jandegr (previous) (diff)

comment:6 Changed 5 years ago by jandegr

And then comes the moment you want the statistics of some of the involved tags:

destination : almost 84.000 pcs. http://taginfo.openstreetmap.org/keys/destination#map There used to be a saying 'all roads lead to Rome' but according to OSM statistics most roads lead to Hannover with a record of 356 destination tags pointing to it.

exit_to : 30.000 pcs. A nice addition to the 84.000 pcs. of destination and seen the little code it takes to use them in Navit this is a must-have, the deprecation talks are already going on for 2 years, and even it there ever might be a dicision to deprecate, the existing ones will be around for a long time.

exit_to subkeys: all variations together 700 to 800 pcs. worldwide, hmmm clear, subject closed. http://taginfo.openstreetmap.org/search?q=exit_to#keys If you look at their distribution on the map it seems a big portion of them are in the CA area.

And another one : destination_sign, the one causing a little confusion for me in the beginning when looking at Robotaxi's algo : a whopping 75 pcs. on the entire globe :) http://taginfo.openstreetmap.org/keys/destination_sign#overview

Last edited 5 years ago by jandegr (previous) (diff)

comment:7 Changed 5 years ago by jandegr

  • Keywords destination added; signpost removed

comment:8 Changed 5 years ago by robotaxi

Hi folks,

i'd like to add some pennies to the statement above. The statistics of destination and of exit_to is correct, however the destination_sign, which hasn't played any role in my patch, btw, is much more populated than stated: http://taginfo.openstreetmap.org/relations/destination_sign destination_sign is a relation and therefore entered over 60000 times!

The link posted in the statement before with 75 entries contains destination_sign used as a tag that seems for me to be a bug in usage.

But nevertheless, the main topic, using the destination tag for announcements is running in my personal Navit code on my phone for about 2 years without any problem, and is for me one of the very, very most important enhancements of Navit!

I would very much like to help you integrating this feature.

Have fun! Robotaxi

comment:9 Changed 5 years ago by mvglasow (2)

@robotaxi: You can find the current code at https://github.com/mvglasow/navit/tree/highfive. jandegr was going to contact you anyway to coordinate collaboration on this project, which is going to fix a couple of long-standing bugs.

comment:10 Changed 5 years ago by jandegr

Hi , To make the new navigation icons appear on the navigation map you can make a new entry for each one in navit.xml in an <itemgra> tag below the other nav_... entries. This works for running it on Linux from within the source as I normally do for testing but for Android something more seems to be needed.

EDIT : fixed for Android as well

Last edited 5 years ago by jandegr (previous) (diff)

comment:11 Changed 5 years ago by jandegr

  • Summary changed from Announcement of city names as a destination on a highway to Announcement of destination and highway exit info

comment:12 Changed 5 years ago by jandegr

Two samples of bad roundabout icons : #1272 and #1175 I posted a hint on a possible fix on #1175

comment:13 Changed 5 years ago by jandegr

The maps from the Navit mapservers are suitable to test the code from github, including the 'destination and exit_to' part as from today (starting with Map Version 141224)

comment:14 Changed 5 years ago by jandegr

  • Component changed from tools to navigation/highfive
  • Owner changed from KaZeR to jandegr

comment:15 Changed 5 years ago by jandegr

A prebuilt android package for preview/testing : https://db.tt/B82d1sah installing it requires to uninstall if already installed and Under “Settings,” select “Application Settings” and then enable “Unknown Sources.” built wit minSdk=7 and targetSdk=21, so on devices without a hardwaremenubutton, the menu is now available through the actionbar. Works with maps from the mapservers version 141224 or younger.

Built using all the Highfive changes as available on github, merged into today's Navit code from SourceForge? (rev. 6010)

Translations for the novelties are not included yet, except for dutch. Hopefully we can start translations on launchpad soon.

Some of the artwork for the new commands is still temporary.

Fixes several bugs

New navigation commands :

  • keep left/right
  • exit left/right
  • merge left/right
  • continue straight
  • left/right turnaround

Announces destination, exit's ref and exit's label of next command. Uses exit_to info as a fallback in case there is no destination info available. Can split with ',' as well to cope with the systematic mistagging of exit_to info in France. In time we may consider to drop the ',' splitting to encourage mappers to comply with OSM rules or maybe even drop the exit_to support completely.

Highly improved selection of the shown icon for roundabouts

New available info for OSD's :

navigation.item[n].name The exit ref and label of the next command, preceeded by the word 'exit' or the street name and name_systematic if the maneuver does not contain any exit info.

navigation.item[n].street_destination The destination at the maneuver

tested on:

Nexus 4 Andoid 5.0.1 Samsung GT-S5310 Android 4.1.2 Asus memopad Android 4.2.2 Acer smth. Android 2.3

EDIT : committed entirely in r6090

Many thanks to all the contributers in this en to the Navit team for making this all possible.

Last edited 5 years ago by jandegr (previous) (diff)

comment:16 Changed 5 years ago by jandegr

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.