adds automatic trail thumbnails

This commit is contained in:
Christian Beutel
2025-03-29 15:02:20 +01:00
parent 1f3aabda37
commit 693302600c

View File

@@ -132,7 +132,7 @@
let routingOptions: RoutingOptions = $state({ let routingOptions: RoutingOptions = $state({
autoRouting: true, autoRouting: true,
modeOfTransport: "pedestrian", modeOfTransport: "pedestrian",
}) });
let savedAtLeastOnce = $state(false); let savedAtLeastOnce = $state(false);
@@ -171,6 +171,18 @@
(p) => !p.startsWith("data:image/svg+xml;base64"), (p) => !p.startsWith("data:image/svg+xml;base64"),
); );
if (!form.photos?.length &&
!photoFiles.length) {
const canvas = document.querySelector(
"#map .maplibregl-canvas",
) as HTMLCanvasElement;
const dataURL = canvas.toDataURL("image/webp", 0.3);
const response = await fetch(dataURL);
const blob = await response.blob();
photoFiles = [new File([blob], "route")];
}
if (form.expand!.gpx_data && overwriteGPX) { if (form.expand!.gpx_data && overwriteGPX) {
gpxFile = new Blob([form.expand!.gpx_data], { gpxFile = new Blob([form.expand!.gpx_data], {
type: "text/xml", type: "text/xml",
@@ -586,7 +598,7 @@
previousAnchor.lon, previousAnchor.lon,
lat, lat,
lon, lon,
routingOptions routingOptions,
); );
insertIntoRoute(routeWaypoints); insertIntoRoute(routeWaypoints);
updateTrailWithRouteData(); updateTrailWithRouteData();
@@ -730,7 +742,7 @@
anchor.lon, anchor.lon,
nextAnchor.lat, nextAnchor.lat,
nextAnchor.lon, nextAnchor.lon,
routingOptions routingOptions,
); );
} }
if (anchorIndex > 0) { if (anchorIndex > 0) {
@@ -740,7 +752,7 @@
previousAnchor.lon, previousAnchor.lon,
anchor.lat, anchor.lat,
anchor.lon, anchor.lon,
routingOptions routingOptions,
); );
} }
@@ -802,14 +814,14 @@
previousAnchor.lon, previousAnchor.lon,
anchor.lat, anchor.lat,
anchor.lon, anchor.lon,
routingOptions routingOptions,
); );
const nextRouteSegment = await calculateRouteBetween( const nextRouteSegment = await calculateRouteBetween(
anchor.lat, anchor.lat,
anchor.lon, anchor.lon,
nextAnchor.lat, nextAnchor.lat,
nextAnchor.lon, nextAnchor.lon,
routingOptions routingOptions,
); );
editRoute(data.segment, previousRouteSegment); editRoute(data.segment, previousRouteSegment);
@@ -1178,8 +1190,7 @@
out:scale={{ easing: backInOut }} out:scale={{ easing: backInOut }}
class="absolute top-0 left-16 z-50" class="absolute top-0 left-16 z-50"
> >
<RoutingOptionsPopup <RoutingOptionsPopup bind:options={routingOptions}
bind:options={routingOptions}
></RoutingOptionsPopup> ></RoutingOptionsPopup>
</div> </div>
{/if} {/if}
@@ -1194,6 +1205,7 @@
bind:map bind:map
onclick={(target) => handleMapClick(target)} onclick={(target) => handleMapClick(target)}
onsegmentdragend={(data) => handleSegmentDragEnd(data)} onsegmentdragend={(data) => handleSegmentDragEnd(data)}
mapOptions={{ preserveDrawingBuffer: true }}
></MapWithElevationMaplibre> ></MapWithElevationMaplibre>
</div> </div>
</div> </div>