8 Commits

Author SHA1 Message Date
vcoppe
87ba333b83 New translations file.mdx (Vietnamese) 2026-01-22 04:31:32 +01:00
vcoppe
b3b77d752b New translations en.json (Spanish) 2026-01-17 09:55:13 +01:00
vcoppe
182ef1a51b New translations en.json (Czech) 2026-01-16 21:44:56 +01:00
vcoppe
06cf04d346 New translations en.json (Dutch) 2026-01-16 20:32:24 +01:00
vcoppe
f0f1ecb2df New Crowdin updates (#303)
* New translations en.json (Spanish)

* New translations en.json (German)

* New translations en.json (Romanian)

* New translations en.json (French)

* New translations en.json (Belarusian)

* New translations en.json (Catalan)

* New translations en.json (Czech)

* New translations en.json (Danish)

* New translations en.json (Greek)

* New translations en.json (Basque)

* New translations en.json (Finnish)

* New translations en.json (Hebrew)

* New translations en.json (Chinese Simplified)

* New translations en.json (Polish)

* New translations en.json (Italian)

* New translations en.json (Hungarian)

* New translations en.json (Korean)

* New translations en.json (Lithuanian)

* New translations en.json (Dutch)

* New translations en.json (Norwegian)

* New translations en.json (Portuguese)

* New translations en.json (Russian)

* New translations en.json (Swedish)

* New translations en.json (Turkish)

* New translations en.json (Ukrainian)

* New translations en.json (Vietnamese)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Indonesian)

* New translations en.json (Thai)

* New translations en.json (Latvian)

* New translations en.json (Chinese Traditional, Hong Kong)

* New translations en.json (Serbian (Latin))

* New translations mapbox.mdx (German)

* New translations en.json (Chinese Simplified)

* New translations en.json (Polish)

* New translations en.json (Spanish)

* New translations en.json (German)

* New translations en.json (Italian)

* New translations en.json (Romanian)

* New translations en.json (French)

* New translations en.json (Belarusian)

* New translations en.json (Catalan)

* New translations en.json (Czech)

* New translations en.json (Danish)

* New translations en.json (Greek)

* New translations en.json (Basque)

* New translations en.json (Finnish)

* New translations en.json (Hebrew)

* New translations en.json (Hungarian)

* New translations en.json (Korean)

* New translations en.json (Lithuanian)

* New translations en.json (Dutch)

* New translations en.json (Norwegian)

* New translations en.json (Portuguese)

* New translations en.json (Russian)

* New translations en.json (Swedish)

* New translations en.json (Turkish)

* New translations en.json (Ukrainian)

* New translations en.json (Vietnamese)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Indonesian)

* New translations en.json (Thai)

* New translations en.json (Latvian)

* New translations en.json (Chinese Traditional, Hong Kong)

* New translations en.json (Serbian (Latin))

* New translations en.json (French)
2026-01-16 20:06:44 +01:00
vcoppe
2eb6ef6f03 new setting for selecting terrain source 2026-01-16 19:16:28 +01:00
vcoppe
f7c0805161 add mapterhorn hillshade overlay, closes #292 2026-01-16 18:32:32 +01:00
vcoppe
4e18e3c8a0 update year 2026-01-16 18:25:27 +01:00
40 changed files with 291 additions and 96 deletions

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2025 gpx.studio
Copyright (c) 2026 gpx.studio
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -22,7 +22,7 @@ import {
Binoculars,
Toilet,
} from 'lucide-static';
import { type StyleSpecification } from 'mapbox-gl';
import { type RasterDEMSourceSpecification, type StyleSpecification } from 'mapbox-gl';
import ignFrTopo from './custom/ign-fr-topo.json';
import ignFrPlan from './custom/ign-fr-plan.json';
import ignFrSatellite from './custom/ign-fr-satellite.json';
@@ -388,6 +388,22 @@ export const overlays: { [key: string]: string | StyleSpecification } = {
},
],
},
mapterhornHillshade: {
version: 8,
sources: {
mapterhornHillshade: {
type: 'raster-dem',
url: 'https://tiles.mapterhorn.com/tilejson.json',
},
},
layers: [
{
id: 'mapterhornHillshade',
type: 'hillshade',
source: 'mapterhornHillshade',
},
],
},
swisstopoSlope: {
version: 8,
sources: {
@@ -819,8 +835,9 @@ export const overlayTree: LayerTreeType = {
waymarkedTrailsHorseRiding: true,
waymarkedTrailsWinter: true,
},
cyclOSMlite: true,
bikerouterGravel: true,
cyclOSMlite: true,
mapterhornHillshade: true,
openRailwayMap: true,
},
countries: {
@@ -904,8 +921,9 @@ export const defaultOverlays: LayerTreeType = {
waymarkedTrailsHorseRiding: false,
waymarkedTrailsWinter: false,
},
cyclOSMlite: false,
bikerouterGravel: false,
cyclOSMlite: false,
mapterhornHillshade: false,
openRailwayMap: false,
},
countries: {
@@ -1040,8 +1058,9 @@ export const defaultOverlayTree: LayerTreeType = {
waymarkedTrailsHorseRiding: false,
waymarkedTrailsWinter: false,
},
cyclOSMlite: false,
bikerouterGravel: false,
cyclOSMlite: false,
mapterhornHillshade: false,
openRailwayMap: false,
},
countries: {
@@ -1434,3 +1453,18 @@ export const overpassQueryData: Record<string, OverpassQueryData> = {
symbol: 'Anchor',
},
};
export const terrainSources: { [key: string]: RasterDEMSourceSpecification } = {
'mapbox-dem': {
type: 'raster-dem',
url: 'mapbox://mapbox.mapbox-terrain-dem-v1',
tileSize: 512,
maxzoom: 14,
},
mapterhorn: {
type: 'raster-dem',
url: 'https://tiles.mapterhorn.com/tilejson.json',
},
};
export const defaultTerrainSource = 'mapbox-dem';

View File

@@ -18,7 +18,7 @@
href="https://github.com/gpxstudio/gpx.studio/blob/main/LICENSE"
target="_blank"
>
MIT © 2025 gpx.studio
MIT © 2026 gpx.studio
</Button>
<LanguageSelect class="w-40 mt-3" />
</div>

View File

@@ -13,6 +13,7 @@
overlays,
overlayTree,
overpassTree,
terrainSources,
} from '$lib/assets/layers';
import { getLayers, isSelected, toggle } from '$lib/components/map/layer-control/utils';
import { i18n } from '$lib/i18n.svelte';
@@ -31,6 +32,7 @@
currentOverpassQueries,
customLayers,
opacities,
terrainSource,
} = settings;
const { isLayerFromExtension, getLayerName } = extensionAPI;
@@ -233,6 +235,23 @@
</ScrollArea>
</Accordion.Content>
</Accordion.Item>
<Accordion.Item value="terrain-source">
<Accordion.Trigger>{i18n._('layers.terrain')}</Accordion.Trigger>
<Accordion.Content class="flex flex-col gap-3 overflow-visible">
<Select.Root bind:value={$terrainSource} type="single">
<Select.Trigger class="mr-1 w-full" size="sm">
{i18n._(`layers.label.${$terrainSource}`)}
</Select.Trigger>
<Select.Content class="h-fit max-h-[40dvh] overflow-y-auto">
{#each Object.keys(terrainSources) as id}
<Select.Item value={id}>
{i18n._(`layers.label.${id}`)}
</Select.Item>
{/each}
</Select.Content>
</Select.Root>
</Accordion.Content>
</Accordion.Item>
</Accordion.Root>
</ScrollArea>
</Sheet.Header>

View File

@@ -3,8 +3,16 @@ import MapboxGeocoder from '@mapbox/mapbox-gl-geocoder';
import { get, writable, type Writable } from 'svelte/store';
import { settings } from '$lib/logic/settings';
import { tick } from 'svelte';
import { terrainSources } from '$lib/assets/layers';
const { treeFileView, elevationProfile, bottomPanelSize, rightPanelSize, distanceUnits } = settings;
const {
treeFileView,
elevationProfile,
bottomPanelSize,
rightPanelSize,
distanceUnits,
terrainSource,
} = settings;
let fitBoundsOptions: mapboxgl.MapOptions['fitBoundsOptions'] = {
maxZoom: 15,
@@ -123,34 +131,14 @@ export class MapboxGLMap {
});
map.addControl(scaleControl);
map.on('style.load', () => {
map.addSource('mapbox-dem', {
type: 'raster-dem',
url: 'mapbox://mapbox.mapbox-terrain-dem-v1',
tileSize: 512,
maxzoom: 14,
});
if (map.getPitch() > 0) {
map.setTerrain({
source: 'mapbox-dem',
exaggeration: 1,
});
}
map.setFog({
color: 'rgb(186, 210, 235)',
'high-color': 'rgb(36, 92, 223)',
'horizon-blend': 0.1,
'space-color': 'rgb(156, 240, 255)',
});
map.on('pitch', () => {
if (map.getPitch() > 0) {
map.setTerrain({
source: 'mapbox-dem',
exaggeration: 1,
});
} else {
map.setTerrain(null);
}
});
map.on('pitch', this.setTerrain.bind(this));
this.setTerrain();
});
map.on('style.import.load', () => {
const basemap = map.getStyle().imports?.find((imprt) => imprt.id === 'basemap');
@@ -162,6 +150,7 @@ export class MapboxGLMap {
this._map.set(map); // only set the store after the map has loaded
window._map = map; // entry point for extensions
this.resize();
this.setTerrain();
scaleControl.setUnit(get(distanceUnits));
this._onLoadCallbacks.forEach((callback) => callback(map));
@@ -177,6 +166,7 @@ export class MapboxGLMap {
scaleControl.setUnit(units);
})
);
this._unsubscribes.push(terrainSource.subscribe(() => this.setTerrain()));
}
onLoad(callback: (map: mapboxgl.Map) => void) {
@@ -217,6 +207,24 @@ export class MapboxGLMap {
}
}
}
setTerrain() {
const map = get(this._map);
if (map) {
const source = get(terrainSource);
if (!map.getSource(source)) {
map.addSource(source, terrainSources[source]);
}
if (map.getPitch() > 0) {
map.setTerrain({
source: source,
exaggeration: 1,
});
} else {
map.setTerrain(null);
}
}
}
}
export const map = new MapboxGLMap();

View File

@@ -31,7 +31,7 @@ Create a copy of the currently selected files.
### <FileX size="16" class="inline-block" style="margin-bottom: 2px" /> Delete
Delete the currently selected files.
.
### <FileX size="16" class="inline-block" style="margin-bottom: 2px" /> Delete all

View File

@@ -8,6 +8,7 @@ import {
defaultOverlayTree,
defaultOverpassQueries,
defaultOverpassTree,
defaultTerrainSource,
type CustomLayer,
} from '$lib/assets/layers';
import { browser } from '$app/environment';
@@ -154,6 +155,7 @@ export const settings = {
customLayers: new Setting<Record<string, CustomLayer>>('customLayers', {}),
customBasemapOrder: new Setting<string[]>('customBasemapOrder', []),
customOverlayOrder: new Setting<string[]>('customOverlayOrder', []),
terrainSource: new Setting('terrainSource', defaultTerrainSource),
directionMarkers: new Setting('directionMarkers', false),
distanceMarkers: new Setting('distanceMarkers', false),
streetViewSource: new Setting('streetViewSource', 'mapillary'),

View File

@@ -282,6 +282,7 @@
"update": "Update layer"
},
"opacity": "Overlay opacity",
"terrain": "Terrain source",
"label": {
"basemaps": "Basemaps",
"overlays": "Overlays",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Slope",
"swisstopoHiking": "swisstopo Hiking",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "Railway Station",
"tram-stop": "Tram Stop",
"bus-stop": "Bus Stop",
"ferry": "Ferry"
"ferry": "Ferry",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Actualitza la capa"
},
"opacity": "Opacitat de la superposició",
"terrain": "Terrain source",
"label": {
"basemaps": "Mapes base",
"overlays": "Capes",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Slope",
"swisstopoHiking": "swisstopo Hiking",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "Estació de tren",
"tram-stop": "Parada de tramvia",
"bus-stop": "Parada d'autobús",
"ferry": "Ferri"
"ferry": "Ferri",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Aktualizovat vrstvu"
},
"opacity": "Průhlednost překryvu",
"terrain": "Zdroj terénu",
"label": {
"basemaps": "Základní mapy",
"overlays": "Překrytí",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Vrstevnice",
"swisstopoHiking": "swisstopo Turistická",
"swisstopoHikingClosures": "swisstopo Turistické uzávěry",
@@ -378,7 +380,9 @@
"railway-station": "Železniční stanice",
"tram-stop": "Zastávka tramvaje",
"bus-stop": "Autobusová zastávka",
"ferry": "Trajekt"
"ferry": "Trajekt",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Update layer"
},
"opacity": "Overlay opacity",
"terrain": "Terrain source",
"label": {
"basemaps": "Basemaps",
"overlays": "Overlays",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Slope",
"swisstopoHiking": "swisstopo Hiking",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "Railway Station",
"tram-stop": "Tram Stop",
"bus-stop": "Bus Stop",
"ferry": "Ferry"
"ferry": "Ferry",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Layer aktualisieren"
},
"opacity": "Deckkraft der Überlagerung",
"terrain": "Terrain source",
"label": {
"basemaps": "Basiskarte",
"overlays": "Ebenen",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Neigung",
"swisstopoHiking": "swisstopo Wandern",
"swisstopoHikingClosures": "swisstopo Wanderungen Schließungen",
@@ -378,7 +380,9 @@
"railway-station": "Bahnhof",
"tram-stop": "Straßenbahnhaltestelle",
"bus-stop": "Bushaltestelle",
"ferry": "Fähre"
"ferry": "Fähre",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Update layer"
},
"opacity": "Overlay opacity",
"terrain": "Terrain source",
"label": {
"basemaps": "Basemaps",
"overlays": "Overlays",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Slope",
"swisstopoHiking": "swisstopo Hiking",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "Railway Station",
"tram-stop": "Tram Stop",
"bus-stop": "Bus Stop",
"ferry": "Ferry"
"ferry": "Ferry",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Update layer"
},
"opacity": "Overlay opacity",
"terrain": "Terrain source",
"label": {
"basemaps": "Basemaps",
"overlays": "Overlays",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Slope",
"swisstopoHiking": "swisstopo Hiking",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "Railway Station",
"tram-stop": "Tram Stop",
"bus-stop": "Bus Stop",
"ferry": "Ferry"
"ferry": "Ferry",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Actualizar capa"
},
"opacity": "Opacidad de la capa superpuesta",
"terrain": "Origen del terreno",
"label": {
"basemaps": "Mapas base",
"overlays": "Capas",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "Gravel bikerouter.de",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Slope",
"swisstopoHiking": "swisstopo Senderismo",
"swisstopoHikingClosures": "swisstopo Rutas Senderismo",
@@ -378,7 +380,9 @@
"railway-station": "Estación de tren",
"tram-stop": "Parada de tranvía",
"bus-stop": "Parada de autobús",
"ferry": "Ferri"
"ferry": "Ferri",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Eguneratu geruza"
},
"opacity": "Geruzaren opakutasuna",
"terrain": "Terrain source",
"label": {
"basemaps": "Oinarrizko mapak",
"overlays": "Geruzak",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Malda",
"swisstopoHiking": "swisstopo Mendi ibilaldiak",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "Tren geltokia",
"tram-stop": "Tranbia geltokia",
"bus-stop": "Autobus geltokia",
"ferry": "Ferria"
"ferry": "Ferria",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Päivitä karttataso"
},
"opacity": "Peitetason läpinäkyvyys",
"terrain": "Terrain source",
"label": {
"basemaps": "Taustakartat",
"overlays": "Peitetasot",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Rinnekaltevuus",
"swisstopoHiking": "swisstopo Retkeilyreitit",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "Rautatieasemat",
"tram-stop": "Raitiovaunupysäkit",
"bus-stop": "Linja-autopysäkit",
"ferry": "Lautat"
"ferry": "Lautat",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Mettre à jour la couche"
},
"opacity": "Opacité de la surcouche",
"terrain": "Source du relief",
"label": {
"basemaps": "Fonds de carte",
"overlays": "Surcouches",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Relief",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Pente",
"swisstopoHiking": "swisstopo Randonnée",
"swisstopoHikingClosures": "swisstopo Fermetures de randonnée",
@@ -378,7 +380,9 @@
"railway-station": "Gare",
"tram-stop": "Arrêt de tram",
"bus-stop": "Arrêt de bus",
"ferry": "Ferry"
"ferry": "Ferry",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Update layer"
},
"opacity": "Overlay opacity",
"terrain": "Terrain source",
"label": {
"basemaps": "Basemaps",
"overlays": "Overlays",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Slope",
"swisstopoHiking": "swisstopo Hiking",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "Railway Station",
"tram-stop": "Tram Stop",
"bus-stop": "Bus Stop",
"ferry": "Ferry"
"ferry": "Ferry",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Réteg feltöltése"
},
"opacity": "Átfedés átlátszósága",
"terrain": "Terrain source",
"label": {
"basemaps": "Alaptérkép",
"overlays": "Térkép rétegek",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "kerékpár és terepkerékpár út",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Lejtő",
"swisstopoHiking": "swisstopo Túra",
"swisstopoHikingClosures": "swisstopo túralezárások",
@@ -378,7 +380,9 @@
"railway-station": "Vasútállomás",
"tram-stop": "Villamos megálló",
"bus-stop": "Buszmegálló",
"ferry": "Komp"
"ferry": "Komp",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Perbarui lapisan"
},
"opacity": "Opasitas Overlay",
"terrain": "Terrain source",
"label": {
"basemaps": "Peta dasar",
"overlays": "Overlay",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Kemiringan",
"swisstopoHiking": "swisstopo Pendakian",
"swisstopoHikingClosures": "Penutupan Jalur Pendakian swisstopo",
@@ -378,7 +380,9 @@
"railway-station": "Stasiun kereta api",
"tram-stop": "Halt trem",
"bus-stop": "Pemberhentian Bus",
"ferry": "Feri"
"ferry": "Feri",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Aggiorna livello"
},
"opacity": "Opacità di sovrapposizione",
"terrain": "Terrain source",
"label": {
"basemaps": "Mappe di base",
"overlays": "Sovrapposizioni",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Pendenza",
"swisstopoHiking": "swisstopo Escursione",
"swisstopoHikingClosures": "swisstopo Fine escursione",
@@ -378,7 +380,9 @@
"railway-station": "Stazione ferroviaria",
"tram-stop": "Fermata del tram",
"bus-stop": "Fermata dell'autobus",
"ferry": "Traghetto"
"ferry": "Traghetto",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "레이어 갱신"
},
"opacity": "오버레이 투명도",
"terrain": "Terrain source",
"label": {
"basemaps": "배경 지도",
"overlays": "오버레이",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Slope",
"swisstopoHiking": "swisstopo Hiking",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "철도역",
"tram-stop": "트램 정류장",
"bus-stop": "버스 정류장",
"ferry": "페리"
"ferry": "페리",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Naujinti sluoksnį"
},
"opacity": "Sluoksnio skaidrumas",
"terrain": "Terrain source",
"label": {
"basemaps": "Pagrindo žemėlapiai",
"overlays": "Sluoksniai",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Slope",
"swisstopoHiking": "swisstopo Hiking",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "Geležinkelio stotis",
"tram-stop": "Tramvajaus stotelė",
"bus-stop": "Autobusų stotelė",
"ferry": "Keltas"
"ferry": "Keltas",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Update layer"
},
"opacity": "Overlay opacity",
"terrain": "Terrain source",
"label": {
"basemaps": "Basemaps",
"overlays": "Overlays",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Slope",
"swisstopoHiking": "swisstopo Hiking",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "Railway Station",
"tram-stop": "Tram Stop",
"bus-stop": "Bus Stop",
"ferry": "Ferry"
"ferry": "Ferry",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Update laag"
},
"opacity": "Laag Transparantie",
"terrain": "Terrein bron",
"label": {
"basemaps": "Basis kaarten",
"overlays": "Lagen",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Grind",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Helling",
"swisstopoHiking": "swisstopo Wandelen",
"swisstopoHikingClosures": "swisstopo Hiking Sluiting",
@@ -378,7 +380,9 @@
"railway-station": "Treinstation",
"tram-stop": "Tramhalte",
"bus-stop": "Bushalte",
"ferry": "Veerboot"
"ferry": "Veerboot",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Oppdater lag"
},
"opacity": "Gjennomsiktighet for overlegg",
"terrain": "Terrain source",
"label": {
"basemaps": "Basiskart",
"overlays": "Overlag",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "sykkelrute Grus",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "SyklOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopografisk helningskart",
"swisstopoHiking": "swisstopografisk Fottur",
"swisstopoHikingClosures": "swisstopografi Stengte turstier",
@@ -378,7 +380,9 @@
"railway-station": "Jernbanestasjon",
"tram-stop": "Trikkestopp",
"bus-stop": "Bussholdeplass",
"ferry": "Ferge"
"ferry": "Ferge",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Zaktualizuj warstwę"
},
"opacity": "Przezroczystość nakładki",
"terrain": "Terrain source",
"label": {
"basemaps": "Mapy bazowe",
"overlays": "Nakładki",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Stoki",
"swisstopoHiking": "swisstopo Szlaki Turystyczne",
"swisstopoHikingClosures": "swisstopo Zamknięcia Szlaków",
@@ -378,7 +380,9 @@
"railway-station": "Stacja kolejowa",
"tram-stop": "Przystanek tramwajowy",
"bus-stop": "Przystanek autobusowy",
"ferry": "Prom"
"ferry": "Prom",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Atualizar camada"
},
"opacity": "Opacidade de sobreposição",
"terrain": "Terrain source",
"label": {
"basemaps": "Mapa base",
"overlays": "Sobreposições",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Slope",
"swisstopoHiking": "swisstopo Hiking",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "Estações ferroviárias",
"tram-stop": "Parada de bonde",
"bus-stop": "Parada de Ônibus",
"ferry": "Balsa"
"ferry": "Balsa",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Atualizar camada"
},
"opacity": "Opacidade da sobreposição",
"terrain": "Terrain source",
"label": {
"basemaps": "Mapas base",
"overlays": "Sobreposições",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Slope",
"swisstopoHiking": "swisstopo Hiking",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "Estações ferroviárias",
"tram-stop": "Parada de bonde",
"bus-stop": "Parada de Ônibus",
"ferry": "Balsa"
"ferry": "Balsa",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Actualizează stratul"
},
"opacity": "Opacitatea overlay-ului",
"terrain": "Terrain source",
"label": {
"basemaps": "Hărți de bază",
"overlays": "Suprapuneri",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Slope",
"swisstopoHiking": "swisstopo Hiking",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "Gară",
"tram-stop": "Tram Stop",
"bus-stop": "Stație de autobuz",
"ferry": "Feribot"
"ferry": "Feribot",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Обновить слой"
},
"opacity": "Прозрачность наложения",
"terrain": "Terrain source",
"label": {
"basemaps": "Основные карты",
"overlays": "Наложения",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Slope",
"swisstopoHiking": "swisstopo Hiking",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "Железнодорожная станция",
"tram-stop": "Трамвайная остановка",
"bus-stop": "Автобусная остановка",
"ferry": "Паром"
"ferry": "Паром",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Ažurirajte sloj"
},
"opacity": "Providnost preklapanja",
"terrain": "Terrain source",
"label": {
"basemaps": "Osnovne mape",
"overlays": "Preklapanja",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Slope",
"swisstopoHiking": "swisstopo Hiking",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "Železnička stanica",
"tram-stop": "Tramvajsko stajalište",
"bus-stop": "Autobusko stajalište",
"ferry": "Trajekt"
"ferry": "Trajekt",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Update layer"
},
"opacity": "Overlay opacity",
"terrain": "Terrain source",
"label": {
"basemaps": "Baskartor",
"overlays": "Lager",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Slope",
"swisstopoHiking": "swisstopo Hiking",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "Järnvägsstation",
"tram-stop": "Spårvagnshållplats",
"bus-stop": "Busshållplats",
"ferry": "Ferry"
"ferry": "Ferry",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Update layer"
},
"opacity": "Overlay opacity",
"terrain": "Terrain source",
"label": {
"basemaps": "Basemaps",
"overlays": "Overlays",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Slope",
"swisstopoHiking": "swisstopo Hiking",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "Railway Station",
"tram-stop": "Tram Stop",
"bus-stop": "Bus Stop",
"ferry": "Ferry"
"ferry": "Ferry",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Katman güncelle"
},
"opacity": "Katman şeffaflığı",
"terrain": "Terrain source",
"label": {
"basemaps": "Temel haritalar",
"overlays": "Katmanlar",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Eğim",
"swisstopoHiking": "swisstopo Yürüyüş",
"swisstopoHikingClosures": "swisstopo Yürüyüş Sonu",
@@ -378,7 +380,9 @@
"railway-station": "Tren istasyonu",
"tram-stop": "Tramvay Durağı",
"bus-stop": "Otobüs Durağı",
"ferry": "Feribot"
"ferry": "Feribot",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Оновити шар"
},
"opacity": "Непрозорість накладання",
"terrain": "Terrain source",
"label": {
"basemaps": "Базові карти",
"overlays": "Накладання",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Slope",
"swisstopoHiking": "swisstopo Hiking",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "Залізнична Станція",
"tram-stop": "Трамвайна Зупинка",
"bus-stop": "Автобусна Зупинка",
"ferry": "Пором"
"ferry": "Пором",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Update layer"
},
"opacity": "Overlay opacity",
"terrain": "Terrain source",
"label": {
"basemaps": "Basemaps",
"overlays": "Overlays",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Slope",
"swisstopoHiking": "swisstopo Hiking",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "Railway Station",
"tram-stop": "Tram Stop",
"bus-stop": "Bus Stop",
"ferry": "Ferry"
"ferry": "Ferry",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "Update layer"
},
"opacity": "Overlay opacity",
"terrain": "Terrain source",
"label": {
"basemaps": "Basemaps",
"overlays": "Overlays",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "swisstopo Slope",
"swisstopoHiking": "swisstopo Hiking",
"swisstopoHikingClosures": "swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "Railway Station",
"tram-stop": "Tram Stop",
"bus-stop": "Bus Stop",
"ferry": "Ferry"
"ferry": "Ferry",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {

View File

@@ -282,6 +282,7 @@
"update": "更新图层"
},
"opacity": "图层透明度",
"terrain": "Terrain source",
"label": {
"basemaps": "底图",
"overlays": "叠加层",
@@ -324,8 +325,9 @@
"bgMountains": "BGMountains",
"usgs": "USGS",
"bikerouterGravel": "bikerouter.de Gravel",
"openRailwayMap": "OpenRailwayMap",
"cyclOSMlite": "CyclOSM Lite",
"mapterhornHillshade": "Mapterhorn Hillshade",
"openRailwayMap": "OpenRailwayMap",
"swisstopoSlope": "Swisstopo Slope",
"swisstopoHiking": "Swisstopo Hiking",
"swisstopoHikingClosures": "Swisstopo Hiking Closures",
@@ -378,7 +380,9 @@
"railway-station": "火车站",
"tram-stop": "有轨电车站",
"bus-stop": "小型公交站台",
"ferry": "渡口"
"ferry": "渡口",
"mapbox-dem": "Mapbox DEM",
"mapterhorn": "Mapterhorn"
}
},
"chart": {