fix missing turn instructions for Osmand
This commit is contained in:
parent
a11941cfad
commit
4003293580
1 changed files with 22 additions and 2 deletions
|
@ -440,10 +440,25 @@ public final class OsmTrack
|
||||||
|
|
||||||
if ( turnInstructionMode == 3) // osmand style
|
if ( turnInstructionMode == 3) // osmand style
|
||||||
{
|
{
|
||||||
float lastRteTime = voiceHints.list.get(0).getTime();
|
float lastRteTime = 0;
|
||||||
|
|
||||||
sb.append(" <rte>\n");
|
sb.append(" <rte>\n");
|
||||||
|
|
||||||
|
sb.append(" <rtept lat=\"").append( formatILat( nodes.get(0).getILat() ) ).append( "\" lon=\"" )
|
||||||
|
.append( formatILon( nodes.get(0).getILon() ) ).append( "\">\n" )
|
||||||
|
.append ( " <desc>start</desc>\n <extensions>\n");
|
||||||
|
|
||||||
|
float rteTime;
|
||||||
|
rteTime = voiceHints.list.get(0).getTime();
|
||||||
|
|
||||||
|
if ( rteTime != lastRteTime ) // add timing only if available
|
||||||
|
{
|
||||||
|
double t = rteTime - lastRteTime;
|
||||||
|
sb.append( " <time>" ).append( "" + (int)(t+0.5) ).append( "</time>\n" );
|
||||||
|
lastRteTime = rteTime;
|
||||||
|
}
|
||||||
|
sb.append(" <offset>0</offset>\n </extensions>\n </rtept>\n");
|
||||||
|
|
||||||
for( int i = 0 ; i < voiceHints.list.size(); i++ )
|
for( int i = 0 ; i < voiceHints.list.size(); i++ )
|
||||||
{
|
{
|
||||||
VoiceHint hint = voiceHints.list.get(i);
|
VoiceHint hint = voiceHints.list.get(i);
|
||||||
|
@ -451,7 +466,6 @@ public final class OsmTrack
|
||||||
.append( formatILon( hint.ilon ) ).append( "\">\n" )
|
.append( formatILon( hint.ilon ) ).append( "\">\n" )
|
||||||
.append ( " <desc>" ).append( hint.getMessageString() ).append( "</desc>\n <extensions>\n");
|
.append ( " <desc>" ).append( hint.getMessageString() ).append( "</desc>\n <extensions>\n");
|
||||||
|
|
||||||
float rteTime;
|
|
||||||
if (i < voiceHints.list.size() -1) {
|
if (i < voiceHints.list.size() -1) {
|
||||||
rteTime = voiceHints.list.get(i + 1).getTime();
|
rteTime = voiceHints.list.get(i + 1).getTime();
|
||||||
} else {
|
} else {
|
||||||
|
@ -467,6 +481,12 @@ public final class OsmTrack
|
||||||
sb.append(" <turn>" ).append( hint.getCommandString() ).append("</turn>\n <turn-angle>").append( "" + (int)hint.angle )
|
sb.append(" <turn>" ).append( hint.getCommandString() ).append("</turn>\n <turn-angle>").append( "" + (int)hint.angle )
|
||||||
.append("</turn-angle>\n <offset>").append( "" + hint.indexInTrack ).append("</offset>\n </extensions>\n </rtept>\n");
|
.append("</turn-angle>\n <offset>").append( "" + hint.indexInTrack ).append("</offset>\n </extensions>\n </rtept>\n");
|
||||||
}
|
}
|
||||||
|
sb.append(" <rtept lat=\"").append( formatILat( nodes.get(nodes.size()-1).getILat() ) ).append( "\" lon=\"" )
|
||||||
|
.append( formatILon( nodes.get(nodes.size()-1).getILon() ) ).append( "\">\n" )
|
||||||
|
.append ( " <desc>destination</desc>\n <extensions>\n");
|
||||||
|
sb.append( " <time>0</time>\n" );
|
||||||
|
sb.append(" <offset>").append( "" + (nodes.size()-1) ).append("</offset>\n </extensions>\n </rtept>\n");
|
||||||
|
|
||||||
sb.append("</rte>\n");
|
sb.append("</rte>\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue