Compare commits
98 Commits
l10n
..
9ee1c1cd5a
| Author | SHA1 | Date | |
|---|---|---|---|
| 9ee1c1cd5a | |||
| 3720f3bf4e | |||
| b8580b99ff | |||
| bd3f0b706f | |||
| ab8da39cfa | |||
| b97622e663 | |||
| 38a935db36 | |||
| d9b73deaa8 | |||
| 7425fbfeaa | |||
| 7638e5dc3c | |||
| eea43ae6d2 | |||
| 21cf4d0585 | |||
| 888e7fbb9f | |||
| 9b613e7fc9 | |||
| 8c6ed3819d | |||
| 797f11565f | |||
| c136f58ddf | |||
| 4103bb0840 | |||
| b2b911918d | |||
| 55db10459a | |||
| 0db07cd1d4 | |||
| dfe9fbe0b4 | |||
| 2d184a8e04 | |||
| acf355584a | |||
| e49767321c | |||
| b544dcc373 | |||
| d63dff34a4 | |||
| 6da81b38f1 | |||
| c53c4ab136 | |||
| a14422be71 | |||
| a41c600d23 | |||
| d1ace62410 | |||
| ca404985a9 | |||
| f6ffb5afb4 | |||
| 796c88258f | |||
| c23af4981a | |||
| 2a7a444848 | |||
| 947c522187 | |||
| 37d6fa3562 | |||
| e8ef5ba125 | |||
| e3d787029a | |||
| 6bfd3e9560 | |||
| ecc4591503 | |||
| b7b042b44c | |||
| 376ddae828 | |||
| ced901d935 | |||
| f3464f235f | |||
| 66d7bb7399 | |||
| 6934def87f | |||
| 491ce645ff | |||
| b924f410ea | |||
| 088d4418b9 | |||
| bb312a1bf3 | |||
| 90fd5bba21 | |||
| d6aaccbfa0 | |||
| 7c913e7d0d | |||
| 54d28410bb | |||
| c521183c16 | |||
| 33b1dff236 | |||
| 6493006f9f | |||
| 259fe3fec9 | |||
| 7678a7f93a | |||
| 826f58fb9a | |||
| da33d848a2 | |||
| 6825228c76 | |||
| 5227e8bcf6 | |||
| 347d40d973 | |||
| 3f711505de | |||
| e2852b721a | |||
| a775f6fb0b | |||
| 9bf8e365e4 | |||
| 34b6bfe306 | |||
| 707c1f9c5a | |||
| ef722839f4 | |||
| 33ccf3154b | |||
| f4629dc0dc | |||
| 2393079067 | |||
| 40972be26a | |||
| 8b7742ef78 | |||
| 3c15d9d061 | |||
| c56d750bb3 | |||
| 4dfc1b26b1 | |||
| 1de19a85eb | |||
| 3630953f4b | |||
| b211e36ed3 | |||
| fcb3bebdba | |||
| 923d61547d | |||
| aaff9045e4 | |||
| 22b8880a9e | |||
| b7216f9b77 | |||
| df55eb59f5 | |||
| a83d9afe51 | |||
| e449308563 | |||
| 23179716b1 | |||
| b532a5d40a | |||
| 78796f9d8f | |||
| 17c81e22e0 | |||
| ca72b7a368 |
|
Before Width: | Height: | Size: 313 KiB After Width: | Height: | Size: 339 KiB |
|
Before Width: | Height: | Size: 729 KiB |
|
Before Width: | Height: | Size: 308 KiB |
|
Before Width: | Height: | Size: 525 KiB After Width: | Height: | Size: 1.7 MiB |
|
Before Width: | Height: | Size: 710 KiB After Width: | Height: | Size: 1.9 MiB |
|
After Width: | Height: | Size: 2.8 MiB |
|
After Width: | Height: | Size: 348 KiB |
@@ -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';
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
if (this._maptilerKey !== '') {
|
||||||
const terrain = this.getCurrentTerrain();
|
const terrain = this.getCurrentTerrain();
|
||||||
style.sources[terrain.source] = terrainSources[terrain.source];
|
style.sources[terrain.source] = terrainSources[terrain.source];
|
||||||
style.terrain = terrain.exaggeration > 0 ? terrain : undefined;
|
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,40 +205,18 @@ 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 (
|
||||||
textField.length == 4 &&
|
Array.isArray(textField) &&
|
||||||
Array.isArray(textField[3]) &&
|
textField.length >= 2 &&
|
||||||
textField[3][0] === 'coalesce' &&
|
|
||||||
Array.isArray(textField[3][1]) &&
|
|
||||||
textField[3][1][0] === 'get' &&
|
|
||||||
typeof textField[3][1][1] === 'string' &&
|
|
||||||
textField[3][1][1].startsWith('name')
|
|
||||||
) {
|
|
||||||
// OpenFreeMap styles
|
|
||||||
layer.layout['text-field'] = [
|
|
||||||
'coalesce',
|
|
||||||
['get', `name:${i18n.lang}`],
|
|
||||||
['get', 'name'],
|
|
||||||
];
|
|
||||||
}
|
|
||||||
if (
|
|
||||||
textField.length == 3 &&
|
|
||||||
textField[0] === 'coalesce' &&
|
textField[0] === 'coalesce' &&
|
||||||
Array.isArray(textField[1]) &&
|
Array.isArray(textField[1]) &&
|
||||||
textField[1][0] === 'get' &&
|
textField[1][0] === 'get' &&
|
||||||
typeof textField[1][1] === 'string' &&
|
typeof textField[1][1] === 'string' &&
|
||||||
textField[1][1].startsWith('name')
|
textField[1][1].startsWith('name')
|
||||||
) {
|
) {
|
||||||
// OpenMapTiles styles
|
|
||||||
layer.layout['text-field'] = [
|
layer.layout['text-field'] = [
|
||||||
'coalesce',
|
'coalesce',
|
||||||
['get', `name:${i18n.lang}`],
|
['get', `name:${i18n.lang}`],
|
||||||
@@ -261,7 +224,6 @@ export class StyleManager {
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
style.layers.push(layer);
|
style.layers.push(layer);
|
||||||
}
|
}
|
||||||
if (other.sprite && !style.sprite) {
|
if (other.sprite && !style.sprite) {
|
||||||
@@ -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,
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -59,7 +59,7 @@ El botón de capas de mapa le permite cambiar entre diferentes mapas bases y alt
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
Pasa el ratón sobre el mapa para que la capa de <a href="https://hiking.waymarkedtrails.org" target="_blank">Caminatas por Sendas Marcadas</a> aparezca superpuesta al mapa base topográfico.
|
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 @@ Esta herramienta permite añadir datos de elevación a los rastros y [puntos de
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Los datos de elevación son proporcionados por <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
||||||
Puede aprender más sobre su origen y precisión en la <a href="https://mapterhorn.com/attribution/" target="_blank">documentación</a>.
|
You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: 常見問題
|
title: FAQ
|
||||||
---
|
---
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -8,7 +8,7 @@ title: 常見問題
|
|||||||
|
|
||||||
# { title }
|
# { title }
|
||||||
|
|
||||||
### 需要捐贈才能使用這網站嗎?
|
### Do I need to donate to use the website?
|
||||||
|
|
||||||
No.
|
No.
|
||||||
The website is free to use and always will be (as long as it is financially sustainable).
|
The website is free to use and always will be (as long as it is financially sustainable).
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: 設定
|
title: Settings
|
||||||
---
|
---
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
@@ -9,7 +9,7 @@ title: 設定
|
|||||||
|
|
||||||
# { title }
|
# { title }
|
||||||
|
|
||||||
### <Ruler size="16" class="inline-block" style="margin-bottom: 2px" /> 距離單位
|
### <Ruler size="16" class="inline-block" style="margin-bottom: 2px" /> Distance units
|
||||||
|
|
||||||
Change the units used to display distances in the interface.
|
Change the units used to display distances in the interface.
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ title: Route planning and editing
|
|||||||
|
|
||||||
The route planning and editing tool allows you to create and edit routes by placing or moving anchor points on the map.
|
The route planning and editing tool allows you to create and edit routes by placing or moving anchor points on the map.
|
||||||
|
|
||||||
## 設定
|
## Settings
|
||||||
|
|
||||||
As shown below, the tool dialog contains a few settings to control the routing behavior.
|
As shown below, the tool dialog contains a few settings to control the routing behavior.
|
||||||
You can minimize the dialog to save space by clicking on <button><SquareArrowUpLeft size="16" class="inline-block" style="margin-bottom: 2px" /></button>.
|
You can minimize the dialog to save space by clicking on <button><SquareArrowUpLeft size="16" class="inline-block" style="margin-bottom: 2px" /></button>.
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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),
|
||||||
|
|||||||
@@ -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) +
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -235,7 +235,7 @@
|
|||||||
},
|
},
|
||||||
"elevation": {
|
"elevation": {
|
||||||
"button": "Solicitar datos de desnivel",
|
"button": "Solicitar datos de desnivel",
|
||||||
"help": "La solicitud de datos de elevación borrará los datos de elevación existentes, si los hay, y los reemplazará con datos de Mapterhorn.",
|
"help": "Requesting elevation data will erase the existing elevation data, if any, and replace it with data from Mapterhorn.",
|
||||||
"help_no_selection": "Seleccione un elemento del archivo para solicitar datos de desnivel."
|
"help_no_selection": "Seleccione un elemento del archivo para solicitar datos de desnivel."
|
||||||
},
|
},
|
||||||
"waypoint": {
|
"waypoint": {
|
||||||
@@ -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": "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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -4,310 +4,308 @@
|
|||||||
"app_title": "app",
|
"app_title": "app",
|
||||||
"embed_title": "",
|
"embed_title": "",
|
||||||
"help_title": "",
|
"help_title": "",
|
||||||
"404_title": "無法找到相關頁面",
|
"404_title": "page not found",
|
||||||
"description": "。"
|
"description": "。"
|
||||||
},
|
},
|
||||||
"menu": {
|
"menu": {
|
||||||
"new": "新建",
|
"new": "New",
|
||||||
"new_file": "新增檔案",
|
"new_file": "New file",
|
||||||
"new_track": "新增路徑",
|
"new_track": "New track",
|
||||||
"new_segment": "新增路段",
|
"new_segment": "New segment",
|
||||||
"open": "開啟...",
|
"open": "Open...",
|
||||||
"duplicate": "建立副本",
|
"duplicate": "Duplicate",
|
||||||
"copy": "複製",
|
"copy": "Copy",
|
||||||
"paste": "貼上",
|
"paste": "Paste",
|
||||||
"cut": "剪下",
|
"cut": "剪下",
|
||||||
"export": "匯出……",
|
"export": "匯出……",
|
||||||
"export_all": "匯出所有……",
|
"export_all": "匯出所有……",
|
||||||
"export_options": "匯出選項",
|
"export_options": "Export options",
|
||||||
"support_message": "本工具免費使用,但運行此網站有成本。若您經常使用,請考慮捐贈以支持我們。非常感謝!",
|
"support_message": "The tool is free to use, but not free to run. Please consider supporting the website if you use it frequently. Thank you!",
|
||||||
"support_button": "幫助網站保持免費",
|
"support_button": "Help keep the website free",
|
||||||
"download_file": "下載檔案",
|
"download_file": "Download file",
|
||||||
"download_files": "下載所有檔案",
|
"download_files": "Download files",
|
||||||
"edit": "編輯",
|
"edit": "Edit",
|
||||||
"undo": "復原",
|
"undo": "Undo",
|
||||||
"redo": "重做",
|
"redo": "Redo",
|
||||||
"delete": "刪除",
|
"delete": "Delete",
|
||||||
"delete_all": "全部刪除",
|
"delete_all": "Delete all",
|
||||||
"select_all": "全選",
|
"select_all": "Select all",
|
||||||
"view": "顯示",
|
"view": "View",
|
||||||
"elevation_profile": "海拔剖面圖",
|
"elevation_profile": "Elevation profile",
|
||||||
"tree_file_view": "檔案樹狀圖",
|
"tree_file_view": "File tree",
|
||||||
"switch_basemap": "切換到上一個底圖",
|
"switch_basemap": "Switch to previous basemap",
|
||||||
"toggle_overlays": "切換疊加層",
|
"toggle_overlays": "Toggle overlays",
|
||||||
"toggle_3d": "切換三維檢視",
|
"toggle_3d": "Toggle 3D",
|
||||||
"fullscreen": "全螢幕",
|
"fullscreen": "Full screen",
|
||||||
"settings": "設定",
|
"settings": "Settings",
|
||||||
"distance_units": "距離單位",
|
"distance_units": "Distance units",
|
||||||
"metric": "公制",
|
"metric": "Metric",
|
||||||
"imperial": "英制",
|
"imperial": "Imperial",
|
||||||
"nautical": "航海",
|
"nautical": "Nautical",
|
||||||
"velocity_units": "速度單位",
|
"velocity_units": "Velocity units",
|
||||||
"temperature_units": "溫度單位",
|
"temperature_units": "Temperature units",
|
||||||
"celsius": "攝氏",
|
"celsius": "Celsius",
|
||||||
"fahrenheit": "華氏",
|
"fahrenheit": "Fahrenheit",
|
||||||
"language": "語言",
|
"language": "Language",
|
||||||
"mode": "主題",
|
"mode": "Theme",
|
||||||
"system": "系統",
|
"system": "System",
|
||||||
"light": "淺色",
|
"light": "Light",
|
||||||
"dark": "深色",
|
"dark": "Dark",
|
||||||
"street_view_source": "街景原始檔",
|
"street_view_source": "街景原始檔",
|
||||||
"mapillary": "Mapillary",
|
"mapillary": "Mapillary",
|
||||||
"google": "Google",
|
"google": "Google",
|
||||||
"toggle_street_view": "街景",
|
"toggle_street_view": "Street view",
|
||||||
"layers": "地圖圖層...",
|
"layers": "Map layers...",
|
||||||
"distance_markers": "距離標記",
|
"distance_markers": "Distance markers",
|
||||||
"direction_markers": "方向箭頭",
|
"direction_markers": "Direction arrows",
|
||||||
"help": "幫助",
|
"help": "Help",
|
||||||
"more": "更多...",
|
"more": "More...",
|
||||||
"donate": "捐贈",
|
"donate": "Donate",
|
||||||
"ctrl": "Ctrl",
|
"ctrl": "Ctrl",
|
||||||
"click": "點選",
|
"click": "Click",
|
||||||
"drag": "拖動",
|
"drag": "Drag",
|
||||||
"right_click_drag": "右鍵拖動",
|
"right_click_drag": "Right-click drag",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"button": "資訊...",
|
"button": "Info...",
|
||||||
"name": "名稱",
|
"name": "Name",
|
||||||
"description": "說明",
|
"description": "Description",
|
||||||
"save": "保存"
|
"save": "Save"
|
||||||
},
|
},
|
||||||
"style": {
|
"style": {
|
||||||
"button": "外觀...",
|
"button": "Appearance...",
|
||||||
"color": "配色",
|
"color": "Color",
|
||||||
"opacity": "透明度",
|
"opacity": "Opacity",
|
||||||
"width": "闊度"
|
"width": "Width"
|
||||||
},
|
},
|
||||||
"hide": "隱藏",
|
"hide": "Hide",
|
||||||
"unhide": "取消隱藏",
|
"unhide": "Unhide",
|
||||||
"center": "置中",
|
"center": "Center",
|
||||||
"open_in": "打開於",
|
"open_in": "Open in",
|
||||||
"copy_coordinates": "複製座標",
|
"copy_coordinates": "Copy coordinates",
|
||||||
"edit_osm": "在 OpenStreetMap 中編輯"
|
"edit_osm": "Edit in OpenStreetMap"
|
||||||
},
|
},
|
||||||
"toolbar": {
|
"toolbar": {
|
||||||
"routing": {
|
"routing": {
|
||||||
"tooltip": "規劃或編輯路線",
|
"tooltip": "Plan or edit a route",
|
||||||
"activity": "活動",
|
"activity": "Activity",
|
||||||
"use_routing": "路線",
|
"use_routing": "Routing",
|
||||||
"use_routing_tooltip": "通過路網連接錨點,若停用用直線連接",
|
"use_routing_tooltip": "Connect anchor points via road network, or in a straight line if disabled",
|
||||||
"allow_private": "允許私家路",
|
"allow_private": "Allow private roads",
|
||||||
"reverse": {
|
"reverse": {
|
||||||
"button": "反向",
|
"button": "Reverse",
|
||||||
"tooltip": "反轉路線方向"
|
"tooltip": "Reverse the direction of the route"
|
||||||
},
|
},
|
||||||
"route_back_to_start": {
|
"route_back_to_start": {
|
||||||
"button": "返回起點",
|
"button": "Back to start",
|
||||||
"tooltip": "連接路線的起點與終點"
|
"tooltip": "Connect the last point of the route with the starting point"
|
||||||
},
|
},
|
||||||
"round_trip": {
|
"round_trip": {
|
||||||
"button": "往返路線",
|
"button": "Round trip",
|
||||||
"tooltip": "按原路返回起點"
|
"tooltip": "Return to the starting point by the same route"
|
||||||
},
|
},
|
||||||
"start_loop_here": "在此開始循環",
|
"start_loop_here": "Start loop here",
|
||||||
"help_no_file": "選擇軌跡進行編輯,或在地圖上點選以建立新路線。",
|
"help_no_file": "Select a trace to use the routing tool, or click on the map to start creating a new route.",
|
||||||
"help": "點選地圖以加入新錨點,或拖動現有錨點以改變路線。",
|
"help": "Click on the map to add a new anchor point, or drag existing ones to change the route.",
|
||||||
"activities": {
|
"activities": {
|
||||||
"bike": "單車",
|
"bike": "Bike",
|
||||||
"racing_bike": "公路單車",
|
"racing_bike": "Road bike",
|
||||||
"gravel_bike": "礫石單車",
|
"gravel_bike": "Gravel bike",
|
||||||
"mountain_bike": "越野單車",
|
"mountain_bike": "Mountain bike",
|
||||||
"foot": "跑步/遠足",
|
"foot": "Run/hike",
|
||||||
"motorcycle": "電單車",
|
"motorcycle": "Motorcycle",
|
||||||
"water": "水上活動",
|
"water": "Water",
|
||||||
"railway": "鐵路"
|
"railway": "Railway"
|
||||||
},
|
},
|
||||||
"surface": {
|
"surface": {
|
||||||
"unknown": "未知",
|
"unknown": "Unknown",
|
||||||
"paved": "鋪砌路面",
|
"paved": "Paved",
|
||||||
"unpaved": "未鋪砌路面",
|
"unpaved": "Unpaved",
|
||||||
"asphalt": "瀝青路",
|
"asphalt": "Asphalt",
|
||||||
"concrete": "混凝土",
|
"concrete": "Concrete",
|
||||||
"cobblestone": "鵝卵石",
|
"cobblestone": "Cobblestone",
|
||||||
"paving_stones": "鋪路石",
|
"paving_stones": "鋪路石",
|
||||||
"sett": "石板",
|
"sett": "石板",
|
||||||
"metal": "金屬",
|
"metal": "Metal",
|
||||||
"wood": "木材",
|
"wood": "Wood",
|
||||||
"compacted": "壓實的礫石",
|
"compacted": "Compacted gravel",
|
||||||
"fine_gravel": "細礫",
|
"fine_gravel": "Fine gravel",
|
||||||
"gravel": "砂礫",
|
"gravel": "Gravel",
|
||||||
"pebblestone": "卵石",
|
"pebblestone": "Pebblestone",
|
||||||
"rock": "岩石",
|
"rock": "Rock",
|
||||||
"dirt": "泥土",
|
"dirt": "Dirt",
|
||||||
"ground": "地面",
|
"ground": "Ground",
|
||||||
"earth": "土地",
|
"earth": "Earth",
|
||||||
"mud": "泥地",
|
"mud": "Mud",
|
||||||
"sand": "沙粒",
|
"sand": "Sand",
|
||||||
"grass": "草地",
|
"grass": "Grass",
|
||||||
"grass_paver": "草坪",
|
"grass_paver": "Grass paver",
|
||||||
"clay": "黏土",
|
"clay": "Clay",
|
||||||
"stone": "石頭"
|
"stone": "Stone"
|
||||||
},
|
},
|
||||||
"highway": {
|
"highway": {
|
||||||
"unknown": "未知類型",
|
"unknown": "Unknown",
|
||||||
"motorway": "高速公路",
|
"motorway": "Highway",
|
||||||
"motorway_link": "高速公路引道",
|
"motorway_link": "Highway link",
|
||||||
"trunk": "快速公路",
|
"trunk": "Primary road",
|
||||||
"trunk_link": "快速公路連接路",
|
"trunk_link": "Primary road link",
|
||||||
"primary": "快速公路",
|
"primary": "Primary road",
|
||||||
"primary_link": "快速公路連接路",
|
"primary_link": "Primary road link",
|
||||||
"secondary": "主要道路",
|
"secondary": "Secondary road",
|
||||||
"secondary_link": "主要道路連接路",
|
"secondary_link": "Secondary road link",
|
||||||
"tertiary": "支路",
|
"tertiary": "Tertiary road",
|
||||||
"tertiary_link": "支路連接路",
|
"tertiary_link": "Tertiary road link",
|
||||||
"unclassified": "小路",
|
"unclassified": "Minor road",
|
||||||
"residential": "居住區道路",
|
"residential": "Residential road",
|
||||||
"living_street": "住宅街道",
|
"living_street": "Living street",
|
||||||
"service": "輔助道路",
|
"service": "Service road",
|
||||||
"track": "小徑(未鋪設道路)",
|
"track": "Track",
|
||||||
"footway": "徑",
|
"footway": "Footway",
|
||||||
"path": "小徑",
|
"path": "Path",
|
||||||
"pedestrian": "行人路",
|
"pedestrian": "Pedestrian",
|
||||||
"cycleway": "單車徑",
|
"cycleway": "Cycleway",
|
||||||
"steps": "石級",
|
"steps": "Steps",
|
||||||
"road": "道路",
|
"road": "Road",
|
||||||
"bridleway": "馬道",
|
"bridleway": "Horseriding path",
|
||||||
"platform": "停靠站台",
|
"platform": "Platform",
|
||||||
"raceway": "競賽賽道",
|
"raceway": "競賽賽道",
|
||||||
"rest_area": "停車區",
|
"rest_area": "Rest area",
|
||||||
"abandoned": "廢棄道路",
|
"abandoned": "Abandoned",
|
||||||
"services": "服務區",
|
"services": "Services",
|
||||||
"corridor": "走廊",
|
"corridor": "Corridor",
|
||||||
"bus_stop": "巴士站",
|
"bus_stop": "Bus stop",
|
||||||
"busway": "巴士線",
|
"busway": "Busway",
|
||||||
"elevator": "升降機",
|
"elevator": "Elevator",
|
||||||
"via_ferrata": "鐵鎖攀岩",
|
"via_ferrata": "Via ferrata",
|
||||||
"proposed": "未興建的道路",
|
"proposed": "已規劃但未興建的道路",
|
||||||
"construction": "興建中的道路"
|
"construction": "Road under construction"
|
||||||
},
|
},
|
||||||
"sac_scale": {
|
"sac_scale": {
|
||||||
"hiking": "遠足",
|
"hiking": "遠足",
|
||||||
"mountain_hiking": "登山遠足",
|
"mountain_hiking": "登山遠足",
|
||||||
"demanding_mountain_hiking": "高難度登山路徑 (T3級)",
|
"demanding_mountain_hiking": "Demanding mountain hiking",
|
||||||
"alpine_hiking": "高山遠足",
|
"alpine_hiking": "高山遠足",
|
||||||
"demanding_alpine_hiking": "高難度登山路徑 (T5級)",
|
"demanding_alpine_hiking": "Demanding alpine hiking",
|
||||||
"difficult_alpine_hiking": "高難度登山路徑 (T6級)"
|
"difficult_alpine_hiking": "Difficult alpine hiking"
|
||||||
},
|
},
|
||||||
"mtb_scale": "越野單車徑難度分級",
|
"mtb_scale": "MTB scale",
|
||||||
"error": {
|
"error": {
|
||||||
"from": "起點離最近的道路太遠",
|
"from": "The start point is too far from the nearest road",
|
||||||
"via": "途徑點離最近的道路太遠",
|
"via": "The via point is too far from the nearest road",
|
||||||
"to": "終點離最近的道路太遠",
|
"to": "The end point is too far from the nearest road",
|
||||||
"distance": "起點到終點的距離太遠",
|
"distance": "The end point is too far from the start point",
|
||||||
"connection": "找不到連接途徑點的路線",
|
"connection": "No connection found between the points",
|
||||||
"timeout": "軌跡計算耗時太長,請嘗試減少點與點的距離"
|
"timeout": "Route calculation took too long, try adding points closer together"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"scissors": {
|
"scissors": {
|
||||||
"tooltip": "裁剪或拆分",
|
"tooltip": "Crop or split",
|
||||||
"crop": "裁剪",
|
"crop": "Crop",
|
||||||
"split_as": "將軌跡拆分為",
|
"split_as": "Split the trace into",
|
||||||
"help_invalid_selection": "須先選擇要裁剪或拆分的軌跡。",
|
"help_invalid_selection": "Select a trace to crop or split.",
|
||||||
"help": "移動滑塊以確認裁剪範圍,或點選軌跡上的分割標記以拆分。"
|
"help": "Use the slider to crop the trace, or split it by clicking on one of the split markers or on the trace itself."
|
||||||
},
|
},
|
||||||
"time": {
|
"time": {
|
||||||
"tooltip": "管理時間資料",
|
"tooltip": "Manage time data",
|
||||||
"start": "開始",
|
"start": "Start",
|
||||||
"end": "結束",
|
"end": "End",
|
||||||
"total_time": "移動時間",
|
"total_time": "Moving time",
|
||||||
"pick_date": "選擇日期",
|
"pick_date": "Pick a date",
|
||||||
"artificial": "建立實際時間資料",
|
"artificial": "Create realistic time data",
|
||||||
"update": "更新時間資料",
|
"update": "Update time data",
|
||||||
"help": "使用表單設定新的時間資料。",
|
"help": "Use the form to set new time data.",
|
||||||
"help_invalid_selection": "選擇一個軌跡來管理時間資料。"
|
"help_invalid_selection": "Select a single trace to manage its time data."
|
||||||
},
|
},
|
||||||
"merge": {
|
"merge": {
|
||||||
"merge_traces": "合併為一條連續軌跡",
|
"merge_traces": "Connect the traces",
|
||||||
"merge_contents": "合併但保持軌跡獨立",
|
"merge_contents": "Merge the contents and keep the traces disconnected",
|
||||||
"merge_selection": "合併",
|
"merge_selection": "Merge selection",
|
||||||
"remove_gaps": "刪除軌跡的時間間隔",
|
"remove_gaps": "Remove time gaps between traces",
|
||||||
"tooltip": "合併項目",
|
"tooltip": "Merge items together",
|
||||||
"help_merge_traces": "連接所選內容並建立一個連續的軌跡。",
|
"help_merge_traces": "Connecting the selected traces will create a single continuous trace.",
|
||||||
"help_cannot_merge_traces": "須先選擇多個檔案以合併。",
|
"help_cannot_merge_traces": "Your selection must contain several traces to connect them.",
|
||||||
"help_merge_contents": "合併所選內容並將結果儲存於第一個檔案。",
|
"help_merge_contents": "Merging the contents of the selected items will group all the contents inside the first item.",
|
||||||
"help_cannot_merge_contents": "須先選擇多個檔案以合併。",
|
"help_cannot_merge_contents": "Your selection must contain several items to merge their contents.",
|
||||||
"selection_tip": "可使用 {KEYBOARD_SHORTCUT} 新增項目至選擇中。"
|
"selection_tip": "Tip: use {KEYBOARD_SHORTCUT} to add items to the selection."
|
||||||
},
|
},
|
||||||
"extract": {
|
"extract": {
|
||||||
"tooltip": "提取為多個獨立項目",
|
"tooltip": "Extract contents to separate items",
|
||||||
"button": "提取",
|
"button": "Extract",
|
||||||
"help": "該操作將為每個軌跡建立一個單獨的檔案。",
|
"help": "Extracting the contents of the selected items will create a separate item for each of their contents.",
|
||||||
"help_invalid_selection": "須先選擇包含多個軌跡的檔案以提取。"
|
"help_invalid_selection": "Your selection must contain items with multiple traces to extract them."
|
||||||
},
|
},
|
||||||
"elevation": {
|
"elevation": {
|
||||||
"button": "請求海拔資料",
|
"button": "Request elevation data",
|
||||||
"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": "Select a file item to request elevation data."
|
||||||
},
|
},
|
||||||
"waypoint": {
|
"waypoint": {
|
||||||
"tooltip": "建立或編輯興趣點",
|
"tooltip": "Create and edit points of interest",
|
||||||
"icon": "圖示",
|
"icon": "Icon",
|
||||||
"link": "連結",
|
"link": "Link",
|
||||||
"longitude": "經度",
|
"longitude": "Longitude",
|
||||||
"latitude": "緯度",
|
"latitude": "Latitude",
|
||||||
"create": "新增興趣點",
|
"create": "Create point of interest",
|
||||||
"add": "將興趣點加入到檔案",
|
"add": "Add point of interest to file",
|
||||||
"help": "通過表單建立新興趣點,或點選現有興趣點以編輯。 點選地圖並填充坐標點,或拖動興趣點以移動坐標。",
|
"help": "Fill in the form to create a new point of interest, or click on an existing one to edit it. Click on the map to fill the coordinates, or drag points of interest to move them.",
|
||||||
"help_no_selection": "選擇檔案以建立或編輯興趣點。"
|
"help_no_selection": "Select a file to create or edit points of interest."
|
||||||
},
|
},
|
||||||
"reduce": {
|
"reduce": {
|
||||||
"tooltip": "精簡 GPS 點數量",
|
"tooltip": "Reduce the number of GPS points",
|
||||||
"tolerance": "最大間距",
|
"tolerance": "Tolerance",
|
||||||
"number_of_points": "GPS 點數量",
|
"number_of_points": "Number of GPS points",
|
||||||
"button": "簡化",
|
"button": "簡化",
|
||||||
"help": "移動滑塊以調整要保留的 GPS 點數量。",
|
"help": "Use the slider to choose the number of GPS points to keep.",
|
||||||
"help_no_selection": "選擇一個軌跡以減少其 GPS 點的數量。"
|
"help_no_selection": "Select a trace to reduce the number of its GPS points."
|
||||||
},
|
},
|
||||||
"clean": {
|
"clean": {
|
||||||
"tooltip": "使用矩形選區清除項目",
|
"tooltip": "Clean GPS points and points of interest with a rectangle selection",
|
||||||
"delete_trackpoints": "刪除 GPS 點",
|
"delete_trackpoints": "Delete GPS points",
|
||||||
"delete_waypoints": "刪除興趣點",
|
"delete_waypoints": "Delete points of interest",
|
||||||
"delete_inside": "清除選區內部項目",
|
"delete_inside": "Delete inside selection",
|
||||||
"delete_outside": "清除選區外的項目",
|
"delete_outside": "Delete outside selection",
|
||||||
"button": "刪除",
|
"button": "Delete",
|
||||||
"help": "在地圖上繪製矩形選區以清除。",
|
"help": "Select a rectangle area on the map to remove GPS points and points of interest.",
|
||||||
"help_no_selection": "選擇一個軌跡以清除其 GPS 點和興趣點。"
|
"help_no_selection": "Select a trace to clean GPS points and points of interest."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"layers": {
|
"layers": {
|
||||||
"settings": "圖層設定",
|
"settings": "Layer settings",
|
||||||
"settings_help": "選擇要在介面中顯示的地圖圖層,或加入自訂圖層,並作出必要調整。",
|
"settings_help": "Select the map layers you want to show in the interface, add custom ones, and adjust their settings.",
|
||||||
"selection": "選擇圖層",
|
"selection": "Layer selection",
|
||||||
"custom_layers": {
|
"custom_layers": {
|
||||||
"title": "自訂圖層",
|
"title": "Custom layers",
|
||||||
"new": "新建自訂圖層",
|
"new": "New custom layer",
|
||||||
"edit": "編輯自訂圖層",
|
"edit": "Edit custom layer",
|
||||||
"urls": "URL",
|
"urls": "URL(s)",
|
||||||
"url_placeholder": "WMTS、WMS 或 MapLibre style JSON",
|
"url_placeholder": "WMTS, WMS or MapLibre style JSON",
|
||||||
"max_zoom": "最大縮放等級",
|
"max_zoom": "Max zoom",
|
||||||
"layer_type": "圖層類型",
|
"layer_type": "Layer type",
|
||||||
"basemap": "底圖",
|
"basemap": "Basemap",
|
||||||
"overlay": "疊加層",
|
"overlay": "Overlay",
|
||||||
"create": "新增圖層",
|
"create": "Create layer",
|
||||||
"update": "更新圖層"
|
"update": "Update layer"
|
||||||
},
|
},
|
||||||
"opacity": "圖層透明度",
|
"opacity": "Overlay opacity",
|
||||||
"terrain": "地形來源",
|
"terrain": "Terrain source",
|
||||||
"label": {
|
"label": {
|
||||||
"basemaps": "底圖",
|
"basemaps": "Basemaps",
|
||||||
"overlays": "疊加層",
|
"overlays": "Overlays",
|
||||||
"custom": "自訂",
|
"custom": "Custom",
|
||||||
"world": "世界",
|
"world": "World",
|
||||||
"countries": "國家/地區",
|
"countries": "Countries",
|
||||||
"belgium": "比利時",
|
"belgium": "Belgium",
|
||||||
"bulgaria": "保加利亞",
|
"bulgaria": "Bulgaria",
|
||||||
"finland": "芬蘭",
|
"finland": "Finland",
|
||||||
"france": "法國",
|
"france": "France",
|
||||||
"new_zealand": "紐西蘭",
|
"new_zealand": "New Zealand",
|
||||||
"norway": "挪威",
|
"norway": "Norway",
|
||||||
"spain": "西班牙",
|
"spain": "Spain",
|
||||||
"sweden": "瑞典",
|
"sweden": "Sweden",
|
||||||
"switzerland": "瑞士",
|
"switzerland": "Switzerland",
|
||||||
"united_kingdom": "英國",
|
"united_kingdom": "United Kingdom",
|
||||||
"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",
|
||||||
@@ -316,108 +314,108 @@
|
|||||||
"utagawaVTT": "UtagawaMTB",
|
"utagawaVTT": "UtagawaMTB",
|
||||||
"linz": "LINZ Topo",
|
"linz": "LINZ Topo",
|
||||||
"linzTopo": "LINZ Topo50",
|
"linzTopo": "LINZ Topo50",
|
||||||
"swisstopoRaster": "swisstopo 柵格",
|
"swisstopoRaster": "swisstopo Raster",
|
||||||
"swisstopoVector": "swisstopo 向量",
|
"swisstopoVector": "swisstopo Vector",
|
||||||
"swisstopoSatellite": "swisstopo 衛星地圖",
|
"swisstopoSatellite": "swisstopo Satellite",
|
||||||
"ignBe": "IGN Topo",
|
"ignBe": "IGN Topo",
|
||||||
"ignFrPlan": "IGN Plan",
|
"ignFrPlan": "IGN Plan",
|
||||||
"ignFrTopo": "IGN Topo",
|
"ignFrTopo": "IGN Topo",
|
||||||
"ignFrScan25": "IGN SCAN25",
|
"ignFrScan25": "IGN SCAN25",
|
||||||
"ignFrSatellite": "IGN 衛星地圖",
|
"ignFrSatellite": "IGN Satellite",
|
||||||
"ignEs": "IGN Topo",
|
"ignEs": "IGN Topo",
|
||||||
"ignEsSatellite": "IGN Satellite",
|
"ignEsSatellite": "IGN Satellite",
|
||||||
"ordnanceSurvey": "Ordnance Survey(英國地形測量局)",
|
"ordnanceSurvey": "Ordnance Survey",
|
||||||
"norwayTopo": "Topografisk Norgeskart 4",
|
"norwayTopo": "Topografisk Norgeskart 4",
|
||||||
"finlandTopo": "Lantmäteriverket Terrängkarta",
|
"finlandTopo": "Lantmäteriverket Terrängkarta",
|
||||||
"bgMountains": "BGMountains",
|
"bgMountains": "BGMountains",
|
||||||
"usgs": "USGS",
|
"usgs": "USGS",
|
||||||
"bikerouterGravel": "bikerouter.de Gravel",
|
"bikerouterGravel": "bikerouter.de Gravel",
|
||||||
"cyclOSMlite": "CyclOSM Lite",
|
"cyclOSMlite": "CyclOSM Lite",
|
||||||
"mapterhornHillshade": "Mapterhorn Hillshade",
|
"mapterhornHillshade": "Mapterhorn Hillshade",
|
||||||
"openRailwayMap": "OpenRailwayMap",
|
"openRailwayMap": "OpenRailwayMap",
|
||||||
"swisstopoSlope": "swisstopo 地形",
|
"swisstopoSlope": "swisstopo Slope",
|
||||||
"swisstopoHiking": "swisstopo 遠足",
|
"swisstopoHiking": "swisstopo Hiking",
|
||||||
"swisstopoHikingClosures": "swisstopo 登山封閉路線",
|
"swisstopoHikingClosures": "swisstopo Hiking Closures",
|
||||||
"swisstopoCycling": "swisstopo 單車",
|
"swisstopoCycling": "swisstopo Cycling",
|
||||||
"swisstopoCyclingClosures": "swisstopo 單車封閉路線",
|
"swisstopoCyclingClosures": "swisstopo Cycling Closures",
|
||||||
"swisstopoMountainBike": "swisstopo 越野單車",
|
"swisstopoMountainBike": "swisstopo MTB",
|
||||||
"swisstopoMountainBikeClosures": "swisstopo 越野單車封閉路線",
|
"swisstopoMountainBikeClosures": "swisstopo MTB Closures",
|
||||||
"swisstopoSkiTouring": "swisstopo 滑雪巡遊",
|
"swisstopoSkiTouring": "swisstopo Ski Touring",
|
||||||
"ignFrCadastre": "IGN Cadastre",
|
"ignFrCadastre": "IGN Cadastre",
|
||||||
"ignSlope": "IGN 地形",
|
"ignSlope": "IGN Slope",
|
||||||
"ignSkiTouring": "IGN 滑雪巡遊",
|
"ignSkiTouring": "IGN Ski Touring",
|
||||||
"waymarked_trails": "標記路線",
|
"waymarked_trails": "Waymarked Trails",
|
||||||
"waymarkedTrailsHiking": "遠足",
|
"waymarkedTrailsHiking": "Hiking",
|
||||||
"waymarkedTrailsCycling": "單車",
|
"waymarkedTrailsCycling": "Cycling",
|
||||||
"waymarkedTrailsMTB": "越野單車",
|
"waymarkedTrailsMTB": "MTB",
|
||||||
"waymarkedTrailsSkating": "滑冰",
|
"waymarkedTrailsSkating": "Skating",
|
||||||
"waymarkedTrailsHorseRiding": "騎馬",
|
"waymarkedTrailsHorseRiding": "Horse Riding",
|
||||||
"waymarkedTrailsWinter": "冬季路線",
|
"waymarkedTrailsWinter": "Winter",
|
||||||
"points_of_interest": "興趣點",
|
"points_of_interest": "Points of interest",
|
||||||
"food": "食物",
|
"food": "Food",
|
||||||
"bakery": "麵包店",
|
"bakery": "Bakery",
|
||||||
"food-store": "食品店",
|
"food-store": "Food Store",
|
||||||
"eat-and-drink": "餐飲店",
|
"eat-and-drink": "Eat and Drink",
|
||||||
"amenities": "便利設施",
|
"amenities": "Amenities",
|
||||||
"toilets": "廁所",
|
"toilets": "Toilets",
|
||||||
"water": "飲用水",
|
"water": "Water",
|
||||||
"shower": "淋浴",
|
"shower": "Shower",
|
||||||
"shelter": "庇護所",
|
"shelter": "Shelter",
|
||||||
"cemetery": "墓地",
|
"cemetery": "Cemetery",
|
||||||
"motorized": "汽車和電單車",
|
"motorized": "Cars and Motorcycles",
|
||||||
"fuel-station": "油站",
|
"fuel-station": "Fuel Station",
|
||||||
"parking": "停車場",
|
"parking": "Parking",
|
||||||
"garage": "車庫",
|
"garage": "Garage",
|
||||||
"barrier": "障礙物",
|
"barrier": "Barrier",
|
||||||
"tourism": "旅游",
|
"tourism": "Tourism",
|
||||||
"attraction": "景點",
|
"attraction": "Attraction",
|
||||||
"viewpoint": "觀景台",
|
"viewpoint": "Viewpoint",
|
||||||
"hotel": "酒店",
|
"hotel": "Hotel",
|
||||||
"campsite": "營地",
|
"campsite": "Campsite",
|
||||||
"hut": "小屋",
|
"hut": "Hut",
|
||||||
"picnic": "野餐區",
|
"picnic": "Picnic Area",
|
||||||
"summit": "頂峰",
|
"summit": "Summit",
|
||||||
"pass": "山坳",
|
"pass": "Pass",
|
||||||
"climbing": "攀爬",
|
"climbing": "Climbing",
|
||||||
"bicycle": "單車",
|
"bicycle": "Bicycle",
|
||||||
"bicycle-parking": "單車架",
|
"bicycle-parking": "Bicycle Parking",
|
||||||
"bicycle-rental": "單車出租店",
|
"bicycle-rental": "Bicycle Rental",
|
||||||
"bicycle-shop": "單車店",
|
"bicycle-shop": "Bicycle Shop",
|
||||||
"public-transport": "公共交通",
|
"public-transport": "Public Transport",
|
||||||
"railway-station": "火車站",
|
"railway-station": "Railway Station",
|
||||||
"tram-stop": "電車站",
|
"tram-stop": "Tram Stop",
|
||||||
"bus-stop": "巴士站",
|
"bus-stop": "Bus Stop",
|
||||||
"ferry": "渡口",
|
"ferry": "Ferry",
|
||||||
"mapterhorn": "Mapterhorn"
|
"mapterhorn": "Mapterhorn"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"chart": {
|
"chart": {
|
||||||
"settings": "海拔剖面圖設定"
|
"settings": "Elevation profile settings"
|
||||||
},
|
},
|
||||||
"quantities": {
|
"quantities": {
|
||||||
"distance": "距離",
|
"distance": "Distance",
|
||||||
"elevation": "海拔",
|
"elevation": "Elevation",
|
||||||
"elevation_gain_loss": "累計爬升和下降",
|
"elevation_gain_loss": "Elevation gain and loss",
|
||||||
"temperature": "温度",
|
"temperature": "Temperature",
|
||||||
"speed": "速度",
|
"speed": "Speed",
|
||||||
"pace": "配速",
|
"pace": "Pace",
|
||||||
"heartrate": "心率",
|
"heartrate": "Heart rate",
|
||||||
"cadence": "踏頻",
|
"cadence": "Cadence",
|
||||||
"power": "功率",
|
"power": "Power",
|
||||||
"slope": "坡度",
|
"slope": "Slope",
|
||||||
"surface": "路面",
|
"surface": "Surface",
|
||||||
"highway": "類型",
|
"highway": "Category",
|
||||||
"time": "時間",
|
"time": "Time",
|
||||||
"moving": "運動",
|
"moving": "Moving",
|
||||||
"total": "全部",
|
"total": "Total",
|
||||||
"osm_extensions": "OpenStreetMap 資料"
|
"osm_extensions": "OpenStreetMap data"
|
||||||
},
|
},
|
||||||
"units": {
|
"units": {
|
||||||
"meters": "米",
|
"meters": "m",
|
||||||
"feet": "英呎",
|
"feet": "ft",
|
||||||
"kilometers": "公里",
|
"kilometers": "km",
|
||||||
"miles": "英里",
|
"miles": "mi",
|
||||||
"nautical_miles": "海里",
|
"nautical_miles": "nm",
|
||||||
"celsius": "°C",
|
"celsius": "°C",
|
||||||
"fahrenheit": "°F",
|
"fahrenheit": "°F",
|
||||||
"kilometers_per_hour": "km/h",
|
"kilometers_per_hour": "km/h",
|
||||||
@@ -425,90 +423,90 @@
|
|||||||
"minutes_per_kilometer": "min/km",
|
"minutes_per_kilometer": "min/km",
|
||||||
"minutes_per_mile": "min/mi",
|
"minutes_per_mile": "min/mi",
|
||||||
"minutes_per_nautical_mile": "min/nm",
|
"minutes_per_nautical_mile": "min/nm",
|
||||||
"knots": "節",
|
"knots": "kn",
|
||||||
"heartrate": "bpm",
|
"heartrate": "bpm",
|
||||||
"cadence": "rpm",
|
"cadence": "rpm",
|
||||||
"power": "W"
|
"power": "W"
|
||||||
},
|
},
|
||||||
"gpx": {
|
"gpx": {
|
||||||
"file": "檔案",
|
"file": "File",
|
||||||
"files": "檔案",
|
"files": "Files",
|
||||||
"track": "軌跡",
|
"track": "Track",
|
||||||
"tracks": "軌跡",
|
"tracks": "Tracks",
|
||||||
"segment": "路段",
|
"segment": "Segment",
|
||||||
"segments": "路段",
|
"segments": "Segments",
|
||||||
"waypoint": "興趣點",
|
"waypoint": "Point of interest",
|
||||||
"waypoints": "興趣點",
|
"waypoints": "Points of interest",
|
||||||
"symbol": {
|
"symbol": {
|
||||||
"alert": "警告",
|
"alert": "Alert",
|
||||||
"anchor": "錨點",
|
"anchor": "Anchor",
|
||||||
"bank": "銀行",
|
"bank": "Bank",
|
||||||
"beach": "海灘",
|
"beach": "Beach",
|
||||||
"bike_trail": "單車徑",
|
"bike_trail": "Bike Trail",
|
||||||
"binoculars": "望遠鏡",
|
"binoculars": "Binoculars",
|
||||||
"bridge": "橋",
|
"bridge": "Bridge",
|
||||||
"building": "大廈",
|
"building": "Building",
|
||||||
"campground": "營地",
|
"campground": "Campsite",
|
||||||
"car": "車輛",
|
"car": "Car",
|
||||||
"car_repair": "車庫",
|
"car_repair": "Garage",
|
||||||
"convenience_store": "便利店",
|
"convenience_store": "Convenience Store",
|
||||||
"crossing": "交叉路口",
|
"crossing": "Crossing",
|
||||||
"department_store": "百貨店",
|
"department_store": "Department Store",
|
||||||
"drinking_water": "飲用水",
|
"drinking_water": "Water",
|
||||||
"exit": "出口",
|
"exit": "Exit",
|
||||||
"lodge": "小屋",
|
"lodge": "Hut",
|
||||||
"lodging": "住宿",
|
"lodging": "Accommodation",
|
||||||
"forest": "森林",
|
"forest": "Forest",
|
||||||
"gas_station": "油站",
|
"gas_station": "Fuel Station",
|
||||||
"ground_transportation": "地面交通",
|
"ground_transportation": "Ground Transportation",
|
||||||
"hotel": "酒店",
|
"hotel": "Hotel",
|
||||||
"house": "住宅",
|
"house": "House",
|
||||||
"information": "資訊",
|
"information": "Information",
|
||||||
"park": "公園",
|
"park": "Park",
|
||||||
"parking_area": "停車場",
|
"parking_area": "Parking",
|
||||||
"pharmacy": "藥房",
|
"pharmacy": "Pharmacy",
|
||||||
"picnic_area": "野餐區",
|
"picnic_area": "Picnic Area",
|
||||||
"restaurant": "餐廳",
|
"restaurant": "Restaurant",
|
||||||
"restricted_area": "管制區域",
|
"restricted_area": "Restricted Area",
|
||||||
"restroom": "廁所",
|
"restroom": "Toilets",
|
||||||
"road": "道路",
|
"road": "Road",
|
||||||
"scenic_area": "景區",
|
"scenic_area": "Scenic Area",
|
||||||
"shelter": "庇護所",
|
"shelter": "Shelter",
|
||||||
"shopping_center": "購物中心",
|
"shopping_center": "Shopping Center",
|
||||||
"shower": "淋浴",
|
"shower": "Shower",
|
||||||
"summit": "山峰",
|
"summit": "Summit",
|
||||||
"telephone": "電話",
|
"telephone": "Telephone",
|
||||||
"tunnel": "隧道",
|
"tunnel": "Tunnel",
|
||||||
"water_source": "水源"
|
"water_source": "Water Source"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"homepage": {
|
"homepage": {
|
||||||
"website": "官方網站",
|
"website": "Website",
|
||||||
"home": "首頁",
|
"home": "Home",
|
||||||
"app": "應用程式",
|
"app": "App",
|
||||||
"contact": "聯絡我們",
|
"contact": "Contact",
|
||||||
"reddit": "Reddit",
|
"reddit": "Reddit",
|
||||||
"facebook": "Facebook",
|
"facebook": "Facebook",
|
||||||
"github": "GitHub",
|
"github": "GitHub",
|
||||||
"crowdin": "Crowdin",
|
"crowdin": "Crowdin",
|
||||||
"email": "電郵",
|
"email": "Email",
|
||||||
"contribute": "參與貢獻",
|
"contribute": "Contribute",
|
||||||
"supported_by": "技術支援",
|
"supported_by": "supported by",
|
||||||
"features": "功能",
|
"features": "Features",
|
||||||
"route_planning": "路線規劃",
|
"route_planning": "Route planning",
|
||||||
"route_planning_description": "基於 OpenStreetMap 數據,在直觀的介面中為每項運動建立量身定製的行程。",
|
"route_planning_description": "An intuitive interface to create itineraries tailored to each sport, based on OpenStreetMap data.",
|
||||||
"file_processing": "高級檔案處理",
|
"file_processing": "Advanced file processing",
|
||||||
"file_processing_description": "一系列常見的檔案處理工具,支援對多個檔案同時進行操作。",
|
"file_processing_description": "A suite of tools for performing all common file processing tasks, and which can be applied to multiple files at once.",
|
||||||
"maps": "全球和本地地圖",
|
"maps": "Global and local maps",
|
||||||
"maps_description": "內建大量地圖底圖、疊加圖層和興趣點,用於幫助規劃戶外冒險或可視化成果。",
|
"maps_description": "A large collection of basemaps, overlays and points of interest to help you craft your next outdoor adventure, or visualize your latest achievement.",
|
||||||
"data_visualization": "數據可視化",
|
"data_visualization": "Data visualization",
|
||||||
"data_visualization_description": "可互動的海拔剖面圖,帶有詳細的統計數據,用於分析已記錄的活動和規劃中的目標。",
|
"data_visualization_description": "An interactive elevation profile with detailed statistics to analyze recorded activities and future objectives.",
|
||||||
"philosophy": "宗旨",
|
"philosophy": "Philosophy",
|
||||||
"foss": "免費、無廣告、開源",
|
"foss": "Free, ad-free and open source",
|
||||||
"foss_description": "此網站可自由使用,無廣告,原始碼可在 GitHub 上公開查閱。",
|
"foss_description": "The website is free to use, without ads, and the source code is publicly available on GitHub.",
|
||||||
"privacy": "注重隱私",
|
"privacy": "Privacy-friendly",
|
||||||
"privacy_description": "你的 GPX 檔案永遠不會離開你的瀏覽器。我們不會跟蹤使用者的使用行為,也不會收集使用者產生的資料。",
|
"privacy_description": "Your GPX files never leave your browser. No tracking, no data collection.",
|
||||||
"community": "由社區驅動",
|
"community": "Made possible by the community",
|
||||||
"community_description": "gpx.studio has an amazing community that has covered its costs through donations for years, while shaping the project through feature suggestions, bug reports, and translations into many languages.",
|
"community_description": "gpx.studio has an amazing community that has covered its costs through donations for years, while shaping the project through feature suggestions, bug reports, and translations into many languages.",
|
||||||
"support_button": "Support gpx.studio on Open Collective",
|
"support_button": "Support gpx.studio on Open Collective",
|
||||||
"translate_button": "Help translate the website on Crowdin"
|
"translate_button": "Help translate the website on Crowdin"
|
||||||
|
|||||||
@@ -156,7 +156,7 @@
|
|||||||
"tertiary_link": "乡道/支路的连接路段",
|
"tertiary_link": "乡道/支路的连接路段",
|
||||||
"unclassified": "小型道路",
|
"unclassified": "小型道路",
|
||||||
"residential": "居住区道路",
|
"residential": "居住区道路",
|
||||||
"living_street": "住宅街道",
|
"living_street": "生活性街道",
|
||||||
"service": "服务性道路",
|
"service": "服务性道路",
|
||||||
"track": "小径(未铺设道路)",
|
"track": "小径(未铺设道路)",
|
||||||
"footway": "步行道路",
|
"footway": "步行道路",
|
||||||
@@ -187,7 +187,7 @@
|
|||||||
"demanding_alpine_hiking": "相对简单的攀爬部分,UIAA I-II 级(T5)",
|
"demanding_alpine_hiking": "相对简单的攀爬部分,UIAA I-II 级(T5)",
|
||||||
"difficult_alpine_hiking": "更长的攀爬部分,UIAA II 级(T6)"
|
"difficult_alpine_hiking": "更长的攀爬部分,UIAA II 级(T6)"
|
||||||
},
|
},
|
||||||
"mtb_scale": "山地自行车难度分级",
|
"mtb_scale": "山地地形",
|
||||||
"error": {
|
"error": {
|
||||||
"from": "起点离最近的道路太远",
|
"from": "起点离最近的道路太远",
|
||||||
"via": "途径点离最近的道路太远",
|
"via": "途径点离最近的道路太远",
|
||||||
@@ -222,9 +222,9 @@
|
|||||||
"remove_gaps": "删除轨迹间的时间间隔",
|
"remove_gaps": "删除轨迹间的时间间隔",
|
||||||
"tooltip": "合并要素",
|
"tooltip": "合并要素",
|
||||||
"help_merge_traces": "连接所选内容并生成一个连续轨迹。",
|
"help_merge_traces": "连接所选内容并生成一个连续轨迹。",
|
||||||
"help_cannot_merge_traces": "须先选择多个文件以合并。",
|
"help_cannot_merge_traces": "须先选择多个文件以合并,",
|
||||||
"help_merge_contents": "合并所选内容并将结果存储于第一个文件。",
|
"help_merge_contents": "合并所选内容并将结果存储于第一个文件。",
|
||||||
"help_cannot_merge_contents": "须先选择多个文件以合并。",
|
"help_cannot_merge_contents": "须先选择多个文件以合并,",
|
||||||
"selection_tip": "可使用 {KEYBOARD_SHORTCUT} 进行多选。"
|
"selection_tip": "可使用 {KEYBOARD_SHORTCUT} 进行多选。"
|
||||||
},
|
},
|
||||||
"extract": {
|
"extract": {
|
||||||
@@ -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": {
|
||||||
@@ -264,8 +264,8 @@
|
|||||||
"delete_inside": "清除选区内部要素",
|
"delete_inside": "清除选区内部要素",
|
||||||
"delete_outside": "清除选区外部要素",
|
"delete_outside": "清除选区外部要素",
|
||||||
"button": "删除",
|
"button": "删除",
|
||||||
"help": "在地图上绘制矩形选区以清除。",
|
"help": "在地图上绘制矩形选区以清除",
|
||||||
"help_no_selection": "选择一个轨迹以清除其 GPS 点和兴趣点。"
|
"help_no_selection": "选择一个轨迹以清除其 GPS 点和兴趣点"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"layers": {
|
"layers": {
|
||||||
@@ -277,7 +277,7 @@
|
|||||||
"new": "新建自定义图层",
|
"new": "新建自定义图层",
|
||||||
"edit": "编辑自定义图层",
|
"edit": "编辑自定义图层",
|
||||||
"urls": "URL(s)",
|
"urls": "URL(s)",
|
||||||
"url_placeholder": "WMTS、WMS 或 MapLibre style JSON",
|
"url_placeholder": "WMTS,WMS 或 MapLibre style JSON",
|
||||||
"max_zoom": "最大缩放等级",
|
"max_zoom": "最大缩放等级",
|
||||||
"layer_type": "图层类型",
|
"layer_type": "图层类型",
|
||||||
"basemap": "底图",
|
"basemap": "底图",
|
||||||
@@ -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",
|
||||||
@@ -333,7 +331,7 @@
|
|||||||
"usgs": "USGS",
|
"usgs": "USGS",
|
||||||
"bikerouterGravel": "bikerouter.de Gravel",
|
"bikerouterGravel": "bikerouter.de Gravel",
|
||||||
"cyclOSMlite": "CyclOSM Lite",
|
"cyclOSMlite": "CyclOSM Lite",
|
||||||
"mapterhornHillshade": "Mapterhorn Hillshade",
|
"mapterhornHillshade": "山体阴影",
|
||||||
"openRailwayMap": "OpenRailwayMap",
|
"openRailwayMap": "OpenRailwayMap",
|
||||||
"swisstopoSlope": "Swisstopo Slope",
|
"swisstopoSlope": "Swisstopo Slope",
|
||||||
"swisstopoHiking": "Swisstopo Hiking",
|
"swisstopoHiking": "Swisstopo Hiking",
|
||||||
@@ -377,7 +375,7 @@
|
|||||||
"hut": "小屋",
|
"hut": "小屋",
|
||||||
"picnic": "野餐区",
|
"picnic": "野餐区",
|
||||||
"summit": "顶峰",
|
"summit": "顶峰",
|
||||||
"pass": "山坳",
|
"pass": "关卡",
|
||||||
"climbing": "攀爬",
|
"climbing": "攀爬",
|
||||||
"bicycle": "自行车",
|
"bicycle": "自行车",
|
||||||
"bicycle-parking": "停车区",
|
"bicycle-parking": "停车区",
|
||||||
@@ -445,7 +443,7 @@
|
|||||||
"bank": "银行",
|
"bank": "银行",
|
||||||
"beach": "海滩",
|
"beach": "海滩",
|
||||||
"bike_trail": "自行车道",
|
"bike_trail": "自行车道",
|
||||||
"binoculars": "望远镜",
|
"binoculars": "观察点",
|
||||||
"bridge": "桥",
|
"bridge": "桥",
|
||||||
"building": "建筑物",
|
"building": "建筑物",
|
||||||
"campground": "营地",
|
"campground": "营地",
|
||||||
@@ -504,7 +502,7 @@
|
|||||||
"data_visualization": "数据可视化",
|
"data_visualization": "数据可视化",
|
||||||
"data_visualization_description": "可交互的海拔剖面图,带有详细的统计数据,用于分析已记录的活动和规划中的目标。",
|
"data_visualization_description": "可交互的海拔剖面图,带有详细的统计数据,用于分析已记录的活动和规划中的目标。",
|
||||||
"philosophy": "宗旨",
|
"philosophy": "宗旨",
|
||||||
"foss": "免费、无广告且开源",
|
"foss": "免费、 无广告且开源",
|
||||||
"foss_description": "该网站可自由使用,无广告,源代码可在 GitHub 上公开查阅。",
|
"foss_description": "该网站可自由使用,无广告,源代码可在 GitHub 上公开查阅。",
|
||||||
"privacy": "注重隐私",
|
"privacy": "注重隐私",
|
||||||
"privacy_description": "你的 GPX 文件永远不会离开你的浏览器。我们不会跟踪用户的使用行为,也不会收集用户产生的数据。",
|
"privacy_description": "你的 GPX 文件永远不会离开你的浏览器。我们不会跟踪用户的使用行为,也不会收集用户产生的数据。",
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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 |
@@ -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 |