Format OruxMaps voice hints
This commit is contained in:
parent
8f2261037c
commit
819d0fbf22
3 changed files with 66 additions and 1 deletions
|
|
@ -190,6 +190,26 @@
|
|||
},
|
||||
});
|
||||
|
||||
BR.OruxVoiceHints = BR.WaypointVoiceHints.extend({
|
||||
_getWpt: function (hint, cmd, coord) {
|
||||
const wpt = {
|
||||
ele: coord[2],
|
||||
extensions: {
|
||||
'om:oruxmapsextensions': {
|
||||
'@xmlns:om': 'http://www.oruxmaps.com/oruxmapsextensions/1/0',
|
||||
'om:ext': { '@type': 'ICON', '@subtype': 0, _: cmd.orux },
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
if (wpt.ele === undefined || wpt.ele === null) {
|
||||
delete wpt.ele;
|
||||
}
|
||||
|
||||
return wpt;
|
||||
},
|
||||
});
|
||||
|
||||
BR.LocusVoiceHints = BR.WaypointVoiceHints.extend({
|
||||
_addToTransform: function (transform) {
|
||||
transform.gpx = function (gpx, features) {
|
||||
|
|
@ -219,11 +239,17 @@
|
|||
}
|
||||
extensions['locus:rtePointAction'] = cmd.locus;
|
||||
|
||||
return {
|
||||
const wpt = {
|
||||
ele: coord[2],
|
||||
name: cmd.message,
|
||||
extensions: extensions,
|
||||
};
|
||||
|
||||
if (wpt.ele === undefined || wpt.ele === null) {
|
||||
delete wpt.ele;
|
||||
}
|
||||
|
||||
return wpt;
|
||||
},
|
||||
|
||||
_getTrk: function () {
|
||||
|
|
@ -355,6 +381,8 @@
|
|||
return new BR.CommentVoiceHints(geoJson, turnInstructionMode, transportMode);
|
||||
case 5:
|
||||
return new BR.GpsiesVoiceHints(geoJson, turnInstructionMode, transportMode);
|
||||
case 6:
|
||||
return new BR.OruxVoiceHints(geoJson, turnInstructionMode, transportMode);
|
||||
default:
|
||||
console.error('unhandled turnInstructionMode: ' + turnInstructionMode);
|
||||
return new BR.VoiceHints(geoJson, turnInstructionMode, transportMode);
|
||||
|
|
|
|||
|
|
@ -72,4 +72,11 @@ describe('voice hints', () => {
|
|||
const gpx = BR.Gpx.format(geoJson, 5);
|
||||
expect(gpx).toEqual(brouterGpx);
|
||||
});
|
||||
|
||||
test('6-orux', () => {
|
||||
let brouterGpx = read('6-orux.gpx');
|
||||
brouterGpx = brouterGpx.replace(/<(\/?)om:/g, '<$1'); // TODO namespace
|
||||
const gpx = BR.Gpx.format(geoJson, 6);
|
||||
expect(gpx).toEqual(brouterGpx);
|
||||
});
|
||||
});
|
||||
|
|
|
|||
30
tests/format/data/6-orux.gpx
Normal file
30
tests/format/data/6-orux.gpx
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- track-length = 319 filtered ascend = 2 plain-ascend = -1 cost=533 energy=.0kwh time=44s -->
|
||||
<gpx
|
||||
xmlns="http://www.topografix.com/GPX/1/1"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd"
|
||||
creator="BRouter-1.6.1" version="1.1">
|
||||
<wpt lat="49.488794" lon="8.468340"><ele>101.5</ele><extensions>
|
||||
<om:oruxmapsextensions xmlns:om="http://www.oruxmaps.com/oruxmapsextensions/1/0">
|
||||
<om:ext type="ICON" subtype="0">1001</om:ext>
|
||||
</om:oruxmapsextensions>
|
||||
</extensions>
|
||||
</wpt> <wpt lat="49.488151" lon="8.469971"><ele>103.5</ele><extensions>
|
||||
<om:oruxmapsextensions xmlns:om="http://www.oruxmaps.com/oruxmapsextensions/1/0">
|
||||
<om:ext type="ICON" subtype="0">1000</om:ext>
|
||||
</om:oruxmapsextensions>
|
||||
</extensions>
|
||||
</wpt> <trk>
|
||||
<name>6-orux</name>
|
||||
<trkseg>
|
||||
<trkpt lon="8.467714" lat="49.488115"><ele>101.5</ele></trkpt>
|
||||
<trkpt lon="8.468340" lat="49.488794"><ele>101.5</ele></trkpt>
|
||||
<trkpt lon="8.468586" lat="49.488698"><ele>101.5</ele></trkpt>
|
||||
<trkpt lon="8.468743" lat="49.488636"><ele>101.5</ele></trkpt>
|
||||
<trkpt lon="8.469161" lat="49.488473"><ele>101.75</ele></trkpt>
|
||||
<trkpt lon="8.469971" lat="49.488151"><ele>103.5</ele></trkpt>
|
||||
<trkpt lon="8.470610" lat="49.488842"><ele>99.75</ele></trkpt>
|
||||
</trkseg>
|
||||
</trk>
|
||||
</gpx>
|
||||
Loading…
Add table
Add a link
Reference in a new issue