Navigation for imported track

Hrabosh shared this idea 2 years ago
Collecting votes

There is one function that I'm thinking about for a long time.

When I go for a trip (road bike), I grab recorded track from bikemap and I use voice directions generated from the shape of track.

It took me quite a long time to go through crossing straight ahead without any voice and any fear that something is wrong.

BUT there is something really annoying. I'm getting voice navigation in every bent or turn. I't quite OK when you ride on highway, but when riding in serpentines...

My idea: you can detect changes of direction (you generate voice order for a such place). What if you make it via-point for navigation and generate navigation from those via point? You don't have to use all turning points, its very likely, that generated navigation would be the same even with fewer points. You can "validate" navigation track and possibly to add some more via point and re-generate.

The result would be common navigation (orders in straght crossings, no orders in bents without any crossing).

Comments (18)


Good day Hrabosh,

interesting idea if I understand correctly, but how may this be done? You wants to compute navigation ( by MapQuest probably ) between all generated navigation points and then merge it? So shape will be same as original track, but only valid commands will be there. Am I understand correctly?


Good evening

  1. You should not work on Sunday.
  2. You got the initial idea. Shape should be the same, but with more useful commands.

I proposed one more step. I guess that computing navigation between all navigation points would demand too much system resources. I think that you can pick one via point every 5km (or so), compute and then compare if all generated point are on the computed navigation track. I not, you would add some more via points and recalculate (or replace that part with data from the uploaded track).

Here you get just "turn left" on the top of the hill, then you build up a speed, you pass the crossing and the bridge and Locus is mute. Then you go for next 700m (quite a lot on bike) before you get command that confirms the direction. It took me one season to stop double checking in such situations.

On other places you get so many commands that Locus doesn't finish one before it starts another SHUT THE FUCK UP! I do know where to go, there are steep rocks!

Finally, here: you don't get any command (there is no significant bent on the track).


A nice idea indeed.

I already had a test as such, earlier but it seems now I had missed that important step to generate from the .tcx Coursepoints ! Now I produced in a fast test (late evening) a new Nav file file from a simple track source.

And a first testreport ! This first result indeed seems not to be that bad !

The resulting track has only some small trackglitches. (Zoom in along track to see).

Probably because the source track was generated based on google maps materal I supose and all other steps are based on sligthly different OSM map

Further I do miss a part of the start and the end of the track.

The reason for that is that in the produced tcx ( file 2) no start and no stop coursepoints are generated. 2 x Generic (flags) placed on start and stop should solve that problem for the (re)router I suppose.

So in attached zip you find the produced files from all steps. Study help of JavaWaRtwTool as it can go faster by direct reimport (recycle) the midstepresults in the JavaWaRTWtool.

1. A normal (generated) +/- 2 year old gpx track, probably based on google map material from an online generator I think the origin was from www. And later timestamps corresponding to 18kmh where added.

2. By JavaWaRTWtool generate a tcx course with coursepoints generated if trackpointangle >50° . Coursepoints generation is based on the single trackpoint angles, see help JavawaRTwtool.

3. Then by the JavaWaRTWtool from the new tcx course convert the coursepoints to gpx waypoints, by Right click to show the waypoints. Than convert "skip track" and select all waypoints (the old coursepoints) to convert these to Direct route. (gpx)

4. Import direct route gpx in Garmin Mapsource. Used map: "open fietsmap" (nl) a routable Garmin compatible map based on OSM sources).

The direct route show the typical straight lines between the few coursepoints so in mapsource now select recalculate route. then export in the .gdb garmin file format.

5. Open the .gdb file with the Javawa RTWtool convert to .tcx with Coursepoints. Ready for Locus.

6. Converted .tcx file with coursepoints to .gpx file with associated waypoints. To study open this last file with freeware "gpx editor" for example.


For me Locus with offline "compute instructions" set is useless because as Hrabosh says "I'm getting voice navigation in every bent or turn". Known issue. Many many other related discussions in help and forum. So for my time so far with Locus over last year I simply use offline BRouter and manually add navigation instructions with the track editor. Tedious for long cycle daytrip but better than instruction for every minor bend where no actual junction. But Hrabosh check out BRouter - is experimenting with auto generating navigation instructions itself, and so far the results have been excellent, so I am eagerly waiting for the next non-beta BRouter version. It doesn't help with exact suggestion of existing recorded track but maybe still worth learning.


Of coarse Andrew, when creating a new track. And lets hope, by Brouter soon to be able also to create intelligent instructions, even when mobile.

But what Hrabosh is talking about, is to add intelligent instructions to already existing simple track. Create a simple track is no probem, and some online services ( also offer to add simple POI's, but rarely with embedded strict navigation instructions. And if they do, the output system is by .tcx files (Ride with GPS) and without any addition of simple information POI's. ( .tcx !)

Actually the best method to transform existing tracks was to use the "old track" as template and redesign a new track with help of "a" router program. Creating a new design in a few clicks and add the "intelligent" Navinstructions.

Idea launch here: ¨Possible ? Test only by a pc, should be no problem, is only to show if idea is usable, yes or no. Goal: (Re)create the track inclusive new "intelligent" navigation instructions and export in .tcx format.

Or ? Export into *universal gpx track with strict nav instructions, and so keep all normal POI's from the original track(s), as less limited than in .tcx system. Aahumm..*.(= there is actually no such a gpx standard norm ! )

Yes, many steps are necessary in previous late evening test, but if delivering succesfull results, of coarse to be automated, otherwise this brings no time gain against designing a new track (by a router) with only a few clicks (using track template).

The problem I had in my previous tests. I always had big track glitches because there is no function "snap track on mapped roads" . In the end, I had such large trackglitches where many navigation instructions "in and out" of these glitches where placed. Or total useless.

Where it went wrong in previous test ? To long ago to remember where my mistakes where.. And now this suggestion by Hravosh, so a retry. To my surprise in last late evening test, the generated navinstructions are at the correct places and not at trackglitches !

See the difference between tcx file 2 and file 5 !


@Andrew: It seems that you've missed my point. I can download road bike marathon (200km+) from bikemap and I want to get useful command for that track. I don't bother whether I get useful navigation commands online or offline in this topic. I know that there are some geek solutions (and I know how to use it), but Locus is not aiming at geeks. So geek solutions are simply unacceptable :-)

Locus team seems to work a lot on navigation possibilities in these months and they've recently added via-point possibility for navigaton, so my suggestion started to be actual. I'm thinking about that approximately for two years, but without via-points was the idea useless.


I got your point. But in case your suggestion never gets implemented I was just politely trying to offer possible workaround.


Ok, thanks.


Long discussion I would like to stop till you all spend on it too much time.

I think that such solution is impossible to create for a two three main reasons:

  1. Even on a very short part of track, is highly possible that computed track will be on different road. Just a street next to original street, but it results in a problem.
  2. Huge number of commands leads to huge number of requests on routing service = huge time needed to compute whole track from a segments
  3. there is no service that may do it for a hike / bike now, except GraphHopper. MapQuest routing is working nice, but because of overpriced policy it will be dead to our pocket. It's partially now already, but it's still not so bad as it should be with this feature implemented :).

Quite nice solution is see now is using our new system we prepare for offline search of addresses. Theoretically it should be possible to test it, if certain generated command is on any real cross, or at least close to any.

I'll be thinking about it once our system for offline address search will be tuned enough to do some other tasks with it. Hope my arguments are clear. Thanks for understanding.


2. Could you specify what you treat as "huge number"? I suggest to cut the path to 5km splits, so 200km track (I don't expect that many would exceed) would result in 40 splits. Is that "huge number"?

1. This could be partial problem in the cities (with high street density), but not in countryside, where, I suppose, Locus is mainly used. You can suppose, that the author of the track was not fool and rode the track wisely, so it's quite likely that it would be the same. If generated navigation doesn't match with original track, you can either:

1.1. fall back to current solution for that split

1.2. add one via point in the middle and re-generate that split.

3. you have implemented micropayments (LoCoins). Use it. You can give all users some navigation for free (say 20-50 via-points/month, don't know the pricing policy). OR you can use micropayments just for this feature. We're paying for maps, so we can pay for navigation.



more then "one" is huge number for me now :). Anyway I'm not saying it's not possible to do it. I just think that it's enormous amount of work that is impossible to do without perfectly and quickly working offline navigation support.

I'll can leave topic open for now, but without some other changes in Locus (mainly fast offline navi), do not expect it will be realized. I really don't want to use any online service for such task now. Thanks for understanding.


Hi Menion....As I prefer to do some work, more easy with pc, so not urgent (for me).

About routable maps....I do not use fear, I stay here with Locus.

But it seems they use routable maps ? Did you ever have a look at their maps ?

And those produced in the garmin provided by

OSM based free maps and they seems to work (perfect) in Mapsource ?

Remark I did not try over longer distances.

Just curious more, not pushing.



I've looked on both. But OsmAnd is GPL, so using of their system force Locus to release it's source code as GPL as well. Garmin maps .. there is no routable library available for Android devices as I know.


And what if converting a recorded (high density) track (by Locus) ? See the results in zip.

I added one additional step. Open the record in gpx editor. Right click on the track and select edit track points.

Simplify by Point reduction by Douglas Peucker and save file gpx. The new source file to convert to a navigating track. In a few minutes generates a tcx track with the coursepoints.

For your info I added in File 7 = the gpx version with the associated waypoints !

No Locus app support for this associated gpx file, but result is very similar to .tcx !

Have a look at both tracks positions and for more comfort open in "gpx editor" pc program.

Open the waypoint file list.

See the detailled street info in <cmt> and <desc> and <sym> is using the standard Garmin symbols.

From tcx to gpx by JavawaRTWtool. ( A mainly Garmin supporting app !)

Mapsource and routable maps ?

btw Menion I just missed your previous reply ;-).

For those users in search for a nice conversion using pc programs ... ! ! Give it a try.

I hope some good info.


Info: Some more tests. More simple set up ! (Only by pc programs !)

Add intelligent Navigation instructions on a (recorded) track. (more tests/testers pse).

Last year tests with a similar set up did not work. Somewhere I had a mistake ? Because not ok at that time, a one year pause ;-) And now a new retry !

Used method:

Programs: JavaWaRtwTool and Mapsource with routable map.

1. Recorded gpx track.

Open in RTWtool. Export to gpx. Track: export as direct route *Filter (15 pt). Convert and Save file.

2. Direct route gpx file.

Import in Mapsource. On the left pane select the route. Right click and select recalculate route. Save new route as .gdb file ! Important !

3. Route .gdb file.

Import in RTWtool. Export to .tcx and Export as courses set add coursepoints. Convert and Save file.

4. Course file tcx with Coursepoints.

Ready to be used by compatible Android apps as Locus or Track Navigator. And Garmin Edge 705 ? Cannot test, sold that unit.

More Demo:

RTW tool Recycle (or import) previous tcx file to the import screen of RtwTool. (By right click on the import screen convert coursepoints to waypoints.)

Eport to gpx. Track: export as track. Waypoints: export as Waypoints. Convert and Save file.

5. Track file with (associated) Waypoints (= compatible navigation by "Track Navigator" )

Open in freeware program "gpx editor" . Select Waypoints. Select Point list. See the Navigation instructions in the list.

* Filter: total points !

Best: Limit total routepoints to a minimum = minimising track glitches in the final result

In attachment: All example files 1 to 5.


Thx for that! A little more convenient would be nice :-)


Indeed, so one year after.

Mobile solution and operation by planner Locus_B-router.

Display track (= template). Plan "New" design -> save -> use.


Don't know how they do it, but here they do some nice routeplanning: