fixes split gpx function
This commit is contained in:
@@ -178,14 +178,16 @@ export async function splitSegment(index: number, pos: LngLat) {
|
||||
|
||||
if (dist < minDistance) {
|
||||
bestSplitIndex = i
|
||||
minDistance = dist
|
||||
}
|
||||
}
|
||||
|
||||
const firstSegmentPoints = [...points.slice(0, index)];
|
||||
const secondSegmentPoints = [...points.slice(index)];
|
||||
const intersectionPoint = new Waypoint({ $: { lat: pos.lat, lon: pos.lng}, ele: points[bestSplitIndex].ele });
|
||||
const firstSegmentPoints = [...points.slice(0, bestSplitIndex), intersectionPoint];
|
||||
const secondSegmentPoints = [intersectionPoint, ...points.slice(bestSplitIndex)];
|
||||
|
||||
seg.trkpt = firstSegmentPoints;
|
||||
insertIntoRoute(secondSegmentPoints, index)
|
||||
editRoute(index, firstSegmentPoints)
|
||||
insertIntoRoute(secondSegmentPoints, index + 1)
|
||||
}
|
||||
|
||||
export function normalizeRouteTime() {
|
||||
|
||||
@@ -75,7 +75,7 @@ export class LayerManager {
|
||||
|
||||
private async updateOverpassLayer(newState: MapState) {
|
||||
const overpassLayer = this.layers.overpass;
|
||||
if (overpassLayer) {
|
||||
if (overpassLayer && this.map.getSource('overpass')) {
|
||||
const castedOverpassLayer = overpassLayer as OverpassLayer;
|
||||
overpassLayer.filter = await castedOverpassLayer.updateLayerIfNeeded(newState, this.map.getBounds());
|
||||
(this.map.getSource('overpass') as M.GeoJSONSource).setData(castedOverpassLayer.data);
|
||||
|
||||
@@ -429,7 +429,7 @@
|
||||
id: "crop-start-marker",
|
||||
icon: "fa-regular fa-circle",
|
||||
fontSize: "xs",
|
||||
style: "z-10 w-6",
|
||||
style: "w-6",
|
||||
width: 4,
|
||||
backgroundColor: "bg-primary",
|
||||
fontColor: "white",
|
||||
@@ -441,7 +441,7 @@
|
||||
id: "crop-end-marker",
|
||||
icon: "fa fa-flag-checkered",
|
||||
fontSize: "xs",
|
||||
style: "z-10 w-6",
|
||||
style: "w-6",
|
||||
width: 4,
|
||||
backgroundColor: "bg-primary",
|
||||
fontColor: "white",
|
||||
@@ -731,12 +731,16 @@
|
||||
if (!drawingActive) {
|
||||
return;
|
||||
}
|
||||
const position = marker.getLngLat();
|
||||
anchor.lat = position.lat;
|
||||
anchor.lon = position.lng;
|
||||
await recalculateRoute(
|
||||
valhallaStore.anchors.findIndex((a) => a.id == anchor.id),
|
||||
const anchorIndex = valhallaStore.anchors.findIndex(
|
||||
(a) => a.id == anchor.id,
|
||||
);
|
||||
const thisAnchor = valhallaStore.anchors[anchorIndex];
|
||||
const position = marker.getLngLat();
|
||||
thisAnchor.lat = position.lat;
|
||||
thisAnchor.lon = position.lng;
|
||||
|
||||
await recalculateRoute(anchorIndex);
|
||||
|
||||
draggingMarker = false;
|
||||
},
|
||||
);
|
||||
@@ -943,6 +947,7 @@
|
||||
|
||||
splitSegment(data.segment, data.event.lngLat);
|
||||
updateFollowingAnchors(data.segment);
|
||||
updateTrailWithRouteData();
|
||||
}
|
||||
|
||||
function reverseTrail() {
|
||||
|
||||
Reference in New Issue
Block a user