mirror of
https://github.com/Flomp/wanderer.git
synced 2026-01-07 13:40:27 -06:00
correct elevation for summit logs
This commit is contained in:
@@ -90,9 +90,13 @@
|
||||
return;
|
||||
}
|
||||
const gpxObject = GPX.parse(trailData);
|
||||
|
||||
const totals = gpxObject.features;
|
||||
try {
|
||||
await gpxObject.correctElevation();
|
||||
} catch (e) {
|
||||
console.warn("Unable to correct elevation: " + e);
|
||||
}
|
||||
|
||||
const totals = gpxObject.features;
|
||||
$data.duration = totals.duration / 1000;
|
||||
$data.elevation_gain = totals.elevationGain;
|
||||
$data.elevation_loss = totals.elevationLoss;
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
};
|
||||
}
|
||||
|
||||
trail = gpx2trail(log.expand.gpx_data!).trail;
|
||||
trail = (await gpx2trail(log.expand.gpx_data!)).trail;
|
||||
trail.id = log.id;
|
||||
trail.expand!.gpx_data = log.expand.gpx_data;
|
||||
|
||||
|
||||
@@ -10,9 +10,7 @@ import geohash from "ngeohash"
|
||||
import { encodePolyline } from '$lib/util/polyline_util';
|
||||
import { APIError } from '$lib/util/api_util';
|
||||
import type { ValhallaHeightResponse } from '../valhalla';
|
||||
import { bbox, splitMultiLineStringToLineStrings } from '$lib/util/geojson_util';
|
||||
import { browser } from '$app/environment';
|
||||
import xmldom from 'xmldom';
|
||||
import { bbox } from '$lib/util/geojson_util';
|
||||
|
||||
const defaultAttributes = {
|
||||
version: '1.1',
|
||||
|
||||
@@ -18,18 +18,21 @@ import { handleFromRecordWithIRI } from "./activitypub_util";
|
||||
import { Waypoint } from "$lib/models/waypoint";
|
||||
|
||||
|
||||
export function gpx2trail(gpxString: string, fallbackName?: string, f: (url: RequestInfo | URL, config?: RequestInit) => Promise<Response> = fetch) {
|
||||
export async function gpx2trail(gpxString: string, fallbackName?: string, correctElevation: boolean = false, f: (url: RequestInfo | URL, config?: RequestInit) => Promise<Response> = fetch) {
|
||||
|
||||
const gpx = GPX.parse(gpxString);
|
||||
|
||||
if (gpx instanceof Error) {
|
||||
throw gpx;
|
||||
}
|
||||
// try {
|
||||
// await gpx.correctElevation(f)
|
||||
// } catch(e) {
|
||||
// console.warn("Unable to correct elevation: " + e)
|
||||
// }
|
||||
if (correctElevation) {
|
||||
try {
|
||||
await gpx.correctElevation(f)
|
||||
} catch (e) {
|
||||
console.warn("Unable to correct elevation: " + e)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const trail = new Trail("");
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ export async function PUT(event: RequestEvent) {
|
||||
}
|
||||
let parseResult: { trail: Trail, gpx: GPX };
|
||||
try {
|
||||
parseResult = gpx2trail(gpxData, data.get("name") as string | undefined, event.fetch);
|
||||
parseResult = await gpx2trail(gpxData, data.get("name") as string | undefined, true, event.fetch);
|
||||
} catch (e: any) {
|
||||
console.error(e)
|
||||
throw new ClientResponseError({ status: 400, response: { message: "Invalid file" } })
|
||||
|
||||
@@ -319,7 +319,7 @@
|
||||
|
||||
try {
|
||||
const prevId = $formData.id;
|
||||
const parseResult = gpx2trail(gpxData, selectedFile.name);
|
||||
const parseResult = await gpx2trail(gpxData, selectedFile.name);
|
||||
setFields(parseResult.trail);
|
||||
$formData.id = prevId ?? cryptoRandomString({ length: 15 });
|
||||
$formData.expand!.gpx_data = gpxData;
|
||||
|
||||
Reference in New Issue
Block a user