fix gpx markers

This commit is contained in:
vcoppe
2025-10-24 20:06:54 +02:00
parent 1db9ecafef
commit 9c83dcafa7
3 changed files with 9 additions and 7 deletions

View File

@@ -4,6 +4,7 @@ import { getConvertedDistanceToKilometers } from '$lib/units';
import type { GeoJSONSource } from 'mapbox-gl'; import type { GeoJSONSource } from 'mapbox-gl';
import { get } from 'svelte/store'; import { get } from 'svelte/store';
import { map } from '$lib/components/map/map'; import { map } from '$lib/components/map/map';
import { allHidden } from '$lib/logic/hidden';
const { distanceMarkers, distanceUnits } = settings; const { distanceMarkers, distanceUnits } = settings;
@@ -24,6 +25,7 @@ export class DistanceMarkers {
this.unsubscribes.push(gpxStatistics.subscribe(this.updateBinded)); this.unsubscribes.push(gpxStatistics.subscribe(this.updateBinded));
this.unsubscribes.push(distanceMarkers.subscribe(this.updateBinded)); this.unsubscribes.push(distanceMarkers.subscribe(this.updateBinded));
this.unsubscribes.push(distanceUnits.subscribe(this.updateBinded)); this.unsubscribes.push(distanceUnits.subscribe(this.updateBinded));
this.unsubscribes.push(allHidden.subscribe(this.updateBinded));
this.unsubscribes.push( this.unsubscribes.push(
map.subscribe((map_) => { map.subscribe((map_) => {
if (map_) { if (map_) {
@@ -38,7 +40,7 @@ export class DistanceMarkers {
if (!map_) return; if (!map_) return;
try { try {
if (get(distanceMarkers)) { if (get(distanceMarkers) && !get(allHidden)) {
let distanceSource: GeoJSONSource | undefined = map_.getSource('distance-markers'); let distanceSource: GeoJSONSource | undefined = map_.getSource('distance-markers');
if (distanceSource) { if (distanceSource) {
distanceSource.setData(this.getDistanceMarkersGeoJSON()); distanceSource.setData(this.getDistanceMarkersGeoJSON());

View File

@@ -213,7 +213,7 @@ export class GPXLayer {
'text-halo-color': 'white', 'text-halo-color': 'white',
}, },
}, },
_map.getLayer('distance-markers') ? 'distance-markers' : undefined _map.getLayer('distance-markers-100') ? 'distance-markers-100' : undefined
); );
} }
} else { } else {
@@ -408,10 +408,7 @@ export class GPXLayer {
_map.moveLayer(this.fileId); _map.moveLayer(this.fileId);
} }
if (_map.getLayer(this.fileId + '-direction')) { if (_map.getLayer(this.fileId + '-direction')) {
_map.moveLayer( _map.moveLayer(this.fileId + '-direction');
this.fileId + '-direction',
_map.getLayer('distance-markers') ? 'distance-markers' : undefined
);
} }
} }

View File

@@ -3,6 +3,7 @@ import { gpxStatistics, slicedGPXStatistics } from '$lib/logic/statistics';
import mapboxgl from 'mapbox-gl'; import mapboxgl from 'mapbox-gl';
import { get } from 'svelte/store'; import { get } from 'svelte/store';
import { map } from '$lib/components/map/map'; import { map } from '$lib/components/map/map';
import { allHidden } from '$lib/logic/hidden';
export class StartEndMarkers { export class StartEndMarkers {
start: mapboxgl.Marker; start: mapboxgl.Marker;
@@ -24,6 +25,7 @@ export class StartEndMarkers {
this.unsubscribes.push(gpxStatistics.subscribe(this.updateBinded)); this.unsubscribes.push(gpxStatistics.subscribe(this.updateBinded));
this.unsubscribes.push(slicedGPXStatistics.subscribe(this.updateBinded)); this.unsubscribes.push(slicedGPXStatistics.subscribe(this.updateBinded));
this.unsubscribes.push(currentTool.subscribe(this.updateBinded)); this.unsubscribes.push(currentTool.subscribe(this.updateBinded));
this.unsubscribes.push(allHidden.subscribe(this.updateBinded));
} }
update() { update() {
@@ -32,7 +34,8 @@ export class StartEndMarkers {
const tool = get(currentTool); const tool = get(currentTool);
const statistics = get(slicedGPXStatistics)?.[0] ?? get(gpxStatistics); const statistics = get(slicedGPXStatistics)?.[0] ?? get(gpxStatistics);
if (statistics.local.points.length > 0 && tool !== Tool.ROUTING) { const hidden = get(allHidden);
if (statistics.local.points.length > 0 && tool !== Tool.ROUTING && !hidden) {
this.start.setLngLat(statistics.local.points[0].getCoordinates()).addTo(map_); this.start.setLngLat(statistics.local.points[0].getCoordinates()).addTo(map_);
this.end this.end
.setLngLat( .setLngLat(