mirror of
https://github.com/gpxstudio/gpx.studio.git
synced 2025-09-02 16:52:31 +00:00
progress
This commit is contained in:
29
website/src/lib/components/gpx-layer/GPXMapLayers.svelte
Normal file
29
website/src/lib/components/gpx-layer/GPXMapLayers.svelte
Normal file
@@ -0,0 +1,29 @@
|
||||
<script lang="ts">
|
||||
import { map, files, selectedFiles, getFileStore } from '$lib/stores';
|
||||
import type { GPXFile } from 'gpx';
|
||||
import { GPXMapLayer } from './GPXMapLayers';
|
||||
import { get, type Writable } from 'svelte/store';
|
||||
|
||||
let gpxLayers: Map<Writable<GPXFile>, GPXMapLayer> = new Map();
|
||||
|
||||
$: if ($map) {
|
||||
gpxLayers.forEach((layer, file) => {
|
||||
if (!get(files).includes(file)) {
|
||||
layer.remove();
|
||||
gpxLayers.delete(file);
|
||||
}
|
||||
});
|
||||
$files.forEach((file) => {
|
||||
if (!gpxLayers.has(file)) {
|
||||
gpxLayers.set(file, new GPXMapLayer(get(map), file));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$: $selectedFiles.forEach((file) => {
|
||||
let fileStore = getFileStore(file);
|
||||
if (gpxLayers.has(fileStore)) {
|
||||
gpxLayers.get(fileStore)?.moveToFront();
|
||||
}
|
||||
});
|
||||
</script>
|
Reference in New Issue
Block a user