Kurviger.de | Application | Blog | Frequently Asked Questions (FAQ) | Legal Notice | Privacy Policy

App: Turn instructions on waypoints

Because it happened to me on the last tour: Overlooking the deletion of a waypoint when changing the route on the smartphone, then looking more at the arrow than at the map when navigating and therefore driving beyond the waypoint (turn right after x,ykm).

See the simulation - File: DeadEnd-Test.kurviger (1.1 KB) and two screenshots:

Maybe it would be possible in such a case of a 180° turn to output the announcement “please turn” and after passing the waypoint turn the arrow around to make clear that the wrong direction was taken.

That’s a corner case and I prefer to not create artificial instructions from route geometry.
Turn instructions are generated by the routing, then navigation uses them “unchanged”.

Also it’s a shaping point, it does not have instruction. If it was via point, it would have.
I can only improve the via point instructions to contain also the turn guidance in them.


By the Kurviger webrouter a return is effectively shown in the instruction list and is also transported into the exported .kurviger file. But the app indeed does not seem to use this u turn instruction ?
The return instruction is shown in the .kurviger file instruction list as sign: -98.

Instruction -98

By the way.
An instruction list by the used sign number into human readable text instructions is that available ? Or is this secret hidden tech info ?

Sorry, I missed your question because it was in an edit instead of a new post.

Kurviger routing is powered by GraphHopper routing library.

You can check GraphHopper code for information about instruction signs.

Tnks Emux. Perfect. Fits nicely with
Optimal is that a Navigation sign: -98 is generated by the Kurviger router.
Compare u-turn list by Locus sym vs the Kurviger signs.
U turn versions

The U turns Icons by Kurviger app.
Kurviger U-turns

Good to know.
I got a comment about a corrupt Kurviger file that I posted here.
To avoid confusion I have removed it. Yet it was not corrupt.
This was a file generated by the combination Kurviger App_Brouter.
In the kurviger file format, this is marked by the App as being a B_router generated file.
If you import this .kurviger file back into the app, it automatically selects than BRouter.

However, if you import this kurviger file into the website, it will give you an error message.
That is because the website does not support the app_BRouter generated kurviger files.
It would help in this case if the website gives a more precise error message here.


The route service is selected in settings by the user.

Kurviger files are just route containers, they should be compatible.

By PM.

Test: By the APP (online): Set Router: Kurviger online.
Import the attached file.DeadEnd-Test_brouter_Kurviger-fastroads.kurviger (1.2 KB)
Import than find short pop up: “BRouter traject” I think = very smart and logical.
= Ready for start Navigation. (no street names)

Than if you do trigger a recalculation (by placing a single Shaping Point) so the online Kurviger Router is activated such than does recalculate the traject by the selected Kurviger router profile.

The Website refuses this input. (Has no BRouter)
I think the rejection so is very logical but the error msg could be improved.
Anyway Robin should complete this answer.

Importing a Kurviger file does not calculate a new route, so it should not be affected by the route source.

It can be fixed from the app side and will be available in the next version.

Fine tnks, and a chance for the sign: -98 activation in the app ?

What do you mean?
The turn instructions come from the routing.

In the file that comes from the Kurviger router the sign-98 is very correctly generated and attached but the app does not make use of it.

The actual app probably seems to be missing the corresponding U-turn instruction and the Navigation Icon ?

This has been discussed before.

Shaping points do not have voice guidance.
Instead you can set a via point there.

There are no extra instructions on via points, except their name announcement.
I could allow turn instructions too, like mentioned above.

In the next Kurviger file generated by the online Kurviger router it is (internal) in instruction 3 inclusive street.
DeadEnd-Test_Kurviger_router.kurviger (1.1 KB)

All signs must always be included in routing responses, for responses to be valid and complete.

Then whether a sign is used or not, it’s the client’s responsibility to decide.

Via and shaping points work differently, we already have discussed all that.

Please explain what you mean.

App is the client right ? Website display is also a client right ?

App does not display nor use. Website does, see instruction list.

App is one of the clients and follows specific rules for via and shaping points.

Shaping points don’t have voice guidance or else they will be identical to via points.
Via points (now) announce only their name and not their turn instructions.

Website is another client.
@boldtrn can answer for that.

Than why not using than that generated sign:-98 ?
This is not a Shaping Point nor a Via Point it is a Navigation Point.

It’s a turn instruction produced from / on a shaping point, which are not announced.
If you want turn instructions on waypoints you should use via points.
And wait when app can offer turn instructions on via points in the future.

Please check the waypoint types topic where all these have been discussed with the community:

A Navigation point generated (by the router) with a very close nearby Shaping point (by the user) that it is. The Navigation point should be announced the Shaping Point sure not as agreed before.

public static final int UNKNOWN = -99;
public static final int U_TURN_UNKNOWN = -98;
public static final int U_TURN_LEFT = -8;
public static final int KEEP_LEFT = -7;
public static final int LEAVE_ROUNDABOUT = -6; // for future use
public static final int TURN_SHARP_LEFT = -3;
public static final int TURN_LEFT = -2;
public static final int TURN_SLIGHT_LEFT = -1;
public static final int CONTINUE_ON_STREET = 0;
public static final int TURN_SLIGHT_RIGHT = 1;
public static final int TURN_RIGHT = 2;
public static final int TURN_SHARP_RIGHT = 3;
public static final int FINISH = 4;
public static final int REACHED_VIA = 5;
public static final int USE_ROUNDABOUT = 6;
public static final int IGNORE = Integer.MIN_VALUE;
public static final int KEEP_RIGHT = 7;
public static final int U_TURN_RIGHT = 8;
public static final int PT_START_TRIP = 101;
public static final int PT_TRANSFER = 102;
public static final int PT_END_TRIP = 103;