Fixed GPX parsing for time and elevation data
This commit is contained in:
@@ -21,8 +21,8 @@ export const parseGPXFile = async (file) => {
|
|||||||
const points = segment.trkpt?.map(point => ({
|
const points = segment.trkpt?.map(point => ({
|
||||||
lat: parseFloat(point.$.lat),
|
lat: parseFloat(point.$.lat),
|
||||||
lng: parseFloat(point.$.lon),
|
lng: parseFloat(point.$.lon),
|
||||||
elevation: point.ele ? parseFloat(point.ele[0]) : null,
|
elevation: point.ele ? parseFloat(point.ele) : null,
|
||||||
time: point.time ? point.time[0] : null
|
time: point.time ? point.time : null
|
||||||
})) || []
|
})) || []
|
||||||
return { points }
|
return { points }
|
||||||
}) || []
|
}) || []
|
||||||
@@ -123,7 +123,7 @@ const calculateTrackStats = (track) => {
|
|||||||
segment.points.forEach(point => {
|
segment.points.forEach(point => {
|
||||||
// Track time bounds
|
// Track time bounds
|
||||||
if (point.time) {
|
if (point.time) {
|
||||||
const pointTime = new Date(point.time)
|
const pointTime = point.time instanceof Date ? point.time : new Date(point.time)
|
||||||
if (!startTime || pointTime < startTime) startTime = pointTime
|
if (!startTime || pointTime < startTime) startTime = pointTime
|
||||||
if (!endTime || pointTime > endTime) endTime = pointTime
|
if (!endTime || pointTime > endTime) endTime = pointTime
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user