diff --git a/website/src/lib/assets/layers.ts b/website/src/lib/assets/layers.ts index 597ef0b2..b9371fef 100644 --- a/website/src/lib/assets/layers.ts +++ b/website/src/lib/assets/layers.ts @@ -369,4 +369,36 @@ export const opacities: { [key: string]: number; } = { ignFrCadastre: 0.5, ignSlope: 0.4, swisstopoSlope: 0.4, -}; \ No newline at end of file +}; + +export const basemapTree = { + world: ['mapboxOutdoors', 'mapboxSatellite', 'openStreetMap', 'openTopoMap', 'openHikingMap', 'cyclOSM'], + countries: { + bulgaria: ['bgMountains'], + finland: ['finlandTopo'], + france: ['ignPlanV2', 'ignFrScan25', 'ignSatellite'], + newZealand: ['linz', 'linzTopo'], + norway: ['norwayTopo'], + spain: ['ignEs'], + sweden: ['swedenTopo'], + switzerland: ['swisstopo'], + unitedKingdom: ['ordnanceSurvey'], + unitedStates: ['usgs'], + }, +} + +export const overlayTree = { + world: { + cyclOSM: ['cyclOSMlite'], + waymarkedTrails: ['waymarkedTrailsHiking', 'waymarkedTrailsCycling', 'waymarkedTrailsMTB', 'waymarkedTrailsSkating', 'waymarkedTrailsHorseRiding', 'waymarkedTrailsWinter'] + }, + countries: { + france: ['ignFrCadastre', 'ignSlope'], + switzerland: ['swisstopoSlope', 'swisstopoCycling', 'swisstopoMountainBike'], + }, +} + +export const defaultBasemap = 'mapboxOutdoors'; + +export const defaultAvailableBasemaps = ['mapboxOutdoors', 'mapboxSatellite', 'openStreetMap', 'openTopoMap', 'openHikingMap', 'cyclOSM']; +export const defaultAvailableOverlays = ['cyclOSMlite', 'waymarkedTrailsHiking', 'waymarkedTrailsCycling', 'waymarkedTrailsMTB', 'waymarkedTrailsSkating', 'waymarkedTrailsHorseRiding', 'waymarkedTrailsWinter']; \ No newline at end of file diff --git a/website/src/lib/components/LayerControl.svelte b/website/src/lib/components/LayerControl.svelte index 77ac3d26..ea54b74c 100644 --- a/website/src/lib/components/LayerControl.svelte +++ b/website/src/lib/components/LayerControl.svelte @@ -5,16 +5,22 @@ import Fa from 'svelte-fa'; import { faLayerGroup } from '@fortawesome/free-solid-svg-icons'; - import { Label } from '$lib/components/ui/label'; - import * as RadioGroup from '$lib/components/ui/radio-group'; - import { Checkbox } from '$lib/components/ui/checkbox'; - - import { basemaps, overlays, opacities } from '$lib/assets/layers'; + import { + basemaps, + basemapTree, + overlays, + overlayTree, + opacities, + defaultBasemap, + defaultAvailableBasemaps, + defaultAvailableOverlays + } from '$lib/assets/layers'; + import LayerTree from './LayerTree.svelte'; export let map: mapboxgl.Map | null; $: if (map) { - map?.setStyle(basemaps['mapboxOutdoors']); + map?.setStyle(basemaps[defaultBasemap]); } @@ -22,50 +28,32 @@