Converting tracks without timestamps to routes during import.
This commit is contained in:
parent
fdee3e8fcd
commit
3d2db84235
|
@ -202,6 +202,39 @@ const prune = (
|
||||||
// return extensions;
|
// return extensions;
|
||||||
// };
|
// };
|
||||||
|
|
||||||
|
const hasMissingTimestamps = (trk: Trk) => {
|
||||||
|
for (const trkseg of trk.trkseg!) {
|
||||||
|
for (const trkpt of trkseg.trkpt!) {
|
||||||
|
if (trkpt.time === undefined) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
const convertTrkToRteWhenNeeded = (gpx: Gpx) => {
|
||||||
|
if (gpx.trk === undefined) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const newTrks: Trk[] = [];
|
||||||
|
for (const trk of gpx.trk) {
|
||||||
|
if (hasMissingTimestamps(trk)) {
|
||||||
|
const rte = { ...trk, trkseg: undefined, rtept: [] };
|
||||||
|
for (const trkseg of trk.trkseg!) {
|
||||||
|
rte.rtept = rte.rtept.concat(trkseg.trkpt);
|
||||||
|
}
|
||||||
|
if (gpx.rte === undefined) {
|
||||||
|
gpx.rte = [];
|
||||||
|
}
|
||||||
|
gpx.rte.push(rte);
|
||||||
|
} else {
|
||||||
|
newTrks.push(trk);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
gpx.trk = newTrks;
|
||||||
|
};
|
||||||
|
|
||||||
export const pruneAndSaveImportedGpx = async (params: any) => {
|
export const pruneAndSaveImportedGpx = async (params: any) => {
|
||||||
console.log({ caller: 'pruneAndSaveImportedGpx', params });
|
console.log({ caller: 'pruneAndSaveImportedGpx', params });
|
||||||
const { id, gpx, tech } = params;
|
const { id, gpx, tech } = params;
|
||||||
|
@ -216,6 +249,7 @@ export const pruneAndSaveImportedGpx = async (params: any) => {
|
||||||
extensions: gpx.extensions,
|
extensions: gpx.extensions,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
convertTrkToRteWhenNeeded(gpx);
|
||||||
let previousGpx: Gpx | null = null;
|
let previousGpx: Gpx | null = null;
|
||||||
if (id === 'new') {
|
if (id === 'new') {
|
||||||
const currentDateTime = new Date().toISOString();
|
const currentDateTime = new Date().toISOString();
|
||||||
|
|
Loading…
Reference in New Issue