101 Commits

Author SHA1 Message Date
vcoppe d2de71a5cf New translations elevation.mdx (Spanish)
[ci skip]
2026-05-28 11:24:41 +02:00
vcoppe 73546dd6bd New translations map-controls.mdx (Spanish)
[ci skip]
2026-05-28 11:24:40 +02:00
vcoppe e208bc2264 New translations en.json (Spanish)
[ci skip]
2026-05-28 11:24:38 +02:00
vcoppe 9ee1c1cd5a New translations en.json (French)
[ci skip]
2026-05-27 21:52:41 +02:00
vcoppe 3720f3bf4e New translations elevation.mdx (Serbian (Latin))
[ci skip]
2026-05-27 20:35:51 +02:00
vcoppe b8580b99ff New translations elevation.mdx (Chinese Traditional, Hong Kong)
[ci skip]
2026-05-27 20:35:49 +02:00
vcoppe bd3f0b706f New translations elevation.mdx (Latvian)
[ci skip]
2026-05-27 20:35:48 +02:00
vcoppe ab8da39cfa New translations elevation.mdx (Thai)
[ci skip]
2026-05-27 20:35:46 +02:00
vcoppe b97622e663 New translations elevation.mdx (Indonesian)
[ci skip]
2026-05-27 20:35:45 +02:00
vcoppe 38a935db36 New translations elevation.mdx (Portuguese, Brazilian)
[ci skip]
2026-05-27 20:35:43 +02:00
vcoppe d9b73deaa8 New translations elevation.mdx (Vietnamese)
[ci skip]
2026-05-27 20:35:42 +02:00
vcoppe 7425fbfeaa New translations elevation.mdx (Chinese Simplified)
[ci skip]
2026-05-27 20:35:40 +02:00
vcoppe 7638e5dc3c New translations elevation.mdx (Ukrainian)
[ci skip]
2026-05-27 20:35:39 +02:00
vcoppe eea43ae6d2 New translations elevation.mdx (Turkish)
[ci skip]
2026-05-27 20:35:37 +02:00
vcoppe 21cf4d0585 New translations elevation.mdx (Swedish)
[ci skip]
2026-05-27 20:35:36 +02:00
vcoppe 888e7fbb9f New translations elevation.mdx (Russian)
[ci skip]
2026-05-27 20:35:34 +02:00
vcoppe 9b613e7fc9 New translations elevation.mdx (Portuguese)
[ci skip]
2026-05-27 20:35:32 +02:00
vcoppe 8c6ed3819d New translations elevation.mdx (Polish)
[ci skip]
2026-05-27 20:35:31 +02:00
vcoppe 797f11565f New translations elevation.mdx (Norwegian)
[ci skip]
2026-05-27 20:35:30 +02:00
vcoppe c136f58ddf New translations elevation.mdx (Dutch)
[ci skip]
2026-05-27 20:35:28 +02:00
vcoppe 4103bb0840 New translations elevation.mdx (Lithuanian)
[ci skip]
2026-05-27 20:35:27 +02:00
vcoppe b2b911918d New translations elevation.mdx (Korean)
[ci skip]
2026-05-27 20:35:25 +02:00
vcoppe 55db10459a New translations elevation.mdx (Italian)
[ci skip]
2026-05-27 20:35:24 +02:00
vcoppe 0db07cd1d4 New translations elevation.mdx (Hungarian)
[ci skip]
2026-05-27 20:35:22 +02:00
vcoppe dfe9fbe0b4 New translations elevation.mdx (Hebrew)
[ci skip]
2026-05-27 20:35:21 +02:00
vcoppe 2d184a8e04 New translations elevation.mdx (Finnish)
[ci skip]
2026-05-27 20:35:19 +02:00
vcoppe acf355584a New translations elevation.mdx (Basque)
[ci skip]
2026-05-27 20:35:18 +02:00
vcoppe e49767321c New translations elevation.mdx (Greek)
[ci skip]
2026-05-27 20:35:16 +02:00
vcoppe b544dcc373 New translations elevation.mdx (German)
[ci skip]
2026-05-27 20:35:14 +02:00
vcoppe d63dff34a4 New translations elevation.mdx (Danish)
[ci skip]
2026-05-27 20:35:13 +02:00
vcoppe 6da81b38f1 New translations elevation.mdx (Czech)
[ci skip]
2026-05-27 20:35:12 +02:00
vcoppe c53c4ab136 New translations elevation.mdx (Catalan)
[ci skip]
2026-05-27 20:35:10 +02:00
vcoppe a14422be71 New translations elevation.mdx (Belarusian)
[ci skip]
2026-05-27 20:35:09 +02:00
vcoppe a41c600d23 New translations elevation.mdx (Spanish)
[ci skip]
2026-05-27 20:35:07 +02:00
vcoppe d1ace62410 New translations elevation.mdx (French)
[ci skip]
2026-05-27 20:35:06 +02:00
vcoppe ca404985a9 New translations elevation.mdx (Romanian)
[ci skip]
2026-05-27 20:35:04 +02:00
vcoppe f6ffb5afb4 New translations map-controls.mdx (Serbian (Latin))
[ci skip]
2026-05-27 20:29:31 +02:00
vcoppe 796c88258f New translations map-controls.mdx (Chinese Traditional, Hong Kong)
[ci skip]
2026-05-27 20:29:30 +02:00
vcoppe c23af4981a New translations map-controls.mdx (Latvian)
[ci skip]
2026-05-27 20:29:28 +02:00
vcoppe 2a7a444848 New translations map-controls.mdx (Thai)
[ci skip]
2026-05-27 20:29:27 +02:00
vcoppe 947c522187 New translations map-controls.mdx (Indonesian)
[ci skip]
2026-05-27 20:29:25 +02:00
vcoppe 37d6fa3562 New translations map-controls.mdx (Portuguese, Brazilian)
[ci skip]
2026-05-27 20:29:24 +02:00
vcoppe e8ef5ba125 New translations map-controls.mdx (Vietnamese)
[ci skip]
2026-05-27 20:29:22 +02:00
vcoppe e3d787029a New translations map-controls.mdx (Ukrainian)
[ci skip]
2026-05-27 20:29:20 +02:00
vcoppe 6bfd3e9560 New translations map-controls.mdx (Turkish)
[ci skip]
2026-05-27 20:29:19 +02:00
vcoppe ecc4591503 New translations map-controls.mdx (Swedish)
[ci skip]
2026-05-27 20:29:17 +02:00
vcoppe b7b042b44c New translations map-controls.mdx (Russian)
[ci skip]
2026-05-27 20:29:16 +02:00
vcoppe 376ddae828 New translations map-controls.mdx (Portuguese)
[ci skip]
2026-05-27 20:29:14 +02:00
vcoppe ced901d935 New translations map-controls.mdx (Polish)
[ci skip]
2026-05-27 20:29:13 +02:00
vcoppe f3464f235f New translations map-controls.mdx (Norwegian)
[ci skip]
2026-05-27 20:29:11 +02:00
vcoppe 66d7bb7399 New translations map-controls.mdx (Dutch)
[ci skip]
2026-05-27 20:29:10 +02:00
vcoppe 6934def87f New translations map-controls.mdx (Lithuanian)
[ci skip]
2026-05-27 20:29:08 +02:00
vcoppe 491ce645ff New translations map-controls.mdx (Korean)
[ci skip]
2026-05-27 20:29:07 +02:00
vcoppe b924f410ea New translations map-controls.mdx (Italian)
[ci skip]
2026-05-27 20:29:05 +02:00
vcoppe 088d4418b9 New translations map-controls.mdx (Hungarian)
[ci skip]
2026-05-27 20:29:04 +02:00
vcoppe bb312a1bf3 New translations map-controls.mdx (Hebrew)
[ci skip]
2026-05-27 20:29:02 +02:00
vcoppe 90fd5bba21 New translations map-controls.mdx (Finnish)
[ci skip]
2026-05-27 20:29:01 +02:00
vcoppe d6aaccbfa0 New translations map-controls.mdx (Basque)
[ci skip]
2026-05-27 20:28:59 +02:00
vcoppe 7c913e7d0d New translations map-controls.mdx (Greek)
[ci skip]
2026-05-27 20:28:58 +02:00
vcoppe 54d28410bb New translations map-controls.mdx (German)
[ci skip]
2026-05-27 20:28:56 +02:00
vcoppe c521183c16 New translations map-controls.mdx (Danish)
[ci skip]
2026-05-27 20:28:55 +02:00
vcoppe 33b1dff236 New translations map-controls.mdx (Czech)
[ci skip]
2026-05-27 20:28:53 +02:00
vcoppe 6493006f9f New translations map-controls.mdx (Catalan)
[ci skip]
2026-05-27 20:28:51 +02:00
vcoppe 259fe3fec9 New translations map-controls.mdx (Belarusian)
[ci skip]
2026-05-27 20:28:50 +02:00
vcoppe 7678a7f93a New translations map-controls.mdx (Spanish)
[ci skip]
2026-05-27 20:28:48 +02:00
vcoppe 826f58fb9a New translations map-controls.mdx (French)
[ci skip]
2026-05-27 20:28:45 +02:00
vcoppe da33d848a2 New translations map-controls.mdx (Romanian)
[ci skip]
2026-05-27 20:28:44 +02:00
vcoppe 6825228c76 New translations en.json (Serbian (Latin))
[ci skip]
2026-05-27 20:27:11 +02:00
vcoppe 5227e8bcf6 New translations en.json (Chinese Traditional, Hong Kong)
[ci skip]
2026-05-27 20:27:09 +02:00
vcoppe 347d40d973 New translations en.json (Latvian)
[ci skip]
2026-05-27 20:27:07 +02:00
vcoppe 3f711505de New translations en.json (Thai)
[ci skip]
2026-05-27 20:27:06 +02:00
vcoppe e2852b721a New translations en.json (Portuguese, Brazilian)
[ci skip]
2026-05-27 20:27:04 +02:00
vcoppe a775f6fb0b New translations en.json (Vietnamese)
[ci skip]
2026-05-27 20:27:02 +02:00
vcoppe 9bf8e365e4 New translations en.json (Chinese Simplified)
[ci skip]
2026-05-27 20:27:00 +02:00
vcoppe 34b6bfe306 New translations en.json (Ukrainian)
[ci skip]
2026-05-27 20:26:59 +02:00
vcoppe 707c1f9c5a New translations map-controls.mdx (Chinese Simplified)
[ci skip]
2026-05-27 20:26:57 +02:00
vcoppe ef722839f4 New translations en.json (Indonesian)
[ci skip]
2026-05-27 20:26:55 +02:00
vcoppe 33ccf3154b New translations en.json (Turkish)
[ci skip]
2026-05-27 20:26:54 +02:00
vcoppe f4629dc0dc New translations en.json (Swedish)
[ci skip]
2026-05-27 20:26:52 +02:00
vcoppe 2393079067 New translations en.json (Russian)
[ci skip]
2026-05-27 20:26:50 +02:00
vcoppe 40972be26a New translations en.json (Portuguese)
[ci skip]
2026-05-27 20:26:49 +02:00
vcoppe 8b7742ef78 New translations en.json (Polish)
[ci skip]
2026-05-27 20:26:47 +02:00
vcoppe 3c15d9d061 New translations en.json (Norwegian)
[ci skip]
2026-05-27 20:26:46 +02:00
vcoppe c56d750bb3 New translations en.json (Lithuanian)
[ci skip]
2026-05-27 20:26:44 +02:00
vcoppe 4dfc1b26b1 New translations en.json (Korean)
[ci skip]
2026-05-27 20:26:42 +02:00
vcoppe 1de19a85eb New translations en.json (Italian)
[ci skip]
2026-05-27 20:26:41 +02:00
vcoppe 3630953f4b New translations en.json (Hungarian)
[ci skip]
2026-05-27 20:26:39 +02:00
vcoppe b211e36ed3 New translations en.json (Hebrew)
[ci skip]
2026-05-27 20:26:36 +02:00
vcoppe fcb3bebdba New translations en.json (Finnish)
[ci skip]
2026-05-27 20:26:34 +02:00
vcoppe 923d61547d New translations en.json (Basque)
[ci skip]
2026-05-27 20:26:33 +02:00
vcoppe aaff9045e4 New translations en.json (Greek)
[ci skip]
2026-05-27 20:26:31 +02:00
vcoppe 22b8880a9e New translations en.json (German)
[ci skip]
2026-05-27 20:26:29 +02:00
vcoppe b7216f9b77 New translations en.json (Danish)
[ci skip]
2026-05-27 20:26:28 +02:00
vcoppe df55eb59f5 New translations en.json (Czech)
[ci skip]
2026-05-27 20:26:26 +02:00
vcoppe a83d9afe51 New translations en.json (Catalan)
[ci skip]
2026-05-27 20:26:24 +02:00
vcoppe e449308563 New translations en.json (Belarusian)
[ci skip]
2026-05-27 20:26:23 +02:00
vcoppe 23179716b1 New translations en.json (Spanish)
[ci skip]
2026-05-27 20:26:21 +02:00
vcoppe b532a5d40a New translations en.json (French)
[ci skip]
2026-05-27 20:26:19 +02:00
vcoppe 78796f9d8f New translations en.json (Romanian)
[ci skip]
2026-05-27 20:26:18 +02:00
vcoppe 17c81e22e0 New translations en.json (Dutch)
[ci skip]
2026-05-27 20:26:16 +02:00
vcoppe ca72b7a368 New translations map-controls.mdx (Chinese Simplified)
[ci skip]
2026-05-25 05:03:14 +02:00
60 changed files with 277 additions and 271 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 313 KiB

After

Width:  |  Height:  |  Size: 339 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 729 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 308 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 525 KiB

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 710 KiB

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

+19 -16
View File
@@ -31,10 +31,10 @@ import bikerouterGravel from './custom/bikerouter-gravel.json';
export const maptilerKeyPlaceHolder = 'MAPTILER_KEY'; export const maptilerKeyPlaceHolder = 'MAPTILER_KEY';
export const basemaps: { [key: string]: string | StyleSpecification } = { export const basemaps: { [key: string]: string | StyleSpecification } = {
libertyTopo: 'https://styles.gpx.studio/liberty-topo.json', maptilerStreets: `https://api.maptiler.com/maps/streets-v4/style.json?key=${maptilerKeyPlaceHolder}`,
libertySatellite: 'https://styles.gpx.studio/liberty-satellite.json', maptilerTopo: `https://api.maptiler.com/maps/topo-v4/style.json?key=${maptilerKeyPlaceHolder}`,
osm: 'https://styles.gpx.studio/osm.json', maptilerOutdoors: `https://api.maptiler.com/maps/outdoor-v4/style.json?key=${maptilerKeyPlaceHolder}`,
osmTopo: 'https://styles.gpx.studio/osm-topo.json', maptilerSatellite: `https://api.maptiler.com/maps/hybrid-v4/style.json?key=${maptilerKeyPlaceHolder}`,
esriSatellite: { esriSatellite: {
version: 8, version: 8,
sources: { sources: {
@@ -799,10 +799,10 @@ export type LayerTreeType = { [key: string]: LayerTreeType | boolean };
export const basemapTree: LayerTreeType = { export const basemapTree: LayerTreeType = {
basemaps: { basemaps: {
world: { world: {
libertyTopo: true, maptilerStreets: true,
libertySatellite: true, maptilerTopo: true,
osm: true, maptilerOutdoors: true,
osmTopo: true, maptilerSatellite: true,
esriSatellite: true, esriSatellite: true,
openStreetMap: true, openStreetMap: true,
openTopoMap: true, openTopoMap: true,
@@ -936,7 +936,7 @@ export const overpassTree: LayerTreeType = {
}; };
// Default basemap used // Default basemap used
export const defaultBasemap = 'libertyTopo'; export const defaultBasemap = 'maptilerStreets';
// Default overlays used (none) // Default overlays used (none)
export const defaultOverlays: LayerTreeType = { export const defaultOverlays: LayerTreeType = {
@@ -1025,10 +1025,10 @@ export const defaultOverpassQueries: LayerTreeType = {
export const defaultBasemapTree: LayerTreeType = { export const defaultBasemapTree: LayerTreeType = {
basemaps: { basemaps: {
world: { world: {
libertyTopo: true, maptilerStreets: true,
libertySatellite: true, maptilerTopo: true,
osm: true, maptilerOutdoors: true,
osmTopo: true, maptilerSatellite: true,
esriSatellite: false, esriSatellite: false,
openStreetMap: true, openStreetMap: true,
openTopoMap: true, openTopoMap: true,
@@ -1487,11 +1487,14 @@ export const overpassQueryData: Record<string, OverpassQueryData> = {
}; };
export const terrainSources: { [key: string]: RasterDEMSourceSpecification } = { export const terrainSources: { [key: string]: RasterDEMSourceSpecification } = {
'maptiler-dem': {
type: 'raster-dem',
url: `https://api.maptiler.com/tiles/terrain-rgb-v2/tiles.json?key=${maptilerKeyPlaceHolder}`,
},
mapterhorn: { mapterhorn: {
type: 'raster-dem', type: 'raster-dem',
url: 'https://tiles.gpx.studio/mapterhorn.json', url: 'https://tiles.mapterhorn.com/tilejson.json',
encoding: 'terrarium',
}, },
}; };
export const defaultTerrainSource = 'mapterhorn'; export const defaultTerrainSource = 'maptiler-dem';
+7 -1
View File
@@ -8,7 +8,7 @@
...others ...others
}: { }: {
iconOnly?: boolean; iconOnly?: boolean;
company?: 'gpx.studio' | 'github' | 'crowdin' | 'facebook' | 'reddit'; company?: 'gpx.studio' | 'maptiler' | 'github' | 'crowdin' | 'facebook' | 'reddit';
[key: string]: any; [key: string]: any;
} = $props(); } = $props();
</script> </script>
@@ -19,6 +19,12 @@
alt="Logo of gpx.studio." alt="Logo of gpx.studio."
{...others} {...others}
/> />
{:else if company === 'maptiler'}
<img
src="{base}/maptiler-logo{mode.current === 'dark' ? '-dark' : ''}.svg"
alt="Logo of Maptiler."
{...others}
/>
{:else if company === 'github'} {:else if company === 'github'}
<svg <svg
role="img" role="img"
@@ -1,10 +1,10 @@
<script lang="ts"> <script lang="ts">
import topoMap from '$lib/assets/img/docs/maps/topo.png?enhanced'; import maptilerTopoMap from '$lib/assets/img/home/maptiler-topo.png?enhanced';
import waymarkedMap from '$lib/assets/img/docs/maps/waymarked.png?enhanced'; import waymarkedMap from '$lib/assets/img/home/waymarked.png?enhanced';
</script> </script>
<div class="relative h-80 aspect-square rounded-2xl shadow-xl overflow-clip"> <div class="relative h-80 aspect-square rounded-2xl shadow-xl overflow-clip">
<enhanced:img src={topoMap} alt="Topo map screenshot." class="absolute" /> <enhanced:img src={maptilerTopoMap} alt="MapTiler Topo map screenshot." class="absolute" />
<enhanced:img <enhanced:img
src={waymarkedMap} src={waymarkedMap}
alt="Waymarked Trails map screenshot." alt="Waymarked Trails map screenshot."
@@ -29,7 +29,7 @@ export const defaultEmbeddingOptions = {
key: '', key: '',
files: [], files: [],
ids: [], ids: [],
basemap: 'libertyTopo', basemap: 'maptilerStreets',
elevation: { elevation: {
show: true, show: true,
height: 170, height: 170,
@@ -126,7 +126,7 @@ export function convertOldEmbeddingOptions(options: URLSearchParams): any {
if (options.has('source')) { if (options.has('source')) {
let basemap = options.get('source')!; let basemap = options.get('source')!;
if (basemap === 'satellite') { if (basemap === 'satellite') {
newOptions.basemap = 'libertySatellite'; newOptions.basemap = 'maptilerSatellite';
} else if (basemap === 'otm') { } else if (basemap === 'otm') {
newOptions.basemap = 'openTopoMap'; newOptions.basemap = 'openTopoMap';
} else if (basemap === 'ohm') { } else if (basemap === 'ohm') {
@@ -74,7 +74,7 @@ export class DistanceMarkers {
layout: { layout: {
'text-field': ['get', 'distance'], 'text-field': ['get', 'distance'],
'text-size': 14, 'text-size': 14,
'text-font': ['Noto Sans Bold'], 'text-font': ['Open Sans Bold'],
}, },
paint: { paint: {
'text-color': 'black', 'text-color': 'black',
@@ -251,11 +251,11 @@ export class GPXLayer {
source: this.fileId, source: this.fileId,
layout: { layout: {
'text-field': '»', 'text-field': '»',
'text-offset': [0, -0.1], 'text-offset': [0, -0.06],
'text-keep-upright': false, 'text-keep-upright': false,
'text-max-angle': 361, 'text-max-angle': 361,
'text-allow-overlap': true, 'text-allow-overlap': true,
'text-font': ['Noto Sans Bold'], 'text-font': ['Open Sans Bold'],
'symbol-placement': 'line', 'symbol-placement': 'line',
'symbol-spacing': 20, 'symbol-spacing': 20,
}, },
@@ -24,7 +24,7 @@ liveQuery(() => db.overpassdata.toArray()).subscribe((pois) => {
}); });
export class OverpassLayer { export class OverpassLayer {
overpassUrl = 'https://overpass.gpx.studio/api/interpreter'; overpassUrl = 'https://overpass.private.coffee/api/interpreter';
minZoom = 12; minZoom = 12;
queryZoom = 12; queryZoom = 12;
expirationTime = 7 * 24 * 3600 * 1000; expirationTime = 7 * 24 * 3600 * 1000;
+31 -65
View File
@@ -10,8 +10,7 @@ import {
import { getLayers } from '$lib/components/map/layer-control/utils'; import { getLayers } from '$lib/components/map/layer-control/utils';
import { i18n } from '$lib/i18n.svelte'; import { i18n } from '$lib/i18n.svelte';
const { currentBasemap, currentOverlays, customLayers, opacities, terrainSource, distanceUnits } = const { currentBasemap, currentOverlays, customLayers, opacities, terrainSource } = settings;
settings;
const emptySource: maplibregl.GeoJSONSourceSpecification = { const emptySource: maplibregl.GeoJSONSourceSpecification = {
type: 'geojson', type: 'geojson',
@@ -58,24 +57,15 @@ export class StyleManager {
opacities.subscribe(() => this.updateOverlays()); opacities.subscribe(() => this.updateOverlays());
terrainSource.subscribe(() => this.updateTerrain()); terrainSource.subscribe(() => this.updateTerrain());
customLayers.subscribe(() => this.updateBasemap()); customLayers.subscribe(() => this.updateBasemap());
distanceUnits.subscribe(() => {
const map = get(this._map);
if (map && (map.getLayer('contours_m') || map.getLayer('contours_ft'))) {
this.updateBasemap();
}
});
} }
updateBasemap() { updateBasemap() {
const map_ = get(this._map); const map_ = get(this._map);
if (!map_) return; if (!map_) return;
let basemap = get(currentBasemap); this.buildStyle().then((style) => map_.setStyle(style));
this.buildStyle(basemap).then((style) => {
if (get(currentBasemap) === basemap) map_.setStyle(style);
});
} }
async buildStyle(basemap: string): Promise<maplibregl.StyleSpecification> { async buildStyle(): Promise<maplibregl.StyleSpecification> {
const custom = get(customLayers); const custom = get(customLayers);
const style: maplibregl.StyleSpecification = { const style: maplibregl.StyleSpecification = {
@@ -89,31 +79,22 @@ export class StyleManager {
layers: [], layers: [],
}; };
let basemap = get(currentBasemap);
const basemapInfo = basemaps[basemap] ?? custom[basemap]?.value ?? basemaps[defaultBasemap]; const basemapInfo = basemaps[basemap] ?? custom[basemap]?.value ?? basemaps[defaultBasemap];
let basemapStyle = basemaps.openStreetMap as maplibregl.StyleSpecification; let basemapStyle = basemaps.openStreetMap as maplibregl.StyleSpecification;
try { try {
basemapStyle = await this.get(basemapInfo); basemapStyle = await this.get(basemapInfo);
for (const source in basemapStyle.sources) {
const src = basemapStyle.sources[source];
if (
src &&
typeof src === 'object' &&
'url' in src &&
typeof src.url === 'string' &&
src.url.includes(maptilerKeyPlaceHolder)
) {
src.url = src.url.replace(maptilerKeyPlaceHolder, this._maptilerKey);
}
}
} catch (e) { } catch (e) {
console.error(e.message); console.error(e.message);
} }
this.merge(style, basemapStyle); this.merge(style, basemapStyle);
const terrain = this.getCurrentTerrain(); if (this._maptilerKey !== '') {
style.sources[terrain.source] = terrainSources[terrain.source]; const terrain = this.getCurrentTerrain();
style.terrain = terrain.exaggeration > 0 ? terrain : undefined; style.sources[terrain.source] = terrainSources[terrain.source];
style.terrain = terrain.exaggeration > 0 ? terrain : undefined;
}
style.layers.push(...anchorLayers); style.layers.push(...anchorLayers);
@@ -185,6 +166,7 @@ export class StyleManager {
} }
updateTerrain() { updateTerrain() {
if (this._maptilerKey === '') return;
const map_ = get(this._map); const map_ = get(this._map);
if (!map_) return; if (!map_) return;
@@ -207,6 +189,9 @@ export class StyleManager {
): Promise<maplibregl.StyleSpecification> { ): Promise<maplibregl.StyleSpecification> {
if (typeof styleInfo === 'string') { if (typeof styleInfo === 'string') {
let styleUrl = styleInfo as string; let styleUrl = styleInfo as string;
if (styleUrl.includes(maptilerKeyPlaceHolder)) {
styleUrl = styleUrl.replace(maptilerKeyPlaceHolder, this._maptilerKey);
}
const response = await fetch(styleUrl, { cache: 'force-cache' }); const response = await fetch(styleUrl, { cache: 'force-cache' });
if (!response.ok) { if (!response.ok) {
throw new Error(`HTTP error fetching style "${styleInfo}": ${response.status}`); throw new Error(`HTTP error fetching style "${styleInfo}": ${response.status}`);
@@ -220,46 +205,23 @@ export class StyleManager {
merge(style: maplibregl.StyleSpecification, other: maplibregl.StyleSpecification) { merge(style: maplibregl.StyleSpecification, other: maplibregl.StyleSpecification) {
style.sources = { ...style.sources, ...other.sources }; style.sources = { ...style.sources, ...other.sources };
const units = get(distanceUnits);
for (let layer of other.layers ?? []) { for (let layer of other.layers ?? []) {
if ('source' in layer) {
if (layer.source == 'contours_m' && units === 'imperial') continue;
if (layer.source == 'contours_ft' && units !== 'imperial') continue;
}
if (layer.type === 'symbol' && layer.layout && layer.layout['text-field']) { if (layer.type === 'symbol' && layer.layout && layer.layout['text-field']) {
const textField = layer.layout['text-field']; const textField = layer.layout['text-field'];
if (Array.isArray(textField)) { if (
if ( Array.isArray(textField) &&
textField.length == 4 && textField.length >= 2 &&
Array.isArray(textField[3]) && textField[0] === 'coalesce' &&
textField[3][0] === 'coalesce' && Array.isArray(textField[1]) &&
Array.isArray(textField[3][1]) && textField[1][0] === 'get' &&
textField[3][1][0] === 'get' && typeof textField[1][1] === 'string' &&
typeof textField[3][1][1] === 'string' && textField[1][1].startsWith('name')
textField[3][1][1].startsWith('name') ) {
) { layer.layout['text-field'] = [
// OpenFreeMap styles 'coalesce',
layer.layout['text-field'] = [ ['get', `name:${i18n.lang}`],
'coalesce', ['get', 'name'],
['get', `name:${i18n.lang}`], ];
['get', 'name'],
];
}
if (
textField.length == 3 &&
textField[0] === 'coalesce' &&
Array.isArray(textField[1]) &&
textField[1][0] === 'get' &&
typeof textField[1][1] === 'string' &&
textField[1][1].startsWith('name')
) {
// OpenMapTiles styles
layer.layout['text-field'] = [
'coalesce',
['get', `name:${i18n.lang}`],
['get', 'name'],
];
}
} }
} }
style.layers.push(layer); style.layers.push(layer);
@@ -274,6 +236,10 @@ export class StyleManager {
getCurrentTerrain() { getCurrentTerrain() {
const terrain = get(terrainSource); const terrain = get(terrainSource);
const source = terrainSources[terrain];
if (source.url && source.url.includes(maptilerKeyPlaceHolder)) {
source.url = source.url.replace(maptilerKeyPlaceHolder, this._maptilerKey);
}
const map_ = get(this._map); const map_ = get(this._map);
return { return {
source: terrain, source: terrain,
+1 -1
View File
@@ -59,7 +59,7 @@ Only one basemap can be displayed at a time.
<DocsLayers /> <DocsLayers />
<span class="text-sm text-center mt-2"> <span class="text-sm text-center mt-2">
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap. Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
</span> </span>
</div> </div>
@@ -18,7 +18,7 @@ This tool allows you to add elevation data to traces and [points of interest](..
<DocsNote> <DocsNote>
Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>. Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>. You can learn more about its origin and accuracy in the <a href="https://docs.maptiler.com/guides/map-tiling-hosting/data-hosting/rgb-terrain-by-maptiler/" target="_blank">documentation</a>.
</DocsNote> </DocsNote>
+1 -1
View File
@@ -59,7 +59,7 @@ Met de kaartlagen knop kun je wisselen tussen verschillende basiskaarten, en kaa
<DocsLayers /> <DocsLayers />
<span class="text-sm text-center mt-2"> <span class="text-sm text-center mt-2">
Beweeg over de kaart om de <a href="https://hiking.waymarkedtrails.org" target="_blank">Gemarkeerde sporen wandelen</a> overlay te tonen bovenop de topografische basiskaart. Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
</span> </span>
</div> </div>
+2 -2
View File
@@ -13,9 +13,9 @@ title: Instellingen
Wijzig de eenheden die worden gebruikt om afstanden in de interface weer te geven. Wijzig de eenheden die worden gebruikt om afstanden in de interface weer te geven.
### <Zap size="16" class="inline-block" style="margin-bottom: 2px" /> Snelheidseenheden ### <Zap size="16" class="inline-block" style="margin-bottom: 2px" /> Snelheids eenheden
Verander de eenheden die worden gebruikt om snelheden in de interface weer te geven. Verander de eenheden die worden gebruikt om velocities in de interface weer te geven.
Je kunt kiezen tussen afstand per uur of minuten per afstand, wat geschikter kan zijn voor het uitvoeren van activiteiten. Je kunt kiezen tussen afstand per uur of minuten per afstand, wat geschikter kan zijn voor het uitvoeren van activiteiten.
### <Thermometer size="16" class="inline-block" style="margin-bottom: 2px" /> Temperatuureenheden ### <Thermometer size="16" class="inline-block" style="margin-bottom: 2px" /> Temperatuureenheden
@@ -18,7 +18,7 @@ Met dit gereedschap kun je hoogtegegevens toevoegen aan sporen en [interessante
<DocsNote> <DocsNote>
Hoogtegegevens worden verstrekt door <a href="https://maptiler.com" target="_blank">Mapterhorn</a>. Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
Je kunt meer leren over de oorsprong en nauwkeurigheid in de <a href="https://mapterhorn.com/attribution/" target="_blank">documentatie</a>. You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
</DocsNote> </DocsNote>
+1 -1
View File
@@ -59,7 +59,7 @@ title: 地图控件
<DocsLayers /> <DocsLayers />
<span class="text-sm text-center mt-2"> <span class="text-sm text-center mt-2">
鼠标悬停在地图上,可在地形图底图上方显示 <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails 徒步路线</a> 叠加层。 Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
</span> </span>
</div> </div>
@@ -18,7 +18,7 @@ title: 请求海拔数据
<DocsNote> <DocsNote>
海拔数据来自 <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a> Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
查阅 <a href="https://mapterhorn.com/attribution/" target="_blank">官方文档</a> 以了解海拔数据来源及其准确度。 You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
</DocsNote> </DocsNote>
+2 -2
View File
@@ -210,7 +210,7 @@ type RoutingProfile =
| 'motorcycle' | 'motorcycle'
| 'water' | 'water'
| 'railway'; | 'railway';
type TerrainSource = 'mapterhorn'; type TerrainSource = 'maptiler-dem' | 'mapterhorn';
type StreetViewSource = 'mapillary' | 'google'; type StreetViewSource = 'mapillary' | 'google';
export const settings = { export const settings = {
@@ -308,7 +308,7 @@ export const settings = {
terrainSource: new Setting<TerrainSource>( terrainSource: new Setting<TerrainSource>(
'terrainSource', 'terrainSource',
defaultTerrainSource, defaultTerrainSource,
getValueValidator(['mapterhorn'], defaultTerrainSource) getValueValidator(['maptiler-dem', 'mapterhorn'], defaultTerrainSource)
), ),
directionMarkers: new Setting('directionMarkers', false), directionMarkers: new Setting('directionMarkers', false),
distanceMarkers: new Setting('distanceMarkers', false), distanceMarkers: new Setting('distanceMarkers', false),
+10 -8
View File
@@ -7,6 +7,7 @@ import maplibregl from 'maplibre-gl';
import { pointToTile, pointToTileFraction } from '@mapbox/tilebelt'; import { pointToTile, pointToTileFraction } from '@mapbox/tilebelt';
import type { GPXStatisticsTree } from '$lib/logic/statistics-tree'; import type { GPXStatisticsTree } from '$lib/logic/statistics-tree';
import { ListTrackSegmentItem } from '$lib/components/file-list/file-list'; import { ListTrackSegmentItem } from '$lib/components/file-list/file-list';
import { PUBLIC_MAPTILER_KEY } from '$env/static/public';
export function cn(...inputs: ClassValue[]) { export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs)); return twMerge(clsx(inputs));
@@ -100,7 +101,7 @@ export function getClosestTrackSegments(
export function getElevation( export function getElevation(
points: (TrackPoint | Waypoint | Coordinates)[], points: (TrackPoint | Waypoint | Coordinates)[],
ELEVATION_ZOOM: number = 12, ELEVATION_ZOOM: number = 13,
tileSize = 512 tileSize = 512
): Promise<number[]> { ): Promise<number[]> {
let coordinates = points.map((point) => let coordinates = points.map((point) =>
@@ -121,9 +122,10 @@ export function getElevation(
}; };
let promises = uniqueTiles.map((tile) => let promises = uniqueTiles.map((tile) =>
fetch(`https://tiles.gpx.studio/mapterhorn/${ELEVATION_ZOOM}/${tile[0]}/${tile[1]}.webp`, { fetch(
cache: 'force-cache', `https://api.maptiler.com/tiles/terrain-rgb-v2/${ELEVATION_ZOOM}/${tile[0]}/${tile[1]}.webp?key=${PUBLIC_MAPTILER_KEY}`,
}) { cache: 'force-cache' }
)
.then((response) => response.blob()) .then((response) => response.blob())
.then( .then(
(blob) => (blob) =>
@@ -178,10 +180,10 @@ export function getElevation(
_y + (_y + 1 == tileSize ? 0 : 1) _y + (_y + 1 == tileSize ? 0 : 1)
); );
let ele00 = -32768 + p00[0] * 256 + p00[1] + p00[2] / 256; let ele00 = -10000 + (p00[0] * 256 * 256 + p00[1] * 256 + p00[2]) * 0.1;
let ele01 = -32768 + p01[0] * 256 + p01[1] + p01[2] / 256; let ele01 = -10000 + (p01[0] * 256 * 256 + p01[1] * 256 + p01[2]) * 0.1;
let ele10 = -32768 + p10[0] * 256 + p10[1] + p10[2] / 256; let ele10 = -10000 + (p10[0] * 256 * 256 + p10[1] * 256 + p10[2]) * 0.1;
let ele11 = -32768 + p11[0] * 256 + p11[1] + p11[2] / 256; let ele11 = -10000 + (p11[0] * 256 * 256 + p11[1] * 256 + p11[2]) * 0.1;
return ( return (
ele00 * (1 - dx) * (1 - dy) + ele00 * (1 - dx) * (1 - dy) +
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Switzerland", "switzerland": "Switzerland",
"united_kingdom": "United Kingdom", "united_kingdom": "United Kingdom",
"united_states": "United States", "united_states": "United States",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Suïssa", "switzerland": "Suïssa",
"united_kingdom": "Regne Unit", "united_kingdom": "Regne Unit",
"united_states": "Estats Units", "united_states": "Estats Units",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Švýcarsko", "switzerland": "Švýcarsko",
"united_kingdom": "Velká Británie", "united_kingdom": "Velká Británie",
"united_states": "Spojené státy", "united_states": "Spojené státy",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Switzerland", "switzerland": "Switzerland",
"united_kingdom": "United Kingdom", "united_kingdom": "United Kingdom",
"united_states": "United States", "united_states": "United States",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Schweiz", "switzerland": "Schweiz",
"united_kingdom": "Großbritannien", "united_kingdom": "Großbritannien",
"united_states": "USA", "united_states": "USA",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Switzerland", "switzerland": "Switzerland",
"united_kingdom": "United Kingdom", "united_kingdom": "United Kingdom",
"united_states": "United States", "united_states": "United States",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+6 -5
View File
@@ -235,7 +235,7 @@
}, },
"elevation": { "elevation": {
"button": "Request elevation data", "button": "Request elevation data",
"help": "Requesting elevation data will erase the existing elevation data, if any, and replace it with data from Mapterhorn.", "help": "Requesting elevation data will erase the existing elevation data, if any, and replace it with data from MapTiler.",
"help_no_selection": "Select a file item to request elevation data." "help_no_selection": "Select a file item to request elevation data."
}, },
"waypoint": { "waypoint": {
@@ -304,10 +304,10 @@
"switzerland": "Switzerland", "switzerland": "Switzerland",
"united_kingdom": "United Kingdom", "united_kingdom": "United Kingdom",
"united_states": "United States", "united_states": "United States",
"libertyTopo": "Liberty Topo", "maptilerStreets": "MapTiler Streets",
"libertySatellite": "Liberty Satellite", "maptilerTopo": "MapTiler Topo",
"osm": "OpenMapTiles OSM", "maptilerOutdoors": "MapTiler Outdoors",
"osmTopo": "OpenMapTiles OSM Topo", "maptilerSatellite": "MapTiler Satellite",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
@@ -388,6 +388,7 @@
"tram-stop": "Tram Stop", "tram-stop": "Tram Stop",
"bus-stop": "Bus Stop", "bus-stop": "Bus Stop",
"ferry": "Ferry", "ferry": "Ferry",
"maptiler-dem": "MapTiler DEM",
"mapterhorn": "Mapterhorn" "mapterhorn": "Mapterhorn"
} }
}, },
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Suiza", "switzerland": "Suiza",
"united_kingdom": "Reino Unido", "united_kingdom": "Reino Unido",
"united_states": "Estados Unidos", "united_states": "Estados Unidos",
"libertyTopo": "Liberty Topo", "topo": "Topográfico",
"libertySatellite": "Liberty Satellite", "satellite": "Satélite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Suitza", "switzerland": "Suitza",
"united_kingdom": "Erresuma Batua", "united_kingdom": "Erresuma Batua",
"united_states": "Ameriketako Estatu Batuak", "united_states": "Ameriketako Estatu Batuak",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Sveitsi", "switzerland": "Sveitsi",
"united_kingdom": "Iso-Britannia", "united_kingdom": "Iso-Britannia",
"united_states": "Yhdysvallat", "united_states": "Yhdysvallat",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Suisse", "switzerland": "Suisse",
"united_kingdom": "Royaume-Uni", "united_kingdom": "Royaume-Uni",
"united_states": "États-Unis", "united_states": "États-Unis",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Switzerland", "switzerland": "Switzerland",
"united_kingdom": "United Kingdom", "united_kingdom": "United Kingdom",
"united_states": "United States", "united_states": "United States",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Svájc", "switzerland": "Svájc",
"united_kingdom": "Anglia", "united_kingdom": "Anglia",
"united_states": "Amerika", "united_states": "Amerika",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Swiss", "switzerland": "Swiss",
"united_kingdom": "Britania Raya", "united_kingdom": "Britania Raya",
"united_states": "Amerika Serikat", "united_states": "Amerika Serikat",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Svizzera", "switzerland": "Svizzera",
"united_kingdom": "United Kingdom", "united_kingdom": "United Kingdom",
"united_states": "Stati Uniti", "united_states": "Stati Uniti",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "스위스", "switzerland": "스위스",
"united_kingdom": "영국", "united_kingdom": "영국",
"united_states": "미국", "united_states": "미국",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "오픈스트리트맵", "openStreetMap": "오픈스트리트맵",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Šveicarija", "switzerland": "Šveicarija",
"united_kingdom": "Jungtinė Karalystė", "united_kingdom": "Jungtinė Karalystė",
"united_states": "Jungtinės Amerikos Valstijos", "united_states": "Jungtinės Amerikos Valstijos",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Switzerland", "switzerland": "Switzerland",
"united_kingdom": "United Kingdom", "united_kingdom": "United Kingdom",
"united_states": "United States", "united_states": "United States",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+3 -5
View File
@@ -235,7 +235,7 @@
}, },
"elevation": { "elevation": {
"button": "Hoogtegegevens opvragen", "button": "Hoogtegegevens opvragen",
"help": "Het opvragen van hoogtegegevens verwijdert de bestaande hoogtegegevens, indien aanwezig, en vervangt deze door gegevens van Mapterhorn.", "help": "Requesting elevation data will erase the existing elevation data, if any, and replace it with data from Mapterhorn.",
"help_no_selection": "Selecteer een bestand om hoogte gegevens op te vragen." "help_no_selection": "Selecteer een bestand om hoogte gegevens op te vragen."
}, },
"waypoint": { "waypoint": {
@@ -304,10 +304,8 @@
"switzerland": "Zwitserland", "switzerland": "Zwitserland",
"united_kingdom": "Verenigd Koninkrijk", "united_kingdom": "Verenigd Koninkrijk",
"united_states": "Verenigde Staten", "united_states": "Verenigde Staten",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satelliet", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Sveits", "switzerland": "Sveits",
"united_kingdom": "Storbritannia", "united_kingdom": "Storbritannia",
"united_states": "USA", "united_states": "USA",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Szwajcaria", "switzerland": "Szwajcaria",
"united_kingdom": "Wielka Brytania", "united_kingdom": "Wielka Brytania",
"united_states": "Stany Zjednoczone", "united_states": "Stany Zjednoczone",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Suíça", "switzerland": "Suíça",
"united_kingdom": "Reino Unido", "united_kingdom": "Reino Unido",
"united_states": "Estados Unidos", "united_states": "Estados Unidos",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Suíça", "switzerland": "Suíça",
"united_kingdom": "Reino Unido", "united_kingdom": "Reino Unido",
"united_states": "Estados Unidos", "united_states": "Estados Unidos",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+24 -26
View File
@@ -28,7 +28,7 @@
"undo": "Anulează", "undo": "Anulează",
"redo": "Refă", "redo": "Refă",
"delete": "Șterge", "delete": "Șterge",
"delete_all": "Șterge tot", "delete_all": "Delete all",
"select_all": "Selectează tot", "select_all": "Selectează tot",
"view": "Vizualizare", "view": "Vizualizare",
"elevation_profile": "Profil de altitudine", "elevation_profile": "Profil de altitudine",
@@ -36,7 +36,7 @@
"switch_basemap": "Comutați la harta de bază anterioară", "switch_basemap": "Comutați la harta de bază anterioară",
"toggle_overlays": "Comută suprapunerile", "toggle_overlays": "Comută suprapunerile",
"toggle_3d": "Comută 3D", "toggle_3d": "Comută 3D",
"fullscreen": "Ecran complet", "fullscreen": "Full screen",
"settings": "Setări", "settings": "Setări",
"distance_units": "Unități de distanță", "distance_units": "Unități de distanță",
"metric": "Metric", "metric": "Metric",
@@ -62,46 +62,46 @@
"more": "Mai multe...", "more": "Mai multe...",
"donate": "Donați", "donate": "Donați",
"ctrl": "Ctrl", "ctrl": "Ctrl",
"click": "Clic", "click": "Click",
"drag": "Drag", "drag": "Drag",
"right_click_drag": "Right-click drag", "right_click_drag": "Right-click drag",
"metadata": { "metadata": {
"button": "Informații...", "button": "Info...",
"name": "Nume", "name": "Name",
"description": "Descriere", "description": "Descriere",
"save": "Salvează" "save": "Save"
}, },
"style": { "style": {
"button": "Aspect...", "button": "Aspect...",
"color": "Culoare", "color": "Color",
"opacity": "Opacitate", "opacity": "Opacitate",
"width": "Lățime" "width": "Width"
}, },
"hide": "Ascunde", "hide": "Ascunde",
"unhide": "Dezvăluie", "unhide": "Dezvăluie",
"center": "Centrează", "center": "Center",
"open_in": "Deschide în", "open_in": "Open in",
"copy_coordinates": "Copiază coordonatele", "copy_coordinates": "Copiază coordonatele",
"edit_osm": "Editează în OpenStreetMap" "edit_osm": "Edit in OpenStreetMap"
}, },
"toolbar": { "toolbar": {
"routing": { "routing": {
"tooltip": "Planifică sau editează o rută", "tooltip": "Planifică sau editează o rută",
"activity": "Activitate", "activity": "Activitate",
"use_routing": "Rutare", "use_routing": "Rutare",
"use_routing_tooltip": "Conectează puncte de ancorare prin rețeaua rutieră sau în linie dreaptă dacă este dezactivată", "use_routing_tooltip": "Connect anchor points via road network, or in a straight line if disabled",
"allow_private": "Permite drumuri private", "allow_private": "Allow private roads",
"reverse": { "reverse": {
"button": "Inversează", "button": "Reverse",
"tooltip": "Reverse the direction of the route" "tooltip": "Reverse the direction of the route"
}, },
"route_back_to_start": { "route_back_to_start": {
"button": "Înapoi la punctul de plecare", "button": "Back to start",
"tooltip": "Conectează ultimul punct al rutei cu punctul de plecare" "tooltip": "Connect the last point of the route with the starting point"
}, },
"round_trip": { "round_trip": {
"button": "Călătorie dus-întors", "button": "Round trip",
"tooltip": "Întoarce-te la punctul de plecare pe aceeași rută" "tooltip": "Return to the starting point by the same route"
}, },
"start_loop_here": "Start loop here", "start_loop_here": "Start loop here",
"help_no_file": "Select a trace to use the routing tool, or click on the map to start creating a new route.", "help_no_file": "Select a trace to use the routing tool, or click on the map to start creating a new route.",
@@ -120,7 +120,7 @@
"unknown": "Necunoscut", "unknown": "Necunoscut",
"paved": "Asfaltat", "paved": "Asfaltat",
"unpaved": "Unpaved", "unpaved": "Unpaved",
"asphalt": "Asfalt", "asphalt": "Asphalt",
"concrete": "Concrete", "concrete": "Concrete",
"cobblestone": "Pavaj", "cobblestone": "Pavaj",
"paving_stones": "Pavaj din pietre", "paving_stones": "Pavaj din pietre",
@@ -140,11 +140,11 @@
"grass": "Iarbă", "grass": "Iarbă",
"grass_paver": "Pavaj cu iarbă", "grass_paver": "Pavaj cu iarbă",
"clay": "Clay", "clay": "Clay",
"stone": "Piatră" "stone": "Stone"
}, },
"highway": { "highway": {
"unknown": "Necunoscut", "unknown": "Unknown",
"motorway": "Autostradă", "motorway": "Highway",
"motorway_link": "Highway link", "motorway_link": "Highway link",
"trunk": "Primary road", "trunk": "Primary road",
"trunk_link": "Primary road link", "trunk_link": "Primary road link",
@@ -304,10 +304,8 @@
"switzerland": "Elveția", "switzerland": "Elveția",
"united_kingdom": "Regatul Unit", "united_kingdom": "Regatul Unit",
"united_states": "Statele Unite ale Americii", "united_states": "Statele Unite ale Americii",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Швейцария", "switzerland": "Швейцария",
"united_kingdom": "Великобритания", "united_kingdom": "Великобритания",
"united_states": "Соединенные Штаты Америки", "united_states": "Соединенные Штаты Америки",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Švajcarska", "switzerland": "Švajcarska",
"united_kingdom": "Ujedinjeno Kraljevstvo", "united_kingdom": "Ujedinjeno Kraljevstvo",
"united_states": "Sjеdinjеnе Američke Državе", "united_states": "Sjеdinjеnе Američke Državе",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Schweiz", "switzerland": "Schweiz",
"united_kingdom": "Storbritannien", "united_kingdom": "Storbritannien",
"united_states": "USA", "united_states": "USA",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Switzerland", "switzerland": "Switzerland",
"united_kingdom": "United Kingdom", "united_kingdom": "United Kingdom",
"united_states": "United States", "united_states": "United States",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "İsviçre", "switzerland": "İsviçre",
"united_kingdom": "Birleşik Krallık", "united_kingdom": "Birleşik Krallık",
"united_states": "Birlişik Devletler", "united_states": "Birlişik Devletler",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Швейцарія", "switzerland": "Швейцарія",
"united_kingdom": "Велика Британія\nВеликобританія", "united_kingdom": "Велика Британія\nВеликобританія",
"united_states": "Сполучені Штати", "united_states": "Сполучені Штати",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Switzerland", "switzerland": "Switzerland",
"united_kingdom": "United Kingdom", "united_kingdom": "United Kingdom",
"united_states": "United States", "united_states": "United States",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+2 -4
View File
@@ -304,10 +304,8 @@
"switzerland": "Switzerland", "switzerland": "Switzerland",
"united_kingdom": "United Kingdom", "united_kingdom": "United Kingdom",
"united_states": "United States", "united_states": "United States",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
+3 -5
View File
@@ -235,7 +235,7 @@
}, },
"elevation": { "elevation": {
"button": "请求海拔数据", "button": "请求海拔数据",
"help": "请求成功后将移除原有的海拔数据,并使用 Mapterhorn 的海拔数据替换原有数据。", "help": "Requesting elevation data will erase the existing elevation data, if any, and replace it with data from Mapterhorn.",
"help_no_selection": "选择要请求海拔数据的文件。" "help_no_selection": "选择要请求海拔数据的文件。"
}, },
"waypoint": { "waypoint": {
@@ -304,10 +304,8 @@
"switzerland": "瑞士", "switzerland": "瑞士",
"united_kingdom": "英国", "united_kingdom": "英国",
"united_states": "美国", "united_states": "美国",
"libertyTopo": "Liberty Topo", "topo": "Topo",
"libertySatellite": "Liberty Satellite", "satellite": "Satellite",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite", "esriSatellite": "Esri Satellite",
"openStreetMap": "OpenStreetMap", "openStreetMap": "OpenStreetMap",
"openTopoMap": "OpenTopoMap", "openTopoMap": "OpenTopoMap",
@@ -19,8 +19,8 @@
return; return;
} }
embeddingOptions = getMergedEmbeddingOptions(options); embeddingOptions = getMergedEmbeddingOptions(options);
if (embeddingOptions.key === '' && embeddingOptions.basemap === 'satellite') { if (embeddingOptions.key === '' && embeddingOptions.basemap.startsWith('maptiler')) {
embeddingOptions.basemap = 'libertyTopo'; embeddingOptions.basemap = 'openStreetMap';
} }
}); });
</script> </script>
+47
View File
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Vrstva_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 812 212" style="enable-background:new 0 0 812 212;" xml:space="preserve">
<style type="text/css">
.st0{fill:#3A1888;}
.st1{fill:#03A1C4;}
.st2{fill:#05D0DF;}
.st3{fill:#761FE8;}
.st4{fill:#FFAA01;}
.st5{fill:#F1175D;}
.st6{fill:#FB3A1B;}
.st7{fill:#FBC935;}
.st8{fill:#FFFFFF;}
</style>
<g>
<path class="st0" d="M94.3,164.2c9.2,9.2,33.8,34.3,33.8,34.3c-0.1,0.2,24.4-24.5,34.2-34.2l-34.1-34.1L94.3,164.2z"/>
<path class="st1" d="M128.3,130.2l34.1,34.1c0.1-0.1,0.1-0.1,0.2-0.2l34-34L162.5,96L128.3,130.2z"/>
<path class="st2" d="M196.6,130.1L196.6,130.1c18.9-18.9,18.9-49.4,0.1-68.3L162.5,96L196.6,130.1z"/>
<path class="st3" d="M94.1,96l-34,34c0,0,0,0,0,0l34.1,34.1c0,0,0,0,0.1,0.1l34-34L94.1,96z"/>
<path class="st4" d="M128.3,61.8L162.5,96l34.2-34.2c0,0,0,0-0.1-0.1l-34.1-34.1c0,0,0,0,0,0L128.3,61.8z"/>
<path class="st5" d="M60,61.9c-18.7,18.9-18.6,49.3,0.1,68.1l34-34L60,61.9z"/>
<path class="st6" d="M128.3,61.8L94.2,27.7l-34,34c-0.1,0.1-0.1,0.1-0.2,0.2L94.1,96L128.3,61.8z"/>
<path class="st7" d="M162.5,27.6c-18.9-18.8-49.4-18.8-68.2,0l-0.1,0.1l34.1,34.1L162.5,27.6z"/>
</g>
<path class="st8" d="M303.8,138.6v-34.9c0-8.6-4.5-16.4-13.3-16.4c-8.7,0-13.9,7.8-13.9,16.4v34.9h-16.1V73.4h14.9l1.2,7.9
c3.4-6.6,11-9,17.2-9c7.8,0,15.6,3.2,19.3,12.2c5.8-9.2,13.3-11.9,21.8-11.9c18.5,0,27.6,11.4,27.6,30.9v35.1h-16.1v-35.1
c0-8.6-3.6-15.9-12.3-15.9c-8.7,0-14.1,7.5-14.1,16.1v34.9H303.8z"/>
<path class="st8" d="M430.5,73.5h15.5v65.1h-15.2l-0.8-9.5c-3.7,7.7-13.9,11.4-21.1,11.5c-19.3,0.1-33.6-11.8-33.6-34.6
c0-22.5,14.9-34.2,34-34.1c8.7,0,17,4.1,20.7,10.6L430.5,73.5z M391.4,106c0,12.4,8.6,19.8,19.3,19.8c25.4,0,25.4-39.5,0-39.5
C399.9,86.3,391.4,93.6,391.4,106z"/>
<path class="st8" d="M459.5,165.8V73.5h15.1l1.1,9c5-7.3,13.7-10.4,21.1-10.4c20.1,0,33.4,14.9,33.4,34.1c0,19-12,34.1-32.9,34.1
c-6.9,0-17-2.1-21.7-9.3v34.9H459.5z M514.1,106.1c0-10.2-6.9-18.5-18.5-18.5c-11.6,0-18.5,8.3-18.5,18.5c0,10.2,7.5,18.5,18.5,18.5
C506.6,124.6,514.1,116.3,514.1,106.1z"/>
<path class="st8" d="M559,53.7v19.7h22.2v5.4H559v39.8c0,8.8,1.9,15.1,12,15.1c3.2,0,6.7-1.1,10-2.6l2.2,5.3
c-4.1,2-8.2,3.3-12.3,3.3c-13.9,0-18.4-8.2-18.4-21V78.8h-13.9v-5.4h13.9v-19L559,53.7z"/>
<path class="st8" d="M604.7,52.1c0,6.9-10.4,6.9-10.4,0C594.3,45.2,604.7,45.2,604.7,52.1z M596.1,73.1v65.5h6.5V73.1H596.1z"/>
<path class="st8" d="M627.6,46.2v92.5h-6.5V46.2H627.6z"/>
<path class="st8" d="M730.2,73.4l0.3,11.6c4.1-8.9,13.3-12.3,21.7-12.3c4.9-0.1,9.6,1.2,14,3.8l-2.9,5.3c-3.4-2.1-7.3-3-11.1-3
c-12.2,0.1-21.5,9.9-21.5,21.8v38h-6.5V73.4H730.2z"/>
<g>
<path class="st8" d="M675.1,134.7c-11.5,0-21.4-7.2-25.5-17.4l0,0l0,0c0,0,0,0,0,0l52.8-14c0,0,0,0,0,0.1l5.6-1.5
c-2.3-16.5-16.2-29.3-33-29.3c-18.4,0-33.3,15.2-33.3,34c0,18.8,14.9,34,33.3,34c13.8,0,25.6-8.5,30.6-20.7l-5.3-2.3
C696.2,127.6,686.4,134.7,675.1,134.7z M647.5,106.6c0-15.5,12.3-28.1,27.5-28.1c11.9,0,22,7.7,25.9,18.5L647.9,111
C647.6,109.5,647.5,108.1,647.5,106.6z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

+45
View File
@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Vrstva_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 812 212" style="enable-background:new 0 0 812 212;" xml:space="preserve">
<style type="text/css">
.st0{fill:#3A1888;}
.st1{fill:#03A1C4;}
.st2{fill:#05D0DF;}
.st3{fill:#761FE8;}
.st4{fill:#FFAA01;}
.st5{fill:#F1175D;}
.st6{fill:#FB3A1B;}
.st7{fill:#FBC935;}
.st8{fill:#333359;}
</style>
<path class="st0" d="M94.3,164.2c9.2,9.2,33.8,34.3,33.8,34.3c-0.1,0.2,24.4-24.5,34.2-34.2l-34.1-34.1L94.3,164.2z"/>
<path class="st1" d="M128.3,130.2l34.1,34.1c0.1-0.1,0.1-0.1,0.2-0.2l34-34L162.5,96L128.3,130.2z"/>
<path class="st2" d="M196.6,130.1L196.6,130.1c18.9-18.9,18.9-49.4,0.1-68.3L162.5,96L196.6,130.1z"/>
<path class="st3" d="M94.1,96l-34,34c0,0,0,0,0,0l34.1,34.1c0,0,0,0,0.1,0.1l34-34L94.1,96z"/>
<path class="st4" d="M128.3,61.8L162.5,96l34.2-34.2c0,0,0,0-0.1-0.1l-34.1-34.1c0,0,0,0,0,0L128.3,61.8z"/>
<path class="st5" d="M60,61.9c-18.7,18.9-18.6,49.3,0.1,68.1l34-34L60,61.9z"/>
<path class="st6" d="M128.3,61.8L94.2,27.7l-34,34c-0.1,0.1-0.1,0.1-0.2,0.2L94.1,96L128.3,61.8z"/>
<path class="st7" d="M162.5,27.6c-18.9-18.8-49.4-18.8-68.2,0l-0.1,0.1l34.1,34.1L162.5,27.6z"/>
<path class="st8" d="M303.7,138.6v-34.9c0-8.6-4.5-16.4-13.3-16.4c-8.7,0-13.9,7.8-13.9,16.4v34.9h-16.1V73.4h14.9l1.2,7.9
c3.4-6.6,11-9,17.2-9c7.8,0,15.6,3.2,19.3,12.2c5.8-9.2,13.3-11.9,21.8-11.9c18.5,0,27.6,11.4,27.6,30.9v35.1h-16.1v-35.1
c0-8.6-3.6-15.9-12.3-15.9c-8.7,0-14.1,7.5-14.1,16.1v34.9H303.7z"/>
<path class="st8" d="M430.3,73.5h15.5v65.1h-15.2l-0.8-9.5c-3.7,7.7-13.9,11.4-21.1,11.5c-19.3,0.1-33.6-11.8-33.6-34.6
c0-22.5,14.9-34.2,34-34.1c8.7,0,17,4.1,20.7,10.6L430.3,73.5z M391.2,106c0,12.4,8.6,19.8,19.3,19.8c25.4,0,25.4-39.5,0-39.5
C399.8,86.3,391.2,93.6,391.2,106z"/>
<path class="st8" d="M459.4,165.8V73.5h15.1l1.1,9c5-7.3,13.7-10.4,21.1-10.4c20.1,0,33.4,14.9,33.4,34.1c0,19-12,34.1-32.9,34.1
c-6.9,0-17-2.1-21.7-9.3v34.9H459.4z M514,106.1c0-10.2-6.9-18.5-18.5-18.5c-11.6,0-18.5,8.3-18.5,18.5c0,10.2,7.5,18.5,18.5,18.5
C506.4,124.6,514,116.3,514,106.1z"/>
<path class="st8" d="M558.9,53.7v19.7h22.2v5.4h-22.2v39.8c0,8.8,1.9,15.1,12,15.1c3.2,0,6.7-1.1,10-2.6l2.2,5.3
c-4.1,2-8.2,3.3-12.3,3.3c-13.9,0-18.4-8.2-18.4-21V78.8h-13.9v-5.4h13.9v-19L558.9,53.7z"/>
<path class="st8" d="M604.6,52.1c0,6.9-10.4,6.9-10.4,0C594.1,45.2,604.6,45.2,604.6,52.1z M596,73.1v65.5h6.5V73.1H596z"/>
<path class="st8" d="M627.4,46.2v92.5H621V46.2H627.4z"/>
<path class="st8" d="M730.1,73.4l0.3,11.6c4.1-8.9,13.3-12.3,21.7-12.3c4.9-0.1,9.6,1.2,14,3.8l-2.9,5.3c-3.4-2.1-7.3-3-11.1-3
c-12.2,0.1-21.5,9.9-21.5,21.8v38H724V73.4H730.1z"/>
<g>
<path class="st8" d="M674.9,134.7c-11.5,0-21.4-7.2-25.5-17.4l0,0l0,0c0,0,0,0,0,0l52.8-14c0,0,0,0,0,0.1l5.6-1.5
c-2.3-16.5-16.2-29.3-33-29.3c-18.4,0-33.3,15.2-33.3,34c0,18.8,14.9,34,33.3,34c13.8,0,25.6-8.5,30.6-20.7l-5.3-2.3
C696.1,127.6,686.3,134.7,674.9,134.7z M647.4,106.6c0-15.5,12.3-28.1,27.5-28.1c11.9,0,22,7.7,25.9,18.5L647.7,111
C647.5,109.5,647.4,108.1,647.4,106.6z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB