mirror of
https://github.com/gpxstudio/gpx.studio.git
synced 2026-04-20 18:41:17 +00:00
Compare commits
409 Commits
graphhoppe
...
77b1de0a45
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
77b1de0a45 | ||
|
|
6f08560888 | ||
|
|
ffbb74e539 | ||
|
|
803d691398 | ||
|
|
03e33ace34 | ||
|
|
377dfce412 | ||
|
|
e6a5387f08 | ||
|
|
92f793ab0e | ||
|
|
0085ddf4c2 | ||
|
|
2c3e86cdcd | ||
|
|
38502fff3a | ||
|
|
39a666e433 | ||
|
|
f07851929c | ||
|
|
e3ebbb88c9 | ||
|
|
dca88a254d | ||
|
|
78730760e3 | ||
|
|
1f7b1fc12b | ||
|
|
5b12c85271 | ||
|
|
7f160730c9 | ||
|
|
712259dc82 | ||
|
|
f9477556c5 | ||
|
|
874ed75e76 | ||
|
|
159199fc6a | ||
|
|
416262e185 | ||
|
|
32add9f48c | ||
|
|
457a62a84d | ||
|
|
918ee6177b | ||
|
|
7b73aa00de | ||
|
|
d6b8645f52 | ||
|
|
d3eba662e6 | ||
|
|
5c3476dff3 | ||
|
|
46f88ef854 | ||
|
|
b5c956ffe5 | ||
|
|
db0fe84c8c | ||
|
|
420efae194 | ||
|
|
de6bda6d7d | ||
|
|
eff9ce4783 | ||
|
|
0675fbfda9 | ||
|
|
bbebed7c98 | ||
|
|
303fa41405 | ||
|
|
de134ec56b | ||
|
|
984ab7debf | ||
|
|
fa6691821b | ||
|
|
f949fdf4d4 | ||
|
|
bd72166112 | ||
|
|
ac9103668a | ||
|
|
3905a366bd | ||
|
|
bf804eba2c | ||
|
|
8522584711 | ||
|
|
2a948584dc | ||
|
|
4812556ab4 | ||
|
|
c43d10d680 | ||
|
|
6e6e12bc19 | ||
|
|
8e020d5d10 | ||
|
|
e94b1ea1b9 | ||
|
|
663f485782 | ||
|
|
e67b5e886f | ||
|
|
062e214538 | ||
|
|
fb7ecaf925 | ||
|
|
e5d6282c2e | ||
|
|
0757fb1726 | ||
|
|
aeffe2663c | ||
|
|
85a1c365c2 | ||
|
|
9b1639e065 | ||
|
|
da62040800 | ||
|
|
8f700921ee | ||
|
|
6e80fb6bdb | ||
|
|
d0c61cf91f | ||
|
|
03a4c7c58e | ||
|
|
15753a9fc0 | ||
|
|
1b31112677 | ||
|
|
ff71ce1292 | ||
|
|
e45cd1a2ab | ||
|
|
c722c25020 | ||
|
|
88cc331ff2 | ||
|
|
52792a99fa | ||
|
|
8f1f53ef62 | ||
|
|
6accef46d7 | ||
|
|
e18a9f3100 | ||
|
|
e6bd23ef6f | ||
|
|
359fcac564 | ||
|
|
2418eddafc | ||
|
|
9019c44790 | ||
|
|
6159e4665b | ||
|
|
9aba2fa798 | ||
|
|
d7b2db507b | ||
|
|
465c687717 | ||
|
|
b6611e10fd | ||
|
|
709e740527 | ||
|
|
ac1603eb03 | ||
|
|
b198d51925 | ||
|
|
3f29509b24 | ||
|
|
a5e1d27d5f | ||
|
|
1e727c2009 | ||
|
|
9826a450b0 | ||
|
|
4a0a3a1b50 | ||
|
|
b898c5f24a | ||
|
|
673df15b3e | ||
|
|
2d8eb78d0c | ||
|
|
8b3eaa0e87 | ||
|
|
aef0b50550 | ||
|
|
65cacbfc5b | ||
|
|
491d187e5f | ||
|
|
1a8d30bc5a | ||
|
|
c28322b8ee | ||
|
|
34bbae120c | ||
|
|
7553d1a33f | ||
|
|
ef99717afa | ||
|
|
2c83be9a38 | ||
|
|
07517ae60a | ||
|
|
64005e3ee6 | ||
|
|
609cb01b6a | ||
|
|
04457f7e0a | ||
|
|
d33651ea67 | ||
|
|
658bd30f2f | ||
|
|
bd4fd0153a | ||
|
|
fac3d2ac78 | ||
|
|
91f984bc41 | ||
|
|
c2f3aa1c69 | ||
|
|
962dbba5da | ||
|
|
0ca058b796 | ||
|
|
97db24eb92 | ||
|
|
e1c7e54e0e | ||
|
|
0e9bc1f9ed | ||
|
|
659b854988 | ||
|
|
247db8c9a2 | ||
|
|
7d4e1251f7 | ||
|
|
88be2b5b6a | ||
|
|
d730e8f12e | ||
|
|
1315e43104 | ||
|
|
67d02464ae | ||
|
|
4889d73d81 | ||
|
|
ab68fb387c | ||
|
|
5d5feabe12 | ||
|
|
fd7d7a1812 | ||
|
|
74185f44ef | ||
|
|
c4f3ade767 | ||
|
|
70a68ac3bc | ||
|
|
58f2fc472c | ||
|
|
d498b5590a | ||
|
|
586f03abcf | ||
|
|
c7fc0d0b1c | ||
|
|
62a795dcaa | ||
|
|
f318532538 | ||
|
|
366fadc1c6 | ||
|
|
062e86b62d | ||
|
|
fdd29d9708 | ||
|
|
5e22a05b2e | ||
|
|
81342950a5 | ||
|
|
1dbdfcfe9c | ||
|
|
bb259cbe1c | ||
|
|
4fa60ac46f | ||
|
|
be0d8cb59d | ||
|
|
71b4e93bee | ||
|
|
86b70f0f19 | ||
|
|
e83a296889 | ||
|
|
f6694755a0 | ||
|
|
ca9a43917f | ||
|
|
2a4ea390ab | ||
|
|
b474298320 | ||
|
|
25a5872ff7 | ||
|
|
745477187d | ||
|
|
d232a3ad19 | ||
|
|
563b21fffe | ||
|
|
802ab68280 | ||
|
|
b0d4078085 | ||
|
|
7fdc2d2bf0 | ||
|
|
39380f3764 | ||
|
|
c8a10f6fde | ||
|
|
4471ef605b | ||
|
|
e60a7d1f3a | ||
|
|
e5fdf7ed4a | ||
|
|
2d640df936 | ||
|
|
029437ba01 | ||
|
|
9c59e0b536 | ||
|
|
1e9fa89911 | ||
|
|
b2d0fc17a1 | ||
|
|
67af6325c2 | ||
|
|
5ff9d6a21e | ||
|
|
8fc8627998 | ||
|
|
02044a40c6 | ||
|
|
bf4fd993ec | ||
|
|
13c75a4d1e | ||
|
|
1932f03e23 | ||
|
|
bd1d5a8e3b | ||
|
|
d8d189ee51 | ||
|
|
7d30551e5a | ||
|
|
0efbcc5b58 | ||
|
|
d658ca4bff | ||
|
|
445b8fe09e | ||
|
|
3796418070 | ||
|
|
abe5e1bff0 | ||
|
|
1c301be470 | ||
|
|
bd6aa43928 | ||
|
|
346a22d7a5 | ||
|
|
a1ce711d50 | ||
|
|
81dc9c6c11 | ||
|
|
802573cb25 | ||
|
|
dae0f39496 | ||
|
|
ec59423ad1 | ||
|
|
e671ee1867 | ||
|
|
6682ba9fff | ||
|
|
37993d92ed | ||
|
|
3c2c79c007 | ||
|
|
7fe2e71be8 | ||
|
|
7378676449 | ||
|
|
cae88d5ed8 | ||
|
|
9d38fe59aa | ||
|
|
6d6215efee | ||
|
|
d75866b83e | ||
|
|
72595cf63a | ||
|
|
ed5d4e0aa0 | ||
|
|
eb006b166d | ||
|
|
5019a7bd29 | ||
|
|
6b4cd246a6 | ||
|
|
0a6d649cd8 | ||
|
|
61176b5ec0 | ||
|
|
61956549d3 | ||
|
|
7064465871 | ||
|
|
702a80038e | ||
|
|
5f4bd199d6 | ||
|
|
4141c947b2 | ||
|
|
48b3bdf2c6 | ||
|
|
794f30be44 | ||
|
|
23deb5ff97 | ||
|
|
e5fb6899ad | ||
|
|
40c77643fe | ||
|
|
8aba4c2ede | ||
|
|
d993a70ad3 | ||
|
|
51018469be | ||
|
|
4c29ef6f39 | ||
|
|
a569ca377f | ||
|
|
28c2a0e821 | ||
|
|
39ab789a45 | ||
|
|
afba797e72 | ||
|
|
a4efa994be | ||
|
|
d3b24747d3 | ||
|
|
a079ca740c | ||
|
|
dec79f17f4 | ||
|
|
99ab420b46 | ||
|
|
b0ad085342 | ||
|
|
12b67c017b | ||
|
|
ad4a029679 | ||
|
|
98cf88864f | ||
|
|
bd2634efe5 | ||
|
|
8a6b7e6974 | ||
|
|
9dd52551ee | ||
|
|
f8722c15e5 | ||
|
|
9a8c15b810 | ||
|
|
a953e7f7ff | ||
|
|
e384fb0722 | ||
|
|
cc8f2e9bd8 | ||
|
|
793e55be7a | ||
|
|
7e8ea121b6 | ||
|
|
337e81be9f | ||
|
|
9af1ec0459 | ||
|
|
368a45726e | ||
|
|
2513753311 | ||
|
|
40f2400057 | ||
|
|
8da3e6f65d | ||
|
|
958ecab6fe | ||
|
|
254ec37b24 | ||
|
|
2b7e297010 | ||
|
|
672d68f88b | ||
|
|
739dec1c9e | ||
|
|
d2c0f674c1 | ||
|
|
f189d9c525 | ||
|
|
7f0cd488d2 | ||
|
|
4b36866a03 | ||
|
|
645c616151 | ||
|
|
6bff0c9b31 | ||
|
|
1f88cfed0d | ||
|
|
4b8545c9d3 | ||
|
|
51c45e95a5 | ||
|
|
17a7538391 | ||
|
|
08bd6de1cb | ||
|
|
c5dddcf711 | ||
|
|
116e74185f | ||
|
|
862e20f553 | ||
|
|
5c90fbb35b | ||
|
|
08314adb51 | ||
|
|
8706e5dbc5 | ||
|
|
ac25896e8f | ||
|
|
8db9cb68d3 | ||
|
|
3be79c3cb0 | ||
|
|
730e8a9c8a | ||
|
|
9910c3d853 | ||
|
|
2fb09d5341 | ||
|
|
6776f6fa0d | ||
|
|
5a4afb9432 | ||
|
|
6721552564 | ||
|
|
1bf0fbf5a7 | ||
|
|
1093385b21 | ||
|
|
555e9a00df | ||
|
|
752afedee1 | ||
|
|
e0a0e96ccd | ||
|
|
a3fe492b89 | ||
|
|
738dc377b3 | ||
|
|
1040c10eaf | ||
|
|
eab58b9e14 | ||
|
|
d528120181 | ||
|
|
ca2be90b1e | ||
|
|
449a230b2a | ||
|
|
3878a57e37 | ||
|
|
6d52ee2cc8 | ||
|
|
a7bc9186a2 | ||
|
|
a0388bf5c9 | ||
|
|
2f4831397d | ||
|
|
744fa0234a | ||
|
|
235b75a6b7 | ||
|
|
ee3ecc1864 | ||
|
|
efc3a373f3 | ||
|
|
14b10065ab | ||
|
|
3b906bddf3 | ||
|
|
e77c7fb41f | ||
|
|
0c6ccef007 | ||
|
|
998d20f3e9 | ||
|
|
a918f24352 | ||
|
|
64139fb355 | ||
|
|
a0bfc17723 | ||
|
|
c9b26dbc1c | ||
|
|
92e658376d | ||
|
|
55b7f17cd4 | ||
|
|
fc030ecd4d | ||
|
|
a76f6f0e0a | ||
|
|
03b20ea067 | ||
|
|
259f0d66c7 | ||
|
|
30f272c404 | ||
|
|
7a02f1d5b1 | ||
|
|
c421c2a404 | ||
|
|
2e58d270b9 | ||
|
|
d087fed76b | ||
|
|
ad0efd3372 | ||
|
|
1414f0a7f0 | ||
|
|
19b0b33944 | ||
|
|
d0c3bfb3d3 | ||
|
|
b8a17c8ffe | ||
|
|
e69c03f6fb | ||
|
|
aafe7df561 | ||
|
|
818e07df93 | ||
|
|
23b19e0367 | ||
|
|
6e23b01434 | ||
|
|
1c5180aca7 | ||
|
|
b968f8d28f | ||
|
|
b1f1adcc9d | ||
|
|
49277340ed | ||
|
|
6d489e279c | ||
|
|
a2eb7ae9c3 | ||
|
|
892074fd1b | ||
|
|
11eec6cf15 | ||
|
|
f17d412a22 | ||
|
|
892db21e8f | ||
|
|
e4ba56ff0f | ||
|
|
edfe28d61f | ||
|
|
188197ab15 | ||
|
|
3429af3f33 | ||
|
|
232f13d2e0 | ||
|
|
0eb2d7543e | ||
|
|
c2caa68268 | ||
|
|
0033e16d4a | ||
|
|
34ccb86f8a | ||
|
|
3800fab9a8 | ||
|
|
0216e27a22 | ||
|
|
1325f58cab | ||
|
|
7e50594ada | ||
|
|
3fabc250e9 | ||
|
|
ec4d4e0cb5 | ||
|
|
cc88ea5cdf | ||
|
|
4452f2fc75 | ||
|
|
3cefe39cd7 | ||
|
|
a5fcc95299 | ||
|
|
a5d5c85fdd | ||
|
|
36c3d7dd9e | ||
|
|
9022974cf4 | ||
|
|
3744fac4ad | ||
|
|
ee208c0191 | ||
|
|
6562ef643b | ||
|
|
3ca4845d34 | ||
|
|
dabb014689 | ||
|
|
6a233fd695 | ||
|
|
d2ce6d0297 | ||
|
|
203d9de289 | ||
|
|
a624144e66 | ||
|
|
6a58e5044e | ||
|
|
54779beeff | ||
|
|
9d5fc48286 | ||
|
|
fa0339ed9f | ||
|
|
f6a89784b8 | ||
|
|
6301df55d5 | ||
|
|
378f66de7a | ||
|
|
0c48b52b5b | ||
|
|
3a1e81467f | ||
|
|
40422b9059 | ||
|
|
767fdbd773 | ||
|
|
1473886f54 | ||
|
|
daeb3d4f57 | ||
|
|
65bad83635 | ||
|
|
c2ac4fb7d9 | ||
|
|
c52fa0001a | ||
|
|
dfad2ef3ef | ||
|
|
9c6e03f4a8 | ||
|
|
2a4dfe010e | ||
|
|
f42a916c25 | ||
|
|
772b810fa8 | ||
|
|
4d4d10d5c2 | ||
|
|
0e4c7dbe64 | ||
|
|
375204c379 | ||
|
|
d76c03af4f | ||
|
|
200a6586ba |
@@ -17,7 +17,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sprite": "https://demotiles.maplibre.org/styles/osm-bright-gl-style/sprite",
|
"sprite": "https://demotiles.maplibre.org/styles/osm-bright-gl-style/sprite",
|
||||||
"glyphs": "https://api.maptiler.com/fonts/{fontstack}/{range}.pbf?key={key}",
|
|
||||||
"layers": [
|
"layers": [
|
||||||
{
|
{
|
||||||
"id": "background",
|
"id": "background",
|
||||||
|
|||||||
@@ -34,11 +34,10 @@
|
|||||||
import { editStyle } from '$lib/components/file-list/style/utils.svelte';
|
import { editStyle } from '$lib/components/file-list/style/utils.svelte';
|
||||||
import { getSymbolKey, symbols } from '$lib/assets/symbols';
|
import { getSymbolKey, symbols } from '$lib/assets/symbols';
|
||||||
import { selection, copied, cut } from '$lib/logic/selection';
|
import { selection, copied, cut } from '$lib/logic/selection';
|
||||||
import { map } from '$lib/components/map/map';
|
|
||||||
import { fileActions, pasteSelection } from '$lib/logic/file-actions';
|
import { fileActions, pasteSelection } from '$lib/logic/file-actions';
|
||||||
import { allHidden } from '$lib/logic/hidden';
|
import { allHidden } from '$lib/logic/hidden';
|
||||||
import { boundsManager } from '$lib/logic/bounds';
|
import { boundsManager } from '$lib/logic/bounds';
|
||||||
import { gpxLayers } from '$lib/components/map/gpx-layer/gpx-layers';
|
import { gpxColors, gpxLayers } from '$lib/components/map/gpx-layer/gpx-layers';
|
||||||
import { fileStateCollection } from '$lib/logic/file-state';
|
import { fileStateCollection } from '$lib/logic/file-state';
|
||||||
import { waypointPopup } from '$lib/components/map/gpx-layer/gpx-layer-popup';
|
import { waypointPopup } from '$lib/components/map/gpx-layer/gpx-layer-popup';
|
||||||
import { allowedPastes } from './sortable-file-list';
|
import { allowedPastes } from './sortable-file-list';
|
||||||
@@ -58,19 +57,11 @@
|
|||||||
|
|
||||||
let singleSelection = $derived($selection.size === 1);
|
let singleSelection = $derived($selection.size === 1);
|
||||||
|
|
||||||
let nodeColors: string[] = $state([]);
|
let nodeColors: string[] = $derived.by(() => {
|
||||||
|
|
||||||
$effect.pre(() => {
|
|
||||||
let colors: string[] = [];
|
let colors: string[] = [];
|
||||||
if (node && $map) {
|
if (node) {
|
||||||
if (node instanceof GPXFile) {
|
if (node instanceof GPXFile) {
|
||||||
let defaultColor = undefined;
|
let defaultColor = $gpxColors.get(item.getFileId());
|
||||||
|
|
||||||
let layer = gpxLayers.getLayer(item.getFileId());
|
|
||||||
if (layer) {
|
|
||||||
defaultColor = layer.layerColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
let style = node.getStyle(defaultColor);
|
let style = node.getStyle(defaultColor);
|
||||||
colors = style.color;
|
colors = style.color;
|
||||||
} else if (node instanceof Track) {
|
} else if (node instanceof Track) {
|
||||||
@@ -83,14 +74,14 @@
|
|||||||
colors.push(style['gpx_style:color']);
|
colors.push(style['gpx_style:color']);
|
||||||
}
|
}
|
||||||
if (colors.length === 0) {
|
if (colors.length === 0) {
|
||||||
let layer = gpxLayers.getLayer(item.getFileId());
|
let defaultColor = $gpxColors.get(item.getFileId());
|
||||||
if (layer) {
|
if (defaultColor) {
|
||||||
colors.push(layer.layerColor);
|
colors.push(defaultColor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
nodeColors = colors;
|
return colors;
|
||||||
});
|
});
|
||||||
|
|
||||||
let symbolKey = $derived(node instanceof Waypoint ? getSymbolKey(node.sym) : undefined);
|
let symbolKey = $derived(node instanceof Waypoint ? getSymbolKey(node.sym) : undefined);
|
||||||
|
|||||||
@@ -48,7 +48,7 @@
|
|||||||
language = 'en';
|
language = 'en';
|
||||||
}
|
}
|
||||||
|
|
||||||
map.init(PUBLIC_MAPBOX_TOKEN, language, hash, geocoder, geolocate);
|
map.init(language, hash, geocoder, geolocate);
|
||||||
});
|
});
|
||||||
|
|
||||||
onDestroy(() => {
|
onDestroy(() => {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { onDestroy, onMount } from 'svelte';
|
import { onDestroy } from 'svelte';
|
||||||
import { gpxLayers } from '$lib/components/map/gpx-layer/gpx-layers';
|
import { gpxLayers } from '$lib/components/map/gpx-layer/gpx-layers';
|
||||||
import { DistanceMarkers } from '$lib/components/map/gpx-layer/distance-markers';
|
import { DistanceMarkers } from '$lib/components/map/gpx-layer/distance-markers';
|
||||||
import { StartEndMarkers } from '$lib/components/map/gpx-layer/start-end-markers';
|
import { StartEndMarkers } from '$lib/components/map/gpx-layer/start-end-markers';
|
||||||
@@ -9,13 +9,10 @@
|
|||||||
let distanceMarkers: DistanceMarkers;
|
let distanceMarkers: DistanceMarkers;
|
||||||
let startEndMarkers: StartEndMarkers;
|
let startEndMarkers: StartEndMarkers;
|
||||||
|
|
||||||
onMount(() => {
|
map.onLoad((map_) => {
|
||||||
gpxLayers.init();
|
gpxLayers.init();
|
||||||
startEndMarkers = new StartEndMarkers();
|
startEndMarkers = new StartEndMarkers();
|
||||||
distanceMarkers = new DistanceMarkers();
|
distanceMarkers = new DistanceMarkers();
|
||||||
});
|
|
||||||
|
|
||||||
map.onLoad((map_) => {
|
|
||||||
createPopups(map_);
|
createPopups(map_);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -41,6 +41,7 @@
|
|||||||
<Button
|
<Button
|
||||||
size="sm"
|
size="sm"
|
||||||
variant="outline"
|
variant="outline"
|
||||||
|
class="justify-start"
|
||||||
href={`https://www.openstreetmap.org/edit?#map=${(($map?.getZoom() ?? 17) + 1).toFixed(0)}/${trackpoint.item.getLatitude().toFixed(5)}/${trackpoint.item.getLongitude().toFixed(5)}`}
|
href={`https://www.openstreetmap.org/edit?#map=${(($map?.getZoom() ?? 17) + 1).toFixed(0)}/${trackpoint.item.getLatitude().toFixed(5)}/${trackpoint.item.getLongitude().toFixed(5)}`}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { gpxStatistics } from '$lib/logic/statistics';
|
|||||||
import { getConvertedDistanceToKilometers } from '$lib/units';
|
import { getConvertedDistanceToKilometers } from '$lib/units';
|
||||||
import type { GeoJSONSource } from 'mapbox-gl';
|
import type { GeoJSONSource } from 'mapbox-gl';
|
||||||
import { get } from 'svelte/store';
|
import { get } from 'svelte/store';
|
||||||
import { map } from '$lib/components/map/map';
|
import { ANCHOR_LAYER_KEY, map } from '$lib/components/map/map';
|
||||||
import { allHidden } from '$lib/logic/hidden';
|
import { allHidden } from '$lib/logic/hidden';
|
||||||
|
|
||||||
const { distanceMarkers, distanceUnits } = settings;
|
const { distanceMarkers, distanceUnits } = settings;
|
||||||
@@ -44,7 +44,8 @@ export class DistanceMarkers {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (!map_.getLayer('distance-markers')) {
|
if (!map_.getLayer('distance-markers')) {
|
||||||
map_.addLayer({
|
map_.addLayer(
|
||||||
|
{
|
||||||
id: 'distance-markers',
|
id: 'distance-markers',
|
||||||
type: 'symbol',
|
type: 'symbol',
|
||||||
source: 'distance-markers',
|
source: 'distance-markers',
|
||||||
@@ -79,9 +80,9 @@ export class DistanceMarkers {
|
|||||||
'text-halo-width': 2,
|
'text-halo-width': 2,
|
||||||
'text-halo-color': 'white',
|
'text-halo-color': 'white',
|
||||||
},
|
},
|
||||||
});
|
},
|
||||||
} else {
|
ANCHOR_LAYER_KEY.distanceMarkers
|
||||||
map_.moveLayer('distance-markers');
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (map_.getLayer('distance-markers')) {
|
if (map_.getLayer('distance-markers')) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { get, type Readable } from 'svelte/store';
|
import { get, type Readable } from 'svelte/store';
|
||||||
import mapboxgl, { type FilterSpecification } from 'mapbox-gl';
|
import mapboxgl, { type FilterSpecification } from 'mapbox-gl';
|
||||||
import { map } from '$lib/components/map/map';
|
import { ANCHOR_LAYER_KEY, map } from '$lib/components/map/map';
|
||||||
import { waypointPopup, trackpointPopup } from './gpx-layer-popup';
|
import { waypointPopup, trackpointPopup } from './gpx-layer-popup';
|
||||||
import {
|
import {
|
||||||
ListTrackSegmentItem,
|
ListTrackSegmentItem,
|
||||||
@@ -22,6 +22,7 @@ import { fileActionManager } from '$lib/logic/file-action-manager';
|
|||||||
import { fileActions } from '$lib/logic/file-actions';
|
import { fileActions } from '$lib/logic/file-actions';
|
||||||
import { splitAs } from '$lib/components/toolbar/tools/scissors/scissors';
|
import { splitAs } from '$lib/components/toolbar/tools/scissors/scissors';
|
||||||
import { mapCursor, MapCursorState } from '$lib/logic/map-cursor';
|
import { mapCursor, MapCursorState } from '$lib/logic/map-cursor';
|
||||||
|
import { gpxColors } from '$lib/components/map/gpx-layer/gpx-layers';
|
||||||
|
|
||||||
const colors = [
|
const colors = [
|
||||||
'#ff0000',
|
'#ff0000',
|
||||||
@@ -43,16 +44,35 @@ for (let color of colors) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get the color with the least amount of uses
|
// Get the color with the least amount of uses
|
||||||
function getColor() {
|
function getColor(fileId: string) {
|
||||||
let color = colors.reduce((a, b) => (colorCount[a] <= colorCount[b] ? a : b));
|
let color = colors.reduce((a, b) => (colorCount[a] <= colorCount[b] ? a : b));
|
||||||
colorCount[color]++;
|
colorCount[color]++;
|
||||||
|
gpxColors.update((colors) => {
|
||||||
|
colors.set(fileId, color);
|
||||||
|
return colors;
|
||||||
|
});
|
||||||
return color;
|
return color;
|
||||||
}
|
}
|
||||||
|
|
||||||
function decrementColor(color: string) {
|
function replaceColor(fileId: string, oldColor: string, newColor: string) {
|
||||||
|
if (colorCount.hasOwnProperty(oldColor)) {
|
||||||
|
colorCount[oldColor]--;
|
||||||
|
}
|
||||||
|
colorCount[newColor]++;
|
||||||
|
gpxColors.update((colors) => {
|
||||||
|
colors.set(fileId, newColor);
|
||||||
|
return colors;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeColor(fileId: string, color: string) {
|
||||||
if (colorCount.hasOwnProperty(color)) {
|
if (colorCount.hasOwnProperty(color)) {
|
||||||
colorCount[color]--;
|
colorCount[color]--;
|
||||||
}
|
}
|
||||||
|
gpxColors.update((colors) => {
|
||||||
|
colors.delete(fileId);
|
||||||
|
return colors;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getSvgForSymbol(symbol?: string | undefined, layerColor?: string | undefined) {
|
export function getSvgForSymbol(symbol?: string | undefined, layerColor?: string | undefined) {
|
||||||
@@ -121,7 +141,7 @@ export class GPXLayer {
|
|||||||
constructor(fileId: string, file: Readable<GPXFileWithStatistics | undefined>) {
|
constructor(fileId: string, file: Readable<GPXFileWithStatistics | undefined>) {
|
||||||
this.fileId = fileId;
|
this.fileId = fileId;
|
||||||
this.file = file;
|
this.file = file;
|
||||||
this.layerColor = getColor();
|
this.layerColor = getColor(fileId);
|
||||||
this.unsubscribe.push(
|
this.unsubscribe.push(
|
||||||
map.subscribe(($map) => {
|
map.subscribe(($map) => {
|
||||||
if ($map) {
|
if ($map) {
|
||||||
@@ -158,7 +178,7 @@ export class GPXLayer {
|
|||||||
file._data.style.color &&
|
file._data.style.color &&
|
||||||
this.layerColor !== `#${file._data.style.color}`
|
this.layerColor !== `#${file._data.style.color}`
|
||||||
) {
|
) {
|
||||||
decrementColor(this.layerColor);
|
replaceColor(this.fileId, this.layerColor, `#${file._data.style.color}`);
|
||||||
this.layerColor = `#${file._data.style.color}`;
|
this.layerColor = `#${file._data.style.color}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,7 +196,8 @@ export class GPXLayer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!_map.getLayer(this.fileId)) {
|
if (!_map.getLayer(this.fileId)) {
|
||||||
_map.addLayer({
|
_map.addLayer(
|
||||||
|
{
|
||||||
id: this.fileId,
|
id: this.fileId,
|
||||||
type: 'line',
|
type: 'line',
|
||||||
source: this.fileId,
|
source: this.fileId,
|
||||||
@@ -189,7 +210,9 @@ export class GPXLayer {
|
|||||||
'line-width': ['get', 'width'],
|
'line-width': ['get', 'width'],
|
||||||
'line-opacity': ['get', 'opacity'],
|
'line-opacity': ['get', 'opacity'],
|
||||||
},
|
},
|
||||||
});
|
},
|
||||||
|
ANCHOR_LAYER_KEY.tracks
|
||||||
|
);
|
||||||
|
|
||||||
_map.on('click', this.fileId, this.layerOnClickBinded);
|
_map.on('click', this.fileId, this.layerOnClickBinded);
|
||||||
_map.on('contextmenu', this.fileId, this.layerOnContextMenuBinded);
|
_map.on('contextmenu', this.fileId, this.layerOnContextMenuBinded);
|
||||||
@@ -212,7 +235,8 @@ export class GPXLayer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!_map.getLayer(this.fileId + '-waypoints')) {
|
if (!_map.getLayer(this.fileId + '-waypoints')) {
|
||||||
_map.addLayer({
|
_map.addLayer(
|
||||||
|
{
|
||||||
id: this.fileId + '-waypoints',
|
id: this.fileId + '-waypoints',
|
||||||
type: 'symbol',
|
type: 'symbol',
|
||||||
source: this.fileId + '-waypoints',
|
source: this.fileId + '-waypoints',
|
||||||
@@ -223,7 +247,9 @@ export class GPXLayer {
|
|||||||
'icon-padding': 0,
|
'icon-padding': 0,
|
||||||
'icon-allow-overlap': true,
|
'icon-allow-overlap': true,
|
||||||
},
|
},
|
||||||
});
|
},
|
||||||
|
ANCHOR_LAYER_KEY.waypoints
|
||||||
|
);
|
||||||
|
|
||||||
_map.on(
|
_map.on(
|
||||||
'mouseenter',
|
'mouseenter',
|
||||||
@@ -272,7 +298,7 @@ export class GPXLayer {
|
|||||||
'text-halo-color': 'white',
|
'text-halo-color': 'white',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
_map.getLayer('distance-markers') ? 'distance-markers' : undefined
|
ANCHOR_LAYER_KEY.directionMarkers
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -364,7 +390,7 @@ export class GPXLayer {
|
|||||||
|
|
||||||
this.unsubscribe.forEach((unsubscribe) => unsubscribe());
|
this.unsubscribe.forEach((unsubscribe) => unsubscribe());
|
||||||
|
|
||||||
decrementColor(this.layerColor);
|
removeColor(this.fileId, this.layerColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
moveToFront() {
|
moveToFront() {
|
||||||
@@ -373,13 +399,13 @@ export class GPXLayer {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (_map.getLayer(this.fileId)) {
|
if (_map.getLayer(this.fileId)) {
|
||||||
_map.moveLayer(this.fileId);
|
_map.moveLayer(this.fileId, ANCHOR_LAYER_KEY.tracks);
|
||||||
}
|
}
|
||||||
if (_map.getLayer(this.fileId + '-waypoints')) {
|
if (_map.getLayer(this.fileId + '-waypoints')) {
|
||||||
_map.moveLayer(this.fileId + '-waypoints');
|
_map.moveLayer(this.fileId + '-waypoints', ANCHOR_LAYER_KEY.waypoints);
|
||||||
}
|
}
|
||||||
if (_map.getLayer(this.fileId + '-direction')) {
|
if (_map.getLayer(this.fileId + '-direction')) {
|
||||||
_map.moveLayer(this.fileId + '-direction');
|
_map.moveLayer(this.fileId + '-direction', ANCHOR_LAYER_KEY.directionMarkers);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { GPXFileStateCollectionObserver } from '$lib/logic/file-state';
|
import { GPXFileStateCollectionObserver } from '$lib/logic/file-state';
|
||||||
|
import { writable } from 'svelte/store';
|
||||||
import { GPXLayer } from './gpx-layer';
|
import { GPXLayer } from './gpx-layer';
|
||||||
|
|
||||||
export class GPXLayerCollection {
|
export class GPXLayerCollection {
|
||||||
@@ -42,3 +43,4 @@ export class GPXLayerCollection {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const gpxLayers = new GPXLayerCollection();
|
export const gpxLayers = new GPXLayerCollection();
|
||||||
|
export const gpxColors = writable(new Map<string, string>());
|
||||||
|
|||||||
@@ -54,28 +54,27 @@
|
|||||||
|
|
||||||
<Card.Root class="border-none shadow-md text-base p-2 max-w-[50dvw] gap-0">
|
<Card.Root class="border-none shadow-md text-base p-2 max-w-[50dvw] gap-0">
|
||||||
<Card.Header class="p-0 gap-0">
|
<Card.Header class="p-0 gap-0">
|
||||||
<Card.Title class="text-md">
|
<Card.Title class="text-md flex flex-row">
|
||||||
<div class="flex flex-row gap-3">
|
|
||||||
<div class="flex flex-col">
|
<div class="flex flex-col">
|
||||||
{name}
|
<p>{name}</p>
|
||||||
<div class="text-muted-foreground text-xs font-normal">
|
<div class="text-muted-foreground text-xs font-normal">
|
||||||
{poi.item.lat.toFixed(6)}° {poi.item.lon.toFixed(6)}°
|
{poi.item.lat.toFixed(6)}° {poi.item.lon.toFixed(6)}°
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
class="ml-auto"
|
class="ml-auto"
|
||||||
variant="outline"
|
variant="outline"
|
||||||
size="icon"
|
size="icon-sm"
|
||||||
href="https://www.openstreetmap.org/edit?editor=id&{poi.item.type ??
|
href="https://www.openstreetmap.org/edit?editor=id&{poi.item.type ?? 'node'}={poi
|
||||||
'node'}={poi.item.id}"
|
.item.id}"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
<PencilLine size="16" />
|
<PencilLine size="16" />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
|
||||||
</Card.Title>
|
</Card.Title>
|
||||||
</Card.Header>
|
</Card.Header>
|
||||||
<Card.Content class="flex flex-col p-0 text-sm mt-1 whitespace-normal break-all">
|
<Card.Content class="flex flex-col gap-1 p-0 text-sm whitespace-normal break-all">
|
||||||
<ScrollArea class="flex flex-col max-h-[30dvh]">
|
<ScrollArea class="flex flex-col max-h-[30dvh]">
|
||||||
{#if tags.image || tags['image:0']}
|
{#if tags.image || tags['image:0']}
|
||||||
<div class="w-full rounded-md overflow-clip my-2 max-w-96 mx-auto">
|
<div class="w-full rounded-md overflow-clip my-2 max-w-96 mx-auto">
|
||||||
@@ -100,8 +99,14 @@
|
|||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
</ScrollArea>
|
</ScrollArea>
|
||||||
<Button class="mt-2" variant="outline" disabled={$selection.size === 0} onclick={addToFile}>
|
<Button
|
||||||
<MapPin size="16" />
|
size="sm"
|
||||||
|
class="mt-1 justify-start"
|
||||||
|
variant="outline"
|
||||||
|
disabled={$selection.size === 0}
|
||||||
|
onclick={addToFile}
|
||||||
|
>
|
||||||
|
<MapPin size="14" />
|
||||||
{i18n._('toolbar.waypoint.add')}
|
{i18n._('toolbar.waypoint.add')}
|
||||||
</Button>
|
</Button>
|
||||||
</Card.Content>
|
</Card.Content>
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import { overpassQueryData } from '$lib/assets/layers';
|
|||||||
import { MapPopup } from '$lib/components/map/map-popup';
|
import { MapPopup } from '$lib/components/map/map-popup';
|
||||||
import { settings } from '$lib/logic/settings';
|
import { settings } from '$lib/logic/settings';
|
||||||
import { db } from '$lib/db';
|
import { db } from '$lib/db';
|
||||||
|
import { ANCHOR_LAYER_KEY } from '$lib/components/map/map';
|
||||||
|
|
||||||
const { currentOverpassQueries } = settings;
|
const { currentOverpassQueries } = settings;
|
||||||
|
|
||||||
@@ -85,7 +86,8 @@ export class OverpassLayer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!this.map.getLayer('overpass')) {
|
if (!this.map.getLayer('overpass')) {
|
||||||
this.map.addLayer({
|
this.map.addLayer(
|
||||||
|
{
|
||||||
id: 'overpass',
|
id: 'overpass',
|
||||||
type: 'symbol',
|
type: 'symbol',
|
||||||
source: 'overpass',
|
source: 'overpass',
|
||||||
@@ -95,7 +97,9 @@ export class OverpassLayer {
|
|||||||
'icon-padding': 0,
|
'icon-padding': 0,
|
||||||
'icon-allow-overlap': ['step', ['zoom'], false, 14, true],
|
'icon-allow-overlap': ['step', ['zoom'], false, 14, true],
|
||||||
},
|
},
|
||||||
});
|
},
|
||||||
|
ANCHOR_LAYER_KEY.overpass
|
||||||
|
);
|
||||||
|
|
||||||
this.map.on('mouseenter', 'overpass', this.onHoverBinded);
|
this.map.on('mouseenter', 'overpass', this.onHoverBinded);
|
||||||
this.map.on('click', 'overpass', this.onHoverBinded);
|
this.map.on('click', 'overpass', this.onHoverBinded);
|
||||||
|
|||||||
@@ -20,6 +20,28 @@ let fitBoundsOptions: mapboxgl.MapOptions['fitBoundsOptions'] = {
|
|||||||
easing: () => 1,
|
easing: () => 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const emptySource: mapboxgl.GeoJSONSourceSpecification = {
|
||||||
|
type: 'geojson',
|
||||||
|
data: {
|
||||||
|
type: 'FeatureCollection',
|
||||||
|
features: [],
|
||||||
|
},
|
||||||
|
};
|
||||||
|
export const ANCHOR_LAYER_KEY = {
|
||||||
|
mapillary: 'mapillary-end',
|
||||||
|
tracks: 'tracks-end',
|
||||||
|
directionMarkers: 'direction-markers-end',
|
||||||
|
distanceMarkers: 'distance-markers-end',
|
||||||
|
interactions: 'interactions-end',
|
||||||
|
overpass: 'overpass-end',
|
||||||
|
waypoints: 'waypoints-end',
|
||||||
|
};
|
||||||
|
const anchorLayers: mapboxgl.LayerSpecification[] = Object.values(ANCHOR_LAYER_KEY).map((id) => ({
|
||||||
|
id: id,
|
||||||
|
type: 'symbol',
|
||||||
|
source: 'empty-source',
|
||||||
|
}));
|
||||||
|
|
||||||
export class MapboxGLMap {
|
export class MapboxGLMap {
|
||||||
private _map: Writable<mapboxgl.Map | null> = writable(null);
|
private _map: Writable<mapboxgl.Map | null> = writable(null);
|
||||||
private _onLoadCallbacks: ((map: mapboxgl.Map) => void)[] = [];
|
private _onLoadCallbacks: ((map: mapboxgl.Map) => void)[] = [];
|
||||||
@@ -29,19 +51,15 @@ export class MapboxGLMap {
|
|||||||
return this._map.subscribe(run, invalidate);
|
return this._map.subscribe(run, invalidate);
|
||||||
}
|
}
|
||||||
|
|
||||||
init(
|
init(language: string, hash: boolean, geocoder: boolean, geolocate: boolean) {
|
||||||
accessToken: string,
|
|
||||||
language: string,
|
|
||||||
hash: boolean,
|
|
||||||
geocoder: boolean,
|
|
||||||
geolocate: boolean
|
|
||||||
) {
|
|
||||||
const map = new mapboxgl.Map({
|
const map = new mapboxgl.Map({
|
||||||
container: 'map',
|
container: 'map',
|
||||||
style: {
|
style: {
|
||||||
version: 8,
|
version: 8,
|
||||||
sources: {},
|
sources: {
|
||||||
layers: [],
|
'empty-source': emptySource,
|
||||||
|
},
|
||||||
|
layers: anchorLayers,
|
||||||
imports: [
|
imports: [
|
||||||
{
|
{
|
||||||
id: 'basemap',
|
id: 'basemap',
|
||||||
@@ -50,11 +68,6 @@ export class MapboxGLMap {
|
|||||||
{
|
{
|
||||||
id: 'overlays',
|
id: 'overlays',
|
||||||
url: '',
|
url: '',
|
||||||
data: {
|
|
||||||
version: 8,
|
|
||||||
sources: {},
|
|
||||||
layers: [],
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@@ -212,6 +225,7 @@ export class MapboxGLMap {
|
|||||||
const map = get(this._map);
|
const map = get(this._map);
|
||||||
if (map) {
|
if (map) {
|
||||||
const source = get(terrainSource);
|
const source = get(terrainSource);
|
||||||
|
try {
|
||||||
if (!map.getSource(source)) {
|
if (!map.getSource(source)) {
|
||||||
map.addSource(source, terrainSources[source]);
|
map.addSource(source, terrainSources[source]);
|
||||||
}
|
}
|
||||||
@@ -223,6 +237,10 @@ export class MapboxGLMap {
|
|||||||
} else {
|
} else {
|
||||||
map.setTerrain(null);
|
map.setTerrain(null);
|
||||||
}
|
}
|
||||||
|
} catch (e) {
|
||||||
|
// No reliable way to check if the map is ready to add sources and layers
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import mapboxgl, { type LayerSpecification, type VectorSourceSpecification } fro
|
|||||||
import { Viewer, type ViewerBearingEvent } from 'mapillary-js/dist/mapillary.module';
|
import { Viewer, type ViewerBearingEvent } from 'mapillary-js/dist/mapillary.module';
|
||||||
import 'mapillary-js/dist/mapillary.css';
|
import 'mapillary-js/dist/mapillary.css';
|
||||||
import { mapCursor, MapCursorState } from '$lib/logic/map-cursor';
|
import { mapCursor, MapCursorState } from '$lib/logic/map-cursor';
|
||||||
|
import { ANCHOR_LAYER_KEY } from '$lib/components/map/map';
|
||||||
|
|
||||||
const mapillarySource: VectorSourceSpecification = {
|
const mapillarySource: VectorSourceSpecification = {
|
||||||
type: 'vector',
|
type: 'vector',
|
||||||
@@ -99,10 +100,10 @@ export class MapillaryLayer {
|
|||||||
this.map.addSource('mapillary', mapillarySource);
|
this.map.addSource('mapillary', mapillarySource);
|
||||||
}
|
}
|
||||||
if (!this.map.getLayer('mapillary-sequence')) {
|
if (!this.map.getLayer('mapillary-sequence')) {
|
||||||
this.map.addLayer(mapillarySequenceLayer);
|
this.map.addLayer(mapillarySequenceLayer, ANCHOR_LAYER_KEY.mapillary);
|
||||||
}
|
}
|
||||||
if (!this.map.getLayer('mapillary-image')) {
|
if (!this.map.getLayer('mapillary-image')) {
|
||||||
this.map.addLayer(mapillaryImageLayer);
|
this.map.addLayer(mapillaryImageLayer, ANCHOR_LAYER_KEY.mapillary);
|
||||||
}
|
}
|
||||||
this.map.on('style.load', this.addBinded);
|
this.map.on('style.load', this.addBinded);
|
||||||
this.map.on('mouseenter', 'mapillary-image', this.onMouseEnterBinded);
|
this.map.on('mouseenter', 'mapillary-image', this.onMouseEnterBinded);
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
import { onDestroy, onMount } from 'svelte';
|
import { onDestroy, onMount } from 'svelte';
|
||||||
import { getURLForLanguage } from '$lib/utils';
|
import { getURLForLanguage } from '$lib/utils';
|
||||||
import { Trash2 } from '@lucide/svelte';
|
import { Trash2 } from '@lucide/svelte';
|
||||||
import { map } from '$lib/components/map/map';
|
import { ANCHOR_LAYER_KEY, map } from '$lib/components/map/map';
|
||||||
import type { GeoJSONSource } from 'mapbox-gl';
|
import type { GeoJSONSource } from 'mapbox-gl';
|
||||||
import { selection } from '$lib/logic/selection';
|
import { selection } from '$lib/logic/selection';
|
||||||
import { fileActions } from '$lib/logic/file-actions';
|
import { fileActions } from '$lib/logic/file-actions';
|
||||||
@@ -63,7 +63,8 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (!$map.getLayer('rectangle')) {
|
if (!$map.getLayer('rectangle')) {
|
||||||
$map.addLayer({
|
$map.addLayer(
|
||||||
|
{
|
||||||
id: 'rectangle',
|
id: 'rectangle',
|
||||||
type: 'fill',
|
type: 'fill',
|
||||||
source: 'rectangle',
|
source: 'rectangle',
|
||||||
@@ -71,7 +72,9 @@
|
|||||||
'fill-color': 'SteelBlue',
|
'fill-color': 'SteelBlue',
|
||||||
'fill-opacity': 0.5,
|
'fill-opacity': 0.5,
|
||||||
},
|
},
|
||||||
});
|
},
|
||||||
|
ANCHOR_LAYER_KEY.interactions
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
import { Button } from '$lib/components/ui/button';
|
import { Button } from '$lib/components/ui/button';
|
||||||
import Help from '$lib/components/Help.svelte';
|
import Help from '$lib/components/Help.svelte';
|
||||||
import { MountainSnow } from '@lucide/svelte';
|
import { MountainSnow } from '@lucide/svelte';
|
||||||
import { map } from '$lib/components/map/map';
|
|
||||||
import { i18n } from '$lib/i18n.svelte';
|
import { i18n } from '$lib/i18n.svelte';
|
||||||
import { getURLForLanguage } from '$lib/utils';
|
import { getURLForLanguage } from '$lib/utils';
|
||||||
import { selection } from '$lib/logic/selection';
|
import { selection } from '$lib/logic/selection';
|
||||||
@@ -20,11 +19,7 @@
|
|||||||
variant="outline"
|
variant="outline"
|
||||||
class="whitespace-normal h-fit"
|
class="whitespace-normal h-fit"
|
||||||
disabled={!validSelection}
|
disabled={!validSelection}
|
||||||
onclick={() => {
|
onclick={() => fileActions.addElevationToSelection()}
|
||||||
if ($map) {
|
|
||||||
fileActions.addElevationToSelection($map);
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
>
|
>
|
||||||
<MountainSnow size="16" class="shrink-0" />
|
<MountainSnow size="16" class="shrink-0" />
|
||||||
{i18n._('toolbar.elevation.button')}
|
{i18n._('toolbar.elevation.button')}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { ListItem, ListTrackSegmentItem } from '$lib/components/file-list/file-list';
|
import { ListItem, ListTrackSegmentItem } from '$lib/components/file-list/file-list';
|
||||||
import { map } from '$lib/components/map/map';
|
import { ANCHOR_LAYER_KEY, map } from '$lib/components/map/map';
|
||||||
import { fileActions } from '$lib/logic/file-actions';
|
import { fileActions } from '$lib/logic/file-actions';
|
||||||
import { GPXFileStateCollectionObserver, type GPXFileState } from '$lib/logic/file-state';
|
import { GPXFileStateCollectionObserver, type GPXFileState } from '$lib/logic/file-state';
|
||||||
import { selection } from '$lib/logic/selection';
|
import { selection } from '$lib/logic/selection';
|
||||||
@@ -144,7 +144,8 @@ export class ReducedGPXLayerCollection {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (!map_.getLayer('simplified')) {
|
if (!map_.getLayer('simplified')) {
|
||||||
map_.addLayer({
|
map_.addLayer(
|
||||||
|
{
|
||||||
id: 'simplified',
|
id: 'simplified',
|
||||||
type: 'line',
|
type: 'line',
|
||||||
source: 'simplified',
|
source: 'simplified',
|
||||||
@@ -152,9 +153,9 @@ export class ReducedGPXLayerCollection {
|
|||||||
'line-color': 'white',
|
'line-color': 'white',
|
||||||
'line-width': 3,
|
'line-width': 3,
|
||||||
},
|
},
|
||||||
});
|
},
|
||||||
} else {
|
ANCHOR_LAYER_KEY.interactions
|
||||||
map_.moveLayer('simplified');
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import { get } from 'svelte/store';
|
|||||||
import { fileStateCollection } from '$lib/logic/file-state';
|
import { fileStateCollection } from '$lib/logic/file-state';
|
||||||
import { fileActions } from '$lib/logic/file-actions';
|
import { fileActions } from '$lib/logic/file-actions';
|
||||||
import { mapCursor, MapCursorState } from '$lib/logic/map-cursor';
|
import { mapCursor, MapCursorState } from '$lib/logic/map-cursor';
|
||||||
|
import { ANCHOR_LAYER_KEY } from '$lib/components/map/map';
|
||||||
|
|
||||||
export class SplitControls {
|
export class SplitControls {
|
||||||
map: mapboxgl.Map;
|
map: mapboxgl.Map;
|
||||||
@@ -108,7 +109,8 @@ export class SplitControls {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!this.map.getLayer('split-controls')) {
|
if (!this.map.getLayer('split-controls')) {
|
||||||
this.map.addLayer({
|
this.map.addLayer(
|
||||||
|
{
|
||||||
id: 'split-controls',
|
id: 'split-controls',
|
||||||
type: 'symbol',
|
type: 'symbol',
|
||||||
source: 'split-controls',
|
source: 'split-controls',
|
||||||
@@ -118,14 +120,14 @@ export class SplitControls {
|
|||||||
'icon-padding': 0,
|
'icon-padding': 0,
|
||||||
},
|
},
|
||||||
filter: ['<=', ['get', 'minZoom'], ['zoom']],
|
filter: ['<=', ['get', 'minZoom'], ['zoom']],
|
||||||
});
|
},
|
||||||
|
ANCHOR_LAYER_KEY.interactions
|
||||||
|
);
|
||||||
|
|
||||||
this.map.on('mouseenter', 'split-controls', this.layerOnMouseEnterBinded);
|
this.map.on('mouseenter', 'split-controls', this.layerOnMouseEnterBinded);
|
||||||
this.map.on('mouseleave', 'split-controls', this.layerOnMouseLeaveBinded);
|
this.map.on('mouseleave', 'split-controls', this.layerOnMouseLeaveBinded);
|
||||||
this.map.on('click', 'split-controls', this.layerOnClickBinded);
|
this.map.on('click', 'split-controls', this.layerOnClickBinded);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.map.moveLayer('split-controls');
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
// No reliable way to check if the map is ready to add sources and layers
|
// No reliable way to check if the map is ready to add sources and layers
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ title: Files and statistics
|
|||||||
|
|
||||||
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
||||||
let slicedGPXStatistics = writable(undefined);
|
let slicedGPXStatistics = writable(undefined);
|
||||||
|
let hoveredPoint = writable(null);
|
||||||
let additionalDatasets = writable(['speed', 'atemp']);
|
let additionalDatasets = writable(['speed', 'atemp']);
|
||||||
let elevationFill = writable(undefined);
|
let elevationFill = writable(undefined);
|
||||||
</script>
|
</script>
|
||||||
@@ -84,6 +85,7 @@ You can also use the mouse wheel to zoom in and out on the elevation profile, an
|
|||||||
<ElevationProfile
|
<ElevationProfile
|
||||||
{gpxStatistics}
|
{gpxStatistics}
|
||||||
{slicedGPXStatistics}
|
{slicedGPXStatistics}
|
||||||
|
{hoveredPoint}
|
||||||
{additionalDatasets}
|
{additionalDatasets}
|
||||||
{elevationFill}
|
{elevationFill}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
## <HeartHandshake size="18" class="inline-block align-baseline" /> Help keep the website free (and ad-free)
|
## <HeartHandshake size="18" class="inline-block align-baseline" /> Help keep the website free (and ad-free)
|
||||||
|
|
||||||
Each time you add or move GPS points, our servers calculate the best route on the road network.
|
Each time you add or move GPS points, our servers calculate the best route on the road network.
|
||||||
We also use APIs from <a href="https://mapbox.com" target="_blank">Mapbox</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
We also use APIs from <a href="https://maptiler.com" target="_blank">MapTiler</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
||||||
|
|
||||||
Unfortunately, this is expensive.
|
Unfortunately, this is expensive.
|
||||||
If you enjoy using this tool and find it valuable, please consider making a small donation to help keep the website free and ad-free.
|
If you enjoy using this tool and find it valuable, please consider making a small donation to help keep the website free and ad-free.
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ title: Інтэграцыя
|
|||||||
|
|
||||||
Усё, што вам трэба, гэта:
|
Усё, што вам трэба, гэта:
|
||||||
|
|
||||||
1. <a href="https://account.mapbox.com/auth/signup" target="_blank">Ключ доступу Mapbox</a> для загрузкі карты і
|
1. A <a href="https://cloud.maptiler.com/auth/widget?next=https://cloud.maptiler.com/maps/" target="_blank">MapTiler key</a> to load the map, and
|
||||||
2. Файлы GPX, размешчаныя на вашым серверы або на Google Drive, або даступныя праз публічны URL.
|
2. Файлы GPX, размешчаныя на вашым серверы або на Google Drive, або даступныя праз публічны URL.
|
||||||
|
|
||||||
Затым вы можаце пагуляць з канфігуратарам ніжэй, каб наладзіць сваю карту і стварыць адпаведны HTML-код.
|
Затым вы можаце пагуляць з канфігуратарам ніжэй, каб наладзіць сваю карту і стварыць адпаведны HTML-код.
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ These controls allow you to navigate the map, zoom in and out, and switch betwee
|
|||||||
<div class="flex flex-col items-center">
|
<div class="flex flex-col items-center">
|
||||||
<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">Пешаходных Сцежак</a> на базавай карце <a href="https://www.mapbox.com/maps/outdoors" target="_blank">Mapbox Outdoors</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 <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -67,4 +67,4 @@ These controls allow you to navigate the map, zoom in and out, and switch betwee
|
|||||||
|
|
||||||
У гэтых наладах вы таксама можаце кіраваць непразрыстасцю накладанняў.
|
У гэтых наладах вы таксама можаце кіраваць непразрыстасцю накладанняў.
|
||||||
|
|
||||||
Для прасунутых карыстальнікаў можна дадаваць карыстальніцкія базавыя карты і накладкі, дадаўшы URL-адрасы <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a> або <a href="https://docs.mapbox.com/help/glossary/style/" target="_blank">JSON у стылі Mapbox</a>.
|
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://maplibre.org/maplibre-style-spec/" target="_blank">MapLibre style JSON</a> URLs.
|
||||||
|
|||||||
@@ -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://mapbox.com" target="_blank">Mapbox</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://docs.mapbox.com/data/tilesets/reference/mapbox-terrain-dem-v1/#elevation-data" 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>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ title: Fitxers i estadístiques
|
|||||||
|
|
||||||
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
||||||
let slicedGPXStatistics = writable(undefined);
|
let slicedGPXStatistics = writable(undefined);
|
||||||
|
let hoveredPoint = writable(null);
|
||||||
let additionalDatasets = writable(['speed', 'atemp']);
|
let additionalDatasets = writable(['speed', 'atemp']);
|
||||||
let elevationFill = writable(undefined);
|
let elevationFill = writable(undefined);
|
||||||
</script>
|
</script>
|
||||||
@@ -84,6 +85,7 @@ També pots utilitzar la rodeta del ratolí per apropar o allunyar el perfil d'e
|
|||||||
<ElevationProfile
|
<ElevationProfile
|
||||||
{gpxStatistics}
|
{gpxStatistics}
|
||||||
{slicedGPXStatistics}
|
{slicedGPXStatistics}
|
||||||
|
{hoveredPoint}
|
||||||
{additionalDatasets}
|
{additionalDatasets}
|
||||||
{elevationFill}
|
{elevationFill}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
## <HeartHandshake size="18" class="inline-block align-baseline" /> Ajuda a mantenir aquesta pàgina web gratuïta (i sense anuncis)
|
## <HeartHandshake size="18" class="inline-block align-baseline" /> Ajuda a mantenir aquesta pàgina web gratuïta (i sense anuncis)
|
||||||
|
|
||||||
Cada cop que afegeixes o mous un punt GPS, els nostres servidors calculen la millor ruta possible.
|
Cada cop que afegeixes o mous un punt GPS, els nostres servidors calculen la millor ruta possible.
|
||||||
També utilitzen l'API de <a href="https://mapbox.com" target="_blank">Mapbox</a> per ensenyar mapes bonics, donar informació sobre l'altitud i permetre la cerca de llocs d'interès.
|
We also use APIs from <a href="https://maptiler.com" target="_blank">MapTiler</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
||||||
|
|
||||||
Desafortunadament, això és car.
|
Desafortunadament, això és car.
|
||||||
Si gaudeixes aquesta eina i la trobes valuosa, si us plau, considera fer una petita donació per ajudar a mantenir la pàgina web gratuïta i sense anuncis.
|
Si gaudeixes aquesta eina i la trobes valuosa, si us plau, considera fer una petita donació per ajudar a mantenir la pàgina web gratuïta i sense anuncis.
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ Pots utilitzar **gpx.studio** per crear mapes que mostrin els teus arxius GPX i
|
|||||||
|
|
||||||
Tot el que necessites és:
|
Tot el que necessites és:
|
||||||
|
|
||||||
1. Un <a href="https://account.mapbox.com/auth/signup" target="_blank"> token d'accés a Mapbox</a> per carregar el mapa i
|
1. A <a href="https://cloud.maptiler.com/auth/widget?next=https://cloud.maptiler.com/maps/" target="_blank">MapTiler key</a> to load the map, and
|
||||||
2. Arxius GPX allotjats en el teu servidor, a Google Drive o accessibles a través d'una URL pública.
|
2. Arxius GPX allotjats en el teu servidor, a Google Drive o accessibles a través d'una URL pública.
|
||||||
|
|
||||||
Aleshores pots jugar amb el configurador de sota per personalitzar el teu mapa i generar el corresponent codi HTML.
|
Aleshores pots jugar amb el configurador de sota per personalitzar el teu mapa i generar el corresponent codi HTML.
|
||||||
|
|||||||
@@ -55,7 +55,10 @@ El botó de capa de mapa permet canviar entre diferents mapes base i alternar ca
|
|||||||
- Les **Capes sobreposades** són capes addicionals que es poden mostrar sobre el mapa base per proporcionar informació complementària.
|
- Les **Capes sobreposades** són capes addicionals que es poden mostrar sobre el mapa base per proporcionar informació complementària.
|
||||||
- Els **Punts d'interès** es poden afegir al mapa per mostrar diferents categories de llocs, com botigues, restaurants o allotjaments.
|
- Els **Punts d'interès** es poden afegir al mapa per mostrar diferents categories de llocs, com botigues, restaurants o allotjaments.
|
||||||
|
|
||||||
<div class="flex flex-col items-center"><DocsLayers /><span class="text-sm text-center mt-2">Situa el cursor sobre el mapa per mostrar la capa <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> sobreposada sobre del <a href="https://www.mapbox.com/maps/outdoors" target="_blank">Mapbox Outdoors</a> mapa base.
|
<div class="flex flex-col items-center">
|
||||||
|
<DocsLayers />
|
||||||
|
<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 <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -64,4 +67,4 @@ Poden activar-se en el [configuració de capes del mapa](./menu/settings).
|
|||||||
|
|
||||||
En aquests ajustaments pots gestionar l'opacitat de les capes sobreposades.
|
En aquests ajustaments pots gestionar l'opacitat de les capes sobreposades.
|
||||||
|
|
||||||
Per a usuaris avançats és possible afegir mapes base i sobreposicions personalitzades proporcionant <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, o <a href="https://docs.mapbox.com/help/glossary/style/" target="_blank">JSON tipus Mapbox</a> URLs.
|
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://maplibre.org/maplibre-style-spec/" target="_blank">MapLibre style JSON</a> URLs.
|
||||||
|
|||||||
@@ -29,13 +29,13 @@ Pots arrossegar y deixar arxius directament des del seu sistema d'arxius cap a l
|
|||||||
|
|
||||||
Crear una còpia dels arxius seleccionats.
|
Crear una còpia dels arxius seleccionats.
|
||||||
|
|
||||||
### <FileX size="16" class="inline-block" style="margin-bottom: 2px" /> Delete
|
### <FileX size="16" class="inline-block" style="margin-bottom: 2px" /> Esborra
|
||||||
|
|
||||||
Delete the currently selected files.
|
Esborra l'arxiu seleccinat.
|
||||||
|
|
||||||
### <FileX size="16" class="inline-block" style="margin-bottom: 2px" /> Delete all
|
### <FileX size="16" class="inline-block" style="margin-bottom: 2px" /> Esborra-ho tot
|
||||||
|
|
||||||
Delete all files.
|
Esborra tots els fitxers.
|
||||||
|
|
||||||
### <Download size="16" class="inline-block" style="margin-bottom: 2px" /> Exportar...
|
### <Download size="16" class="inline-block" style="margin-bottom: 2px" /> Exportar...
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Aquesta eina permet afegir dades d'elevació a traces i [punts d'interès](../gp
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Dades d'elevació subministrades per <a href="https://mapbox.com" target="_blank">Mapbox</a>.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
Pots aprendre més sobre els seus orígens i precisió en la <a href="https://docs.mapbox.com/data/tilesets/reference/mapbox-terrain-dem-v1/#elevation-data" target="_blank">documentació</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>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ title: Soubory a statistiky
|
|||||||
|
|
||||||
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
||||||
let slicedGPXStatistics = writable(undefined);
|
let slicedGPXStatistics = writable(undefined);
|
||||||
|
let hoveredPoint = writable(null);
|
||||||
let additionalDatasets = writable(['speed', 'atemp']);
|
let additionalDatasets = writable(['speed', 'atemp']);
|
||||||
let elevationFill = writable(undefined);
|
let elevationFill = writable(undefined);
|
||||||
</script>
|
</script>
|
||||||
@@ -84,6 +85,7 @@ Pomocí kolečka myši můžete také výškový profil přiblížit a oddálit
|
|||||||
<ElevationProfile
|
<ElevationProfile
|
||||||
{gpxStatistics}
|
{gpxStatistics}
|
||||||
{slicedGPXStatistics}
|
{slicedGPXStatistics}
|
||||||
|
{hoveredPoint}
|
||||||
{additionalDatasets}
|
{additionalDatasets}
|
||||||
{elevationFill}
|
{elevationFill}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
## <HeartHandshake size="18" class="inline-block align-baseline" /> Pomozte udržet web zdarma (a bez reklam)
|
## <HeartHandshake size="18" class="inline-block align-baseline" /> Pomozte udržet web zdarma (a bez reklam)
|
||||||
|
|
||||||
Vždy, když přidáte nebo přesunete GPS body, naše servery vypočítají nejlepší cestu po silniční síti.
|
Vždy, když přidáte nebo přesunete GPS body, naše servery vypočítají nejlepší cestu po silniční síti.
|
||||||
Používáme také API z <a href="https://mapbox.com" target="_blank">Mapboxu</a> pro zobrazení krásných map, získání dat o nadmořské výšce a vyhledávání míst.
|
We also use APIs from <a href="https://maptiler.com" target="_blank">MapTiler</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
||||||
|
|
||||||
Bohužel, to vše je nákladné.
|
Bohužel, to vše je nákladné.
|
||||||
Pokud rádi používáte tento nástroj a zdá se vám hodnotný, zvažte prosím malý příspěvek k udržení webu zdarma a bez reklam.
|
Pokud rádi používáte tento nástroj a zdá se vám hodnotný, zvažte prosím malý příspěvek k udržení webu zdarma a bez reklam.
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ Pomocí **gpx.studio** můžete vytvářet mapy se zobrazením souborů GPX a vk
|
|||||||
|
|
||||||
Vše, co potřebujete, je:
|
Vše, co potřebujete, je:
|
||||||
|
|
||||||
1. <a href="https://account.mapbox.com/auth/signup" target="_blank">Přístupový token Mapboxu</a> k načtení mapy,
|
1. A <a href="https://cloud.maptiler.com/auth/widget?next=https://cloud.maptiler.com/maps/" target="_blank">MapTiler key</a> to load the map, and
|
||||||
2. Soubory GPX umístěné na vašem serveru nebo na Disku Google, nebo přístupné prostřednictvím veřejné adresy URL.
|
2. Soubory GPX umístěné na vašem serveru nebo na Disku Google, nebo přístupné prostřednictvím veřejné adresy URL.
|
||||||
|
|
||||||
V níže zobrazeném konfigurátoru si pak můžete mapu přizpůsobit a vygenerovat odpovídající kód HTML.
|
V níže zobrazeném konfigurátoru si pak můžete mapu přizpůsobit a vygenerovat odpovídající kód HTML.
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ Tlačítko mapové vrstvy umožňuje přepínat mezi různými podkladovými map
|
|||||||
<div class="flex flex-col items-center">
|
<div class="flex flex-col items-center">
|
||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
Po najetí myší nad mapu se zobrazí překryv<a href="https://hiking.waymarkedtrails.org" target="_blank">značených stezek pro pěší turistiku</a> na podkladové mapě <a href="https://www.mapbox.com/maps/outdoors" target="_blank">Mapbox Outdoors</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 <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -67,4 +67,4 @@ Lze je povolit v nabídce [nastavení mapových vrstev](./menu/settings).
|
|||||||
|
|
||||||
V tomto nastavení můžete také spravovat neprůhlednost překryvů.
|
V tomto nastavení můžete také spravovat neprůhlednost překryvů.
|
||||||
|
|
||||||
Pokročilí uživatelé mohou přidávat vlastní podkladové mapy a překryvy pomocí <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a> nebo URL <a href="https://docs.mapbox.com/help/glossary/style/" target="_blank">Mapbox stylu JSON</a>.
|
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://maplibre.org/maplibre-style-spec/" target="_blank">MapLibre style JSON</a> URLs.
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Tento nástroj umožňuje přidat údaje o nadmořské výšce ke stopám a [bod
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Údaje o nadmořské výšce poskytuje <a href="https://mapbox.com" target="_blank">Mapbox</a>.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
Více informací o jejich původu a přesnosti najdete v <a href="https://docs.mapbox.com/data/tilesets/reference/mapbox-terrain-dem-v1/#elevation-data" target="_blank">dokumentaci</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>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ title: Files and statistics
|
|||||||
|
|
||||||
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
||||||
let slicedGPXStatistics = writable(undefined);
|
let slicedGPXStatistics = writable(undefined);
|
||||||
|
let hoveredPoint = writable(null);
|
||||||
let additionalDatasets = writable(['speed', 'atemp']);
|
let additionalDatasets = writable(['speed', 'atemp']);
|
||||||
let elevationFill = writable(undefined);
|
let elevationFill = writable(undefined);
|
||||||
</script>
|
</script>
|
||||||
@@ -84,6 +85,7 @@ You can also use the mouse wheel to zoom in and out on the elevation profile, an
|
|||||||
<ElevationProfile
|
<ElevationProfile
|
||||||
{gpxStatistics}
|
{gpxStatistics}
|
||||||
{slicedGPXStatistics}
|
{slicedGPXStatistics}
|
||||||
|
{hoveredPoint}
|
||||||
{additionalDatasets}
|
{additionalDatasets}
|
||||||
{elevationFill}
|
{elevationFill}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
## <HeartHandshake size="18" class="inline-block align-baseline" /> Help keep the website free (and ad-free)
|
## <HeartHandshake size="18" class="inline-block align-baseline" /> Help keep the website free (and ad-free)
|
||||||
|
|
||||||
Each time you add or move GPS points, our servers calculate the best route on the road network.
|
Each time you add or move GPS points, our servers calculate the best route on the road network.
|
||||||
We also use APIs from <a href="https://mapbox.com" target="_blank">Mapbox</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
We also use APIs from <a href="https://maptiler.com" target="_blank">MapTiler</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
||||||
|
|
||||||
Unfortunately, this is expensive.
|
Unfortunately, this is expensive.
|
||||||
If you enjoy using this tool and find it valuable, please consider making a small donation to help keep the website free and ad-free.
|
If you enjoy using this tool and find it valuable, please consider making a small donation to help keep the website free and ad-free.
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ You can use **gpx.studio** to create maps showing your GPX files and embed them
|
|||||||
|
|
||||||
All you need is:
|
All you need is:
|
||||||
|
|
||||||
1. A <a href="https://account.mapbox.com/auth/signup" target="_blank">Mapbox access token</a> to load the map, and
|
1. A <a href="https://cloud.maptiler.com/auth/widget?next=https://cloud.maptiler.com/maps/" target="_blank">MapTiler key</a> to load the map, and
|
||||||
2. GPX files hosted on your server or on Google Drive, or accessible via a public URL.
|
2. GPX files hosted on your server or on Google Drive, or accessible via a public URL.
|
||||||
|
|
||||||
You can then play with the configurator below to customize your map and generate the corresponding HTML code.
|
You can then play with the configurator below to customize your map and generate the corresponding HTML code.
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ The map layers button allows you to switch between different basemaps, and toggl
|
|||||||
<div class="flex flex-col items-center">
|
<div class="flex flex-col items-center">
|
||||||
<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 <a href="https://www.mapbox.com/maps/outdoors" target="_blank">Mapbox Outdoors</a> 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>
|
||||||
|
|
||||||
@@ -67,4 +67,4 @@ They can be enabled in the [map layer settings dialog](./menu/settings).
|
|||||||
|
|
||||||
In these settings, you can also manage the opacity of the overlays.
|
In these settings, you can also manage the opacity of the overlays.
|
||||||
|
|
||||||
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://docs.mapbox.com/help/glossary/style/" target="_blank">Mapbox style JSON</a> URLs.
|
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://maplibre.org/maplibre-style-spec/" target="_blank">MapLibre style JSON</a> URLs.
|
||||||
|
|||||||
@@ -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://mapbox.com" target="_blank">Mapbox</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://docs.mapbox.com/data/tilesets/reference/mapbox-terrain-dem-v1/#elevation-data" 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>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ title: Dateien und Statistiken
|
|||||||
|
|
||||||
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
||||||
let slicedGPXStatistics = writable(undefined);
|
let slicedGPXStatistics = writable(undefined);
|
||||||
|
let hoveredPoint = writable(null);
|
||||||
let additionalDatasets = writable(['speed', 'atemp']);
|
let additionalDatasets = writable(['speed', 'atemp']);
|
||||||
let elevationFill = writable(undefined);
|
let elevationFill = writable(undefined);
|
||||||
</script>
|
</script>
|
||||||
@@ -84,6 +85,7 @@ Sie können auch das Mausrad verwenden, um auf dem Höhenprofil heranzuzoomen un
|
|||||||
<ElevationProfile
|
<ElevationProfile
|
||||||
{gpxStatistics}
|
{gpxStatistics}
|
||||||
{slicedGPXStatistics}
|
{slicedGPXStatistics}
|
||||||
|
{hoveredPoint}
|
||||||
{additionalDatasets}
|
{additionalDatasets}
|
||||||
{elevationFill}
|
{elevationFill}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
## <HeartHandshake size="18" class="inline-block align-baseline" /> Helfen Sie, die Website kostenlos (und werbefrei) zu erhalten
|
## <HeartHandshake size="18" class="inline-block align-baseline" /> Helfen Sie, die Website kostenlos (und werbefrei) zu erhalten
|
||||||
|
|
||||||
Jedes Mal, wenn Sie GPS-Punkte hinzufügen oder verschieben, berechnen unsere Server die beste Route im Straßennetz.
|
Jedes Mal, wenn Sie GPS-Punkte hinzufügen oder verschieben, berechnen unsere Server die beste Route im Straßennetz.
|
||||||
Wir verwenden auch APIs von <a href="https://mapbox.com" target="_blank">Mapbox</a>, um schöne Karten anzuzeigen, Höhendaten abzurufen und Ihnen die Suche nach Orten zu ermöglichen.
|
We also use APIs from <a href="https://maptiler.com" target="_blank">MapTiler</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
||||||
|
|
||||||
Leider ist dies mit hohen Kosten verbunden.
|
Leider ist dies mit hohen Kosten verbunden.
|
||||||
Wenn Sie dieses Tool gerne verwenden und es wertvoll finden, erwägen Sie bitte eine kleine Spende, um die Website kostenlos und werbefrei zu halten.
|
Wenn Sie dieses Tool gerne verwenden und es wertvoll finden, erwägen Sie bitte eine kleine Spende, um die Website kostenlos und werbefrei zu halten.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
Mapbox ist das Unternehmen, das einige der schönen Karten auf dieser Website zur Verfügung stellt.
|
Mapbox stellt einige der auf dieser Website verwendeten Karten bereit.
|
||||||
Sie entwickeln auch die <a href="https://github.com/mapbox/mapbox-gl-js" target="_blank">Karten-Engine</a> welche **gpx.studio** unterstützt.
|
Sie entwickeln auch die <a href="https://github.com/mapbox/mapbox-gl-js" target="_blank">Karten-Engine</a>, die **gpx.studio** unterstützt.
|
||||||
|
|
||||||
Wir sind äußerst glücklich und dankbar, Teil ihres <a href="https://mapbox.com/community" target="_blank">Community</a> Programms zu sein, das gemeinnützige Organisationen, Bildungseinrichtungen und Organisationen mit positivem Einfluss unterstützt.
|
Wir sind froh und dankbar, Teil ihres <a href="https://mapbox.com/community" target="_blank">Community</a> Programms zu sein, das gemeinnützige Organisationen, Bildungseinrichtungen und Organisationen unterstützt.
|
||||||
Diese Partnerschaft ermöglicht es **gpx.studio**, von den Mapbox-Tools zu ermäßigten Preisen zu profitieren, was erheblich zur finanziellen Tragfähigkeit des Projekts beiträgt und es uns ermöglicht, die bestmögliche Benutzererfahrung zu bieten.
|
Diese Partnerschaft ermöglicht es **gpx.studio**, von den Mapbox-Tools zu ermäßigten Preisen zu profitieren, was erheblich zur finanziellen Tragfähigkeit des Projekts beiträgt und es uns ermöglicht, die bestmögliche Benutzererfahrung zu bieten.
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ Du kannst **gpx.studio** verwenden, um Karten zu erstellen, die deine GPX-Dateie
|
|||||||
|
|
||||||
Alles was Sie brauchen:
|
Alles was Sie brauchen:
|
||||||
|
|
||||||
1. Eine <a href="https://account.mapbox.com/auth/signup" target="_blank">Mapbox Zugriffstoken</a> zum Laden der Karte, und
|
1. A <a href="https://cloud.maptiler.com/auth/widget?next=https://cloud.maptiler.com/maps/" target="_blank">MapTiler key</a> to load the map, and
|
||||||
2. GPX-Dateien, die auf Ihrem Server oder Google Drive gehostet werden oder über eine öffentliche URL erreichbar sind.
|
2. GPX-Dateien, die auf Ihrem Server oder Google Drive gehostet werden oder über eine öffentliche URL erreichbar sind.
|
||||||
|
|
||||||
Sie können dann mit dem Konfigurator unten spielen, um Ihre Karte anzupassen und den entsprechenden HTML-Code zu generieren.
|
Sie können dann mit dem Konfigurator unten spielen, um Ihre Karte anzupassen und den entsprechenden HTML-Code zu generieren.
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ Mit der Schaltfläche Karten-Ebenen können Sie zwischen verschiedenen Basemaps
|
|||||||
<div class="flex flex-col items-center">
|
<div class="flex flex-col items-center">
|
||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
Fahren Sie über der Karte, um die <a href="https://hiking.waymarkedtrails.org" target="_blank">Wegmarkierte Wanderwege</a> Overlay oben auf die <a href="https://www.mapbox.com/maps/outdoors" target="_blank">Mapbox Outdoors</a> Basemap anzuzeigen.
|
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>
|
||||||
|
|
||||||
@@ -67,4 +67,4 @@ Sie können im [Einstellungsdialog für die Kartenlayer Einstellungen](./menu/se
|
|||||||
|
|
||||||
In diesen Einstellungen können Sie auch die Deckkraft der Overlays verwalten.
|
In diesen Einstellungen können Sie auch die Deckkraft der Overlays verwalten.
|
||||||
|
|
||||||
Für fortgeschrittene Benutzer ist es möglich, benutzerdefinierte Basemaps und Overlays durch die Bereitstellung von <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>hinzuzufügen, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>oder <a href="https://docs.mapbox.com/help/glossary/style/" target="_blank">Mapbox Stil JSON</a> URLs.
|
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://maplibre.org/maplibre-style-spec/" target="_blank">MapLibre style JSON</a> URLs.
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ Erstelle eine Kopie der aktuell ausgewählten Dateien.
|
|||||||
|
|
||||||
Delete the currently selected files.
|
Delete the currently selected files.
|
||||||
|
|
||||||
### <FileX size="16" class="inline-block" style="margin-bottom: 2px" /> Delete all
|
### <FileX size="16" class="inline-block" style="margin-bottom: 2px" /> Lösche alles
|
||||||
|
|
||||||
Delete all files.
|
Delete all files.
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Mit diesem Tool kannst du Höhendaten zu Routen und [Points of Interest] (../gpx
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Höhendaten werden von <a href="https://mapbox.com" target="_blank">Mapbox</a> bereitgestellt.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
Du kannst mehr über den Ursprung und die Genauigkeit des Tools in der <a href="https://docs.mapbox.com/data/tilesets/reference/mapbox-terrain-dem-v1/#elevation-data" target="_blank">Dokumentation</a> erfahren.
|
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>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ title: Files and statistics
|
|||||||
|
|
||||||
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
||||||
let slicedGPXStatistics = writable(undefined);
|
let slicedGPXStatistics = writable(undefined);
|
||||||
|
let hoveredPoint = writable(null);
|
||||||
let additionalDatasets = writable(['speed', 'atemp']);
|
let additionalDatasets = writable(['speed', 'atemp']);
|
||||||
let elevationFill = writable(undefined);
|
let elevationFill = writable(undefined);
|
||||||
</script>
|
</script>
|
||||||
@@ -84,6 +85,7 @@ You can also use the mouse wheel to zoom in and out on the elevation profile, an
|
|||||||
<ElevationProfile
|
<ElevationProfile
|
||||||
{gpxStatistics}
|
{gpxStatistics}
|
||||||
{slicedGPXStatistics}
|
{slicedGPXStatistics}
|
||||||
|
{hoveredPoint}
|
||||||
{additionalDatasets}
|
{additionalDatasets}
|
||||||
{elevationFill}
|
{elevationFill}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
## <HeartHandshake size="18" class="inline-block align-baseline" /> Help keep the website free (and ad-free)
|
## <HeartHandshake size="18" class="inline-block align-baseline" /> Help keep the website free (and ad-free)
|
||||||
|
|
||||||
Each time you add or move GPS points, our servers calculate the best route on the road network.
|
Each time you add or move GPS points, our servers calculate the best route on the road network.
|
||||||
We also use APIs from <a href="https://mapbox.com" target="_blank">Mapbox</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
We also use APIs from <a href="https://maptiler.com" target="_blank">MapTiler</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
||||||
|
|
||||||
Unfortunately, this is expensive.
|
Unfortunately, this is expensive.
|
||||||
If you enjoy using this tool and find it valuable, please consider making a small donation to help keep the website free and ad-free.
|
If you enjoy using this tool and find it valuable, please consider making a small donation to help keep the website free and ad-free.
|
||||||
|
|||||||
@@ -2,11 +2,11 @@
|
|||||||
import { Languages } from '@lucide/svelte';
|
import { Languages } from '@lucide/svelte';
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
## <Languages size="18" class="inline-block align-baseline" /> Translation
|
## <Languages size="18" class="inline-block align-baseline" />Μετάφραση
|
||||||
|
|
||||||
The website is translated by volunteers using a collaborative translation platform.
|
Αυτός ο ιστότοπος μεταφράζεται από εθελοντές μέσω μια πλατφόρμας συνεργατικής μετάφρασης.
|
||||||
You can contribute by adding or improving translations on our <a href="https://crowdin.com/project/gpxstudio" target="_blank">Crowdin project</a>.
|
Μπορείτε να συνεισφέρετε προσθέτοντας ή βελτιώνοντας μεταφράσεις στο <a href="https://crowdin.com/project/gpxstudio" target="_blank"> Crowdin έργο</a>.
|
||||||
|
|
||||||
If you would like to start translating into a new language, please <a href="#contact">get in touch</a>.
|
Αν θέλετε να ξεκινήσετε μετάφραση μιας νέας γλώσσας, παρακαλώ <a href="#contact">επικοινωνήστε μαζί μας<a href="#contact">.
|
||||||
|
|
||||||
Any help is greatly appreciated!
|
Οποιαδήποτε βοήθεια εκτιμάται ιδιαίτερα!
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ You can use **gpx.studio** to create maps showing your GPX files and embed them
|
|||||||
|
|
||||||
All you need is:
|
All you need is:
|
||||||
|
|
||||||
1. A <a href="https://account.mapbox.com/auth/signup" target="_blank">Mapbox access token</a> to load the map, and
|
1. A <a href="https://cloud.maptiler.com/auth/widget?next=https://cloud.maptiler.com/maps/" target="_blank">MapTiler key</a> to load the map, and
|
||||||
2. GPX files hosted on your server or on Google Drive, or accessible via a public URL.
|
2. GPX files hosted on your server or on Google Drive, or accessible via a public URL.
|
||||||
|
|
||||||
You can then play with the configurator below to customize your map and generate the corresponding HTML code.
|
You can then play with the configurator below to customize your map and generate the corresponding HTML code.
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ The map layers button allows you to switch between different basemaps, and toggl
|
|||||||
<div class="flex flex-col items-center">
|
<div class="flex flex-col items-center">
|
||||||
<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 <a href="https://www.mapbox.com/maps/outdoors" target="_blank">Mapbox Outdoors</a> 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>
|
||||||
|
|
||||||
@@ -67,4 +67,4 @@ They can be enabled in the [map layer settings dialog](./menu/settings).
|
|||||||
|
|
||||||
In these settings, you can also manage the opacity of the overlays.
|
In these settings, you can also manage the opacity of the overlays.
|
||||||
|
|
||||||
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://docs.mapbox.com/help/glossary/style/" target="_blank">Mapbox style JSON</a> URLs.
|
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://maplibre.org/maplibre-style-spec/" target="_blank">MapLibre style JSON</a> URLs.
|
||||||
|
|||||||
@@ -28,9 +28,9 @@ Change the language used in the interface.
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
You can contribute by adding or improving translations on our <a href="https://crowdin.com/project/gpxstudio" target="_blank">Crowdin project</a>.
|
Μπορείτε να συνεισφέρετε προσθέτοντας ή βελτιώνοντας μεταφράσεις στο <a href="https://crowdin.com/project/gpxstudio" target="_blank"> Crowdin έργο</a>.
|
||||||
If you would like to start translating into a new language, please <a href="#contact">get in touch</a>.
|
Αν θέλετε να ξεκινήσετε μετάφραση μιας νέας γλώσσας, παρακαλώ <a href="#contact">επικοινωνήστε μαζί μας<a href="#contact">.
|
||||||
Any help is greatly appreciated!
|
Οποιαδήποτε βοήθεια εκτιμάται ιδιαίτερα!
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: Clean
|
title: Καθαρισμός
|
||||||
---
|
---
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -9,9 +9,9 @@ title: Clean
|
|||||||
|
|
||||||
# <SquareDashedMousePointer size="24" class="inline-block" style="margin-bottom: 5px" /> { title }
|
# <SquareDashedMousePointer size="24" class="inline-block" style="margin-bottom: 5px" /> { title }
|
||||||
|
|
||||||
When the clean tool is selected, dragging the map will create a rectangular selection.
|
Όταν επιλεχθεί το εργαλείο καθαρισμού, σέρνοντας το χάρτη δημιουργείται μια ορθογώνια επιλογή.
|
||||||
|
|
||||||
Depending on the options selected in the dialog shown below, clicking the delete button will remove GPS points and/or [points of interest](../gpx) located either inside or outside the selection.
|
Ανάλογα με τις επιλεγμένες ρυθμίσεις στο παράθυρο παρακάτω, πατώντας το κουμπί διαγραφής θα αφαιρεθούν σημεία GPS και/ή [σημεία ενδιαφέροντος](../gpx) που βρίσκονται είτε μέσα είτε έξω από την επιλογή.
|
||||||
|
|
||||||
<div class="flex flex-row justify-center">
|
<div class="flex flex-row justify-center">
|
||||||
<Clean class="text-foreground p-3 border rounded-md shadow-lg" />
|
<Clean class="text-foreground p-3 border rounded-md shadow-lg" />
|
||||||
|
|||||||
@@ -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://mapbox.com" target="_blank">Mapbox</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://docs.mapbox.com/data/tilesets/reference/mapbox-terrain-dem-v1/#elevation-data" 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>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ title: Archivos y estadísticas
|
|||||||
|
|
||||||
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
||||||
let slicedGPXStatistics = writable(undefined);
|
let slicedGPXStatistics = writable(undefined);
|
||||||
|
let hoveredPoint = writable(null);
|
||||||
let additionalDatasets = writable(['speed', 'atemp']);
|
let additionalDatasets = writable(['speed', 'atemp']);
|
||||||
let elevationFill = writable(undefined);
|
let elevationFill = writable(undefined);
|
||||||
</script>
|
</script>
|
||||||
@@ -84,6 +85,7 @@ Puede usar el ratón para acercar o alejar el perfil de elevación y moverse hac
|
|||||||
<ElevationProfile
|
<ElevationProfile
|
||||||
{gpxStatistics}
|
{gpxStatistics}
|
||||||
{slicedGPXStatistics}
|
{slicedGPXStatistics}
|
||||||
|
{hoveredPoint}
|
||||||
{additionalDatasets}
|
{additionalDatasets}
|
||||||
{elevationFill}
|
{elevationFill}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
## <HeartHandshake size="18" class="inline-block align-baseline" /> Ayude a mantener este sitio gratis (y libre de anuncios)
|
## <HeartHandshake size="18" class="inline-block align-baseline" /> Ayude a mantener este sitio gratis (y libre de anuncios)
|
||||||
|
|
||||||
Cada vez que añade o mueve puntos GPS, nuestros servidores calculan la mejor ruta en la red de carreteras.
|
Cada vez que añade o mueve puntos GPS, nuestros servidores calculan la mejor ruta en la red de carreteras.
|
||||||
También usamos APIs de <a href="https://mapbox.com" target="_blank">Mapbox</a> para mostrar hermosos mapas, obtener datos de elevación y permitirle buscar lugares.
|
We also use APIs from <a href="https://maptiler.com" target="_blank">MapTiler</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
||||||
|
|
||||||
Por desgracia, esto tiene un coste económico.
|
Por desgracia, esto tiene un coste económico.
|
||||||
Si disfruta usando esta herramienta y la encuentra valiosa, por favor considere hacer una pequeña donación para ayudar a mantener este sitio gratis y libre de anuncios.
|
Si disfruta usando esta herramienta y la encuentra valiosa, por favor considere hacer una pequeña donación para ayudar a mantener este sitio gratis y libre de anuncios.
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ Puede usar **gpx.studio** para crear mapas que muestren sus archivos GPX e integ
|
|||||||
|
|
||||||
Todo lo que necesita es:
|
Todo lo que necesita es:
|
||||||
|
|
||||||
1. Un <a href="https://account.mapbox.com/auth/signup" target="_blank">token de acceso a Mapbox</a> para cargar el mapa, y
|
1. A <a href="https://cloud.maptiler.com/auth/widget?next=https://cloud.maptiler.com/maps/" target="_blank">MapTiler key</a> to load the map, and
|
||||||
2. Archivos GPX alojados en su servidor, en Google Drive o accesibles a través de una URL pública.
|
2. Archivos GPX alojados en su servidor, en Google Drive o accesibles a través de una URL pública.
|
||||||
|
|
||||||
Luego puede jugar con el configurador de abajo para personalizar su mapa y generar el código HTML correspondiente.
|
Luego puede jugar con el configurador de abajo para personalizar su mapa y generar el código HTML correspondiente.
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ El botón de capas de mapa le permite cambiar entre diferentes mapas bases y alt
|
|||||||
<div class="flex flex-col items-center">
|
<div class="flex flex-col items-center">
|
||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
Sitúe el cursor sobre el mapa para mostrar la capa <a href="https://hiking.waymarkedtrails.org" target="_blank">Rutas Señalizadas de senderismo</a> sobre el mapa base <a href="https://www.mapbox.com/maps/outdoors" target="_blank">Mapbox Exteriores</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 <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -67,4 +67,4 @@ Pueden activarse en la [configuración de capas del mapa](./menu/settings).
|
|||||||
|
|
||||||
En estos ajustes, también puede administrar la opacidad de las capas superpuestas.
|
En estos ajustes, también puede administrar la opacidad de las capas superpuestas.
|
||||||
|
|
||||||
Para los usuarios avanzados, es posible añadir mapas base y superposiciones personalizadas proporcionando <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a> o URLs <a href="https://docs.mapbox.com/help/glossary/style/" target="_blank">JSON estilo Mapbox</a>.
|
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://maplibre.org/maplibre-style-spec/" target="_blank">MapLibre style JSON</a> URLs.
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Le permite añadir datos de desnivel a trazas y [puntos de interés](../gpx), o
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Los datos de desnivel son proporcionados por <a href="https://mapbox.com" target="_blank">Mapbox</a>.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
Puede aprender más sobre su origen y precisión en la <a href="https://docs.mapbox.com/data/tilesets/reference/mapbox-terrain-dem-v1/#elevation-data" target="_blank">documentación</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>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ title: Fitxategiak eta estatistikak
|
|||||||
|
|
||||||
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
||||||
let slicedGPXStatistics = writable(undefined);
|
let slicedGPXStatistics = writable(undefined);
|
||||||
|
let hoveredPoint = writable(null);
|
||||||
let additionalDatasets = writable(['speed', 'atemp']);
|
let additionalDatasets = writable(['speed', 'atemp']);
|
||||||
let elevationFill = writable(undefined);
|
let elevationFill = writable(undefined);
|
||||||
</script>
|
</script>
|
||||||
@@ -83,6 +84,7 @@ Saguaren gurpila ere erabil dezakezu altueren profila handitzeko eta mugitzeko e
|
|||||||
<ElevationProfile
|
<ElevationProfile
|
||||||
{gpxStatistics}
|
{gpxStatistics}
|
||||||
{slicedGPXStatistics}
|
{slicedGPXStatistics}
|
||||||
|
{hoveredPoint}
|
||||||
{additionalDatasets}
|
{additionalDatasets}
|
||||||
{elevationFill}
|
{elevationFill}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -4,7 +4,8 @@
|
|||||||
|
|
||||||
## <HeartHandshake size="18" class="inline-block align-baseline" /> Lagundu mantentzen webgunea doan (eta propagandarik gabe)
|
## <HeartHandshake size="18" class="inline-block align-baseline" /> Lagundu mantentzen webgunea doan (eta propagandarik gabe)
|
||||||
|
|
||||||
GPS puntuak gehitzen edo mugitzen dituzun bakoitzean, gure zerbitzariek bide sareko ibilbide onena kalkulatzen dute.<a href="https://mapbox.com" target="_blank">Mapbox</a>en APIak erabiltzen ditugu erakusteko mapa argiak, kota-datuak eskaintzeko eta ahalbidetzeko lekuen bilaketa.
|
GPS puntuak gehitzen edo mugitzen dituzun bakoitzean, gure zerbitzariek bide sareko ibilbide onena kalkulatzen dute.
|
||||||
|
We also use APIs from <a href="https://maptiler.com" target="_blank">MapTiler</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
||||||
|
|
||||||
Tamalez, hau garestia da.
|
Tamalez, hau garestia da.
|
||||||
Tresna hau erabiltzen baduzu eta baliotsua suertatzen bazaizu, kontuan hartu dohaintza txiki bat egitea webgunea doakoa eta iragarkirik gabe mantentzen laguntzeko.
|
Tresna hau erabiltzen baduzu eta baliotsua suertatzen bazaizu, kontuan hartu dohaintza txiki bat egitea webgunea doakoa eta iragarkirik gabe mantentzen laguntzeko.
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ title: Integrazioa
|
|||||||
|
|
||||||
Behar duzun guztia hau da:
|
Behar duzun guztia hau da:
|
||||||
|
|
||||||
1. <a href="https://account.mapbox.com/auth/signup" target="_blank">Mapbox sarbiderako tokena</a> mapa kargatzeko, eta
|
1. A <a href="https://cloud.maptiler.com/auth/widget?next=https://cloud.maptiler.com/maps/" target="_blank">MapTiler key</a> to load the map, and
|
||||||
2. GPX fitxategiak zure zerbitzarian, hodeian, Google Drive-n edo eskuragarri URL publiko baten bidez.
|
2. GPX fitxategiak zure zerbitzarian, hodeian, Google Drive-n edo eskuragarri URL publiko baten bidez.
|
||||||
|
|
||||||
Ondoren, konfiguratzailearekin jolastu dezakezu zure mapa pertsonalizatzeko eta dagokion HTML kodea sortzeko.
|
Ondoren, konfiguratzailearekin jolastu dezakezu zure mapa pertsonalizatzeko eta dagokion HTML kodea sortzeko.
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ Maparen geruzen botoiak mapa-oinarri desberdinen artean aldatzeko aukera ematen
|
|||||||
<div class="flex flex-col items-center">
|
<div class="flex flex-col items-center">
|
||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
Pasa maparen gainetik <a href="https://hiking.waymarkedtrails.org" target="_blank">mendiko bideak</a> ikusteko <a href="https://www.mapbox.com/maps/outdoors" target="_blank">Mapbox Outdoors</a> mapa oinarriaren gainean.
|
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>
|
||||||
|
|
||||||
@@ -67,4 +67,4 @@ Global eta tokiko mapa oinarri bilduma handia dago **gpx.studio**-n eskuragarri,
|
|||||||
|
|
||||||
Ezarpen horietan, gainjartzeen opakutasuna ere kudeatu dezakezu.
|
Ezarpen horietan, gainjartzeen opakutasuna ere kudeatu dezakezu.
|
||||||
|
|
||||||
Erabiltzaile aurreratuetarako, mapa oinarri pertsonalizatuak gehitu daitezke <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank"> WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, edo <a href="https://docs.mapbox.com/help/glossary/style/" target="_blank">Mapbox Style Json</a> URLak gehituz.
|
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://maplibre.org/maplibre-style-spec/" target="_blank">MapLibre style JSON</a> URLs.
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Tresna honen bidez elebazio datuak gehitzen ahal dira ibilbidetan eta [interesgu
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Altuera datuen iturria <a href="https://mapbox.com" target="_blank">Mapbox</a> da.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
Hauen jatorriaz edo xehetasunez informazio gehiago <a href="https://docs.mapbox.com/data/tilesets/reference/mapbox-terrain-dem-v1/#elevation-data" target="_blank">dokumentazioan</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>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ title: Files and statistics
|
|||||||
|
|
||||||
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
||||||
let slicedGPXStatistics = writable(undefined);
|
let slicedGPXStatistics = writable(undefined);
|
||||||
|
let hoveredPoint = writable(null);
|
||||||
let additionalDatasets = writable(['speed', 'atemp']);
|
let additionalDatasets = writable(['speed', 'atemp']);
|
||||||
let elevationFill = writable(undefined);
|
let elevationFill = writable(undefined);
|
||||||
</script>
|
</script>
|
||||||
@@ -84,6 +85,7 @@ You can also use the mouse wheel to zoom in and out on the elevation profile, an
|
|||||||
<ElevationProfile
|
<ElevationProfile
|
||||||
{gpxStatistics}
|
{gpxStatistics}
|
||||||
{slicedGPXStatistics}
|
{slicedGPXStatistics}
|
||||||
|
{hoveredPoint}
|
||||||
{additionalDatasets}
|
{additionalDatasets}
|
||||||
{elevationFill}
|
{elevationFill}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
## <HeartHandshake size="18" class="inline-block align-baseline" /> Help keep the website free (and ad-free)
|
## <HeartHandshake size="18" class="inline-block align-baseline" /> Help keep the website free (and ad-free)
|
||||||
|
|
||||||
Each time you add or move GPS points, our servers calculate the best route on the road network.
|
Each time you add or move GPS points, our servers calculate the best route on the road network.
|
||||||
We also use APIs from <a href="https://mapbox.com" target="_blank">Mapbox</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
We also use APIs from <a href="https://maptiler.com" target="_blank">MapTiler</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
||||||
|
|
||||||
Unfortunately, this is expensive.
|
Unfortunately, this is expensive.
|
||||||
If you enjoy using this tool and find it valuable, please consider making a small donation to help keep the website free and ad-free.
|
If you enjoy using this tool and find it valuable, please consider making a small donation to help keep the website free and ad-free.
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ You can use **gpx.studio** to create maps showing your GPX files and embed them
|
|||||||
|
|
||||||
All you need is:
|
All you need is:
|
||||||
|
|
||||||
1. A <a href="https://account.mapbox.com/auth/signup" target="_blank">Mapbox access token</a> to load the map, and
|
1. A <a href="https://cloud.maptiler.com/auth/widget?next=https://cloud.maptiler.com/maps/" target="_blank">MapTiler key</a> to load the map, and
|
||||||
2. GPX files hosted on your server or on Google Drive, or accessible via a public URL.
|
2. GPX files hosted on your server or on Google Drive, or accessible via a public URL.
|
||||||
|
|
||||||
You can then play with the configurator below to customize your map and generate the corresponding HTML code.
|
You can then play with the configurator below to customize your map and generate the corresponding HTML code.
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ The map layers button allows you to switch between different basemaps, and toggl
|
|||||||
<div class="flex flex-col items-center">
|
<div class="flex flex-col items-center">
|
||||||
<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 <a href="https://www.mapbox.com/maps/outdoors" target="_blank">Mapbox Outdoors</a> 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>
|
||||||
|
|
||||||
@@ -67,4 +67,4 @@ They can be enabled in the [map layer settings dialog](./menu/settings).
|
|||||||
|
|
||||||
In these settings, you can also manage the opacity of the overlays.
|
In these settings, you can also manage the opacity of the overlays.
|
||||||
|
|
||||||
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://docs.mapbox.com/help/glossary/style/" target="_blank">Mapbox style JSON</a> URLs.
|
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://maplibre.org/maplibre-style-spec/" target="_blank">MapLibre style JSON</a> URLs.
|
||||||
|
|||||||
@@ -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://mapbox.com" target="_blank">Mapbox</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://docs.mapbox.com/data/tilesets/reference/mapbox-terrain-dem-v1/#elevation-data" 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>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ title: Fichiers et statistiques
|
|||||||
|
|
||||||
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
||||||
let slicedGPXStatistics = writable(undefined);
|
let slicedGPXStatistics = writable(undefined);
|
||||||
|
let hoveredPoint = writable(null);
|
||||||
let additionalDatasets = writable(['speed', 'atemp']);
|
let additionalDatasets = writable(['speed', 'atemp']);
|
||||||
let elevationFill = writable(undefined);
|
let elevationFill = writable(undefined);
|
||||||
</script>
|
</script>
|
||||||
@@ -84,6 +85,7 @@ Vous pouvez également utiliser la molette de la souris pour zoomer ou dézoomer
|
|||||||
<ElevationProfile
|
<ElevationProfile
|
||||||
{gpxStatistics}
|
{gpxStatistics}
|
||||||
{slicedGPXStatistics}
|
{slicedGPXStatistics}
|
||||||
|
{hoveredPoint}
|
||||||
{additionalDatasets}
|
{additionalDatasets}
|
||||||
{elevationFill}
|
{elevationFill}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
## <HeartHandshake size="18" class="inline-block align-baseline" /> Aidez à garder le site gratuit (et sans pub)
|
## <HeartHandshake size="18" class="inline-block align-baseline" /> Aidez à garder le site gratuit (et sans pub)
|
||||||
|
|
||||||
Chaque fois que vous ajoutez ou déplacez des points GPS, nos serveurs calculent le meilleur itinéraire sur le réseau routier.
|
Chaque fois que vous ajoutez ou déplacez des points GPS, nos serveurs calculent le meilleur itinéraire sur le réseau routier.
|
||||||
Nous utilisons également des services de <a href="https://mapbox.com" target="_blank">Mapbox</a> pour afficher de magnifiques cartes, récupérer des données d'altitude et vous permettre de rechercher des adresses.
|
We also use APIs from <a href="https://maptiler.com" target="_blank">MapTiler</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
||||||
|
|
||||||
Malheureusement, cela est coûteux.
|
Malheureusement, cela est coûteux.
|
||||||
Si vous aimez utiliser cet outil et le trouvez utile, veuillez envisager de faire même un petit don pour aider à garder le site gratuit et sans pub.
|
Si vous aimez utiliser cet outil et le trouvez utile, veuillez envisager de faire même un petit don pour aider à garder le site gratuit et sans pub.
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ Vous pouvez utiliser **gpx.studio** pour créer des cartes affichant vos fichier
|
|||||||
|
|
||||||
Tout ce dont vous avez besoin est :
|
Tout ce dont vous avez besoin est :
|
||||||
|
|
||||||
1. Un <a href="https://account.mapbox.com/auth/signup" target="_blank">jeton d'accès Mapbox</a> pour charger la carte, et
|
1. A <a href="https://cloud.maptiler.com/auth/widget?next=https://cloud.maptiler.com/maps/" target="_blank">MapTiler key</a> to load the map, and
|
||||||
2. Un ou plusieurs fichiers GPX hébergés sur votre serveur ou sur Google Drive, ou accessibles via une URL publique.
|
2. Un ou plusieurs fichiers GPX hébergés sur votre serveur ou sur Google Drive, ou accessibles via une URL publique.
|
||||||
|
|
||||||
Vous pouvez ensuite jouer avec le configurateur ci-dessous pour personnaliser votre carte et générer le code HTML correspondant.
|
Vous pouvez ensuite jouer avec le configurateur ci-dessous pour personnaliser votre carte et générer le code HTML correspondant.
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ Le bouton des couches de la carte vous permet de basculer entre différents fond
|
|||||||
<div class="flex flex-col items-center">
|
<div class="flex flex-col items-center">
|
||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
Survolez la carte pour afficher la surcouche <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails Randonnée</a> par-dessus le fond de carte <a href="https://www.mapbox.com/maps/outdoors" target="_blank">Mapbox Outdoors</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 <a href="https://www.maptiler.com/maps/outdoor-topo/" target="_blank">MapTiler Topo</a> basemap.
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -67,4 +67,4 @@ Ceux-ci peuvent être activés dans la [fenêtre de configuration des couches de
|
|||||||
|
|
||||||
Dans ces paramètres, vous pouvez également gérer l'opacité des surcouches.
|
Dans ces paramètres, vous pouvez également gérer l'opacité des surcouches.
|
||||||
|
|
||||||
Pour les utilisateurs expérimentés, il est possible d'ajouter des fonds de carte et des surcouches personnalisés en fournissant des URLs <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, ou <a href="https://docs.mapbox.com/help/glossary/style/" target="_blank">Mapbox style JSON</a>.
|
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://maplibre.org/maplibre-style-spec/" target="_blank">MapLibre style JSON</a> URLs.
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ Supprimer les fichiers sélectionnés.
|
|||||||
|
|
||||||
### <FileX size="16" class="inline-block" style="margin-bottom: 2px" /> Supprimer tout
|
### <FileX size="16" class="inline-block" style="margin-bottom: 2px" /> Supprimer tout
|
||||||
|
|
||||||
Supprimer toutes les fichiers.
|
Supprimer tous les fichiers.
|
||||||
|
|
||||||
### <Download size="16" class="inline-block" style="margin-bottom: 2px" /> Exporter...
|
### <Download size="16" class="inline-block" style="margin-bottom: 2px" /> Exporter...
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Cet outil vous permet d'ajouter des données d'altitude aux traces et aux [point
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
Les données d'altitude sont fournies par <a href="https://mapbox.com" target="_blank">Mapbox</a>.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
Vous pouvez en apprendre plus sur leur origine et précision dans la <a href="https://docs.mapbox.com/data/tilesets/reference/mapbox-terrain-dem-v1/#elevation-data" 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>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ title: Files and statistics
|
|||||||
|
|
||||||
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
||||||
let slicedGPXStatistics = writable(undefined);
|
let slicedGPXStatistics = writable(undefined);
|
||||||
|
let hoveredPoint = writable(null);
|
||||||
let additionalDatasets = writable(['speed', 'atemp']);
|
let additionalDatasets = writable(['speed', 'atemp']);
|
||||||
let elevationFill = writable(undefined);
|
let elevationFill = writable(undefined);
|
||||||
</script>
|
</script>
|
||||||
@@ -84,6 +85,7 @@ You can also use the mouse wheel to zoom in and out on the elevation profile, an
|
|||||||
<ElevationProfile
|
<ElevationProfile
|
||||||
{gpxStatistics}
|
{gpxStatistics}
|
||||||
{slicedGPXStatistics}
|
{slicedGPXStatistics}
|
||||||
|
{hoveredPoint}
|
||||||
{additionalDatasets}
|
{additionalDatasets}
|
||||||
{elevationFill}
|
{elevationFill}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
## <HeartHandshake size="18" class="inline-block align-baseline" /> Help keep the website free (and ad-free)
|
## <HeartHandshake size="18" class="inline-block align-baseline" /> Help keep the website free (and ad-free)
|
||||||
|
|
||||||
בכל פעם שאתה מוסיף או מעביר נקודות GPS, השרתים שלנו מחשבים את המסלול הטוב ביותר ברשת הדרכים.
|
בכל פעם שאתה מוסיף או מעביר נקודות GPS, השרתים שלנו מחשבים את המסלול הטוב ביותר ברשת הדרכים.
|
||||||
We also use APIs from <a href="https://mapbox.com" target="_blank">Mapbox</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
We also use APIs from <a href="https://maptiler.com" target="_blank">MapTiler</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
||||||
|
|
||||||
Unfortunately, this is expensive.
|
Unfortunately, this is expensive.
|
||||||
If you enjoy using this tool and find it valuable, please consider making a small donation to help keep the website free and ad-free.
|
If you enjoy using this tool and find it valuable, please consider making a small donation to help keep the website free and ad-free.
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ You can use **gpx.studio** to create maps showing your GPX files and embed them
|
|||||||
|
|
||||||
All you need is:
|
All you need is:
|
||||||
|
|
||||||
1. A <a href="https://account.mapbox.com/auth/signup" target="_blank">Mapbox access token</a> to load the map, and
|
1. A <a href="https://cloud.maptiler.com/auth/widget?next=https://cloud.maptiler.com/maps/" target="_blank">MapTiler key</a> to load the map, and
|
||||||
2. GPX files hosted on your server or on Google Drive, or accessible via a public URL.
|
2. GPX files hosted on your server or on Google Drive, or accessible via a public URL.
|
||||||
|
|
||||||
You can then play with the configurator below to customize your map and generate the corresponding HTML code.
|
You can then play with the configurator below to customize your map and generate the corresponding HTML code.
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ The map layers button allows you to switch between different basemaps, and toggl
|
|||||||
<div class="flex flex-col items-center">
|
<div class="flex flex-col items-center">
|
||||||
<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 <a href="https://www.mapbox.com/maps/outdoors" target="_blank">Mapbox Outdoors</a> 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>
|
||||||
|
|
||||||
@@ -67,4 +67,4 @@ They can be enabled in the [map layer settings dialog](./menu/settings).
|
|||||||
|
|
||||||
In these settings, you can also manage the opacity of the overlays.
|
In these settings, you can also manage the opacity of the overlays.
|
||||||
|
|
||||||
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://docs.mapbox.com/help/glossary/style/" target="_blank">Mapbox style JSON</a> URLs.
|
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://maplibre.org/maplibre-style-spec/" target="_blank">MapLibre style JSON</a> URLs.
|
||||||
|
|||||||
@@ -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://mapbox.com" target="_blank">Mapbox</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://docs.mapbox.com/data/tilesets/reference/mapbox-terrain-dem-v1/#elevation-data" 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>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ title: Fájlok és statisztikák
|
|||||||
|
|
||||||
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
||||||
let slicedGPXStatistics = writable(undefined);
|
let slicedGPXStatistics = writable(undefined);
|
||||||
|
let hoveredPoint = writable(null);
|
||||||
let additionalDatasets = writable(['speed', 'atemp']);
|
let additionalDatasets = writable(['speed', 'atemp']);
|
||||||
let elevationFill = writable(undefined);
|
let elevationFill = writable(undefined);
|
||||||
</script>
|
</script>
|
||||||
@@ -84,6 +85,7 @@ Az egérgörgővel is méretezheti a magassági profilt. Balra és jobbra mozogh
|
|||||||
<ElevationProfile
|
<ElevationProfile
|
||||||
{gpxStatistics}
|
{gpxStatistics}
|
||||||
{slicedGPXStatistics}
|
{slicedGPXStatistics}
|
||||||
|
{hoveredPoint}
|
||||||
{additionalDatasets}
|
{additionalDatasets}
|
||||||
{elevationFill}
|
{elevationFill}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -4,7 +4,8 @@
|
|||||||
|
|
||||||
## <HeartHandshake size="18" class="inline-block align-baseline" /> Help keep the website free (and ad-free)
|
## <HeartHandshake size="18" class="inline-block align-baseline" /> Help keep the website free (and ad-free)
|
||||||
|
|
||||||
Minden alkalommal, amikor GPS-pontokat ad hozzá vagy mozgat, szervereink kiszámítják a legjobb útvonalat az úthálózaton.<a href="https://mapbox.com" target="_blank">Mapbox</a> API-jait használjuk a gyönyörű térképek megjelenítésére, a magassági adatok lekérésére és a helyek keresésére.
|
Minden alkalommal, amikor GPS-pontokat ad hozzá vagy mozgat, szervereink kiszámítják a legjobb útvonalat az úthálózaton.
|
||||||
|
We also use APIs from <a href="https://maptiler.com" target="_blank">MapTiler</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
||||||
|
|
||||||
Sajnos ez magas költségű.
|
Sajnos ez magas költségű.
|
||||||
Ha tetszik ez az alkalmazás, kérjük, fontoljon meg egy kis adományt, hogy a webhely továbbra is ingyenes és hirdetésmentes legyen.
|
Ha tetszik ez az alkalmazás, kérjük, fontoljon meg egy kis adományt, hogy a webhely továbbra is ingyenes és hirdetésmentes legyen.
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ A **gpx.studio** segítségével létrehozhatja a GPX-fájlokat ábrázoló tér
|
|||||||
|
|
||||||
Minden amire szüksége van:
|
Minden amire szüksége van:
|
||||||
|
|
||||||
1. Egy <a href="https://account.mapbox.com/auth/signup" target="_blank">Mapbox hozzáférési token</a> a térkép betöltéséhez, és
|
1. A <a href="https://cloud.maptiler.com/auth/widget?next=https://cloud.maptiler.com/maps/" target="_blank">MapTiler key</a> to load the map, and
|
||||||
2. A szerverén vagy a Google Drive-on tárolt GPX-fájlok, vagy nyilvános URL-en keresztül érhetők el.
|
2. A szerverén vagy a Google Drive-on tárolt GPX-fájlok, vagy nyilvános URL-en keresztül érhetők el.
|
||||||
|
|
||||||
Ezután játszhat az alábbi konfigurátorral a térkép testreszabásához és a megfelelő HTML-kód létrehozásához.
|
Ezután játszhat az alábbi konfigurátorral a térkép testreszabásához és a megfelelő HTML-kód létrehozásához.
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ The map layers button allows you to switch between different basemaps, and toggl
|
|||||||
<div class="flex flex-col items-center">
|
<div class="flex flex-col items-center">
|
||||||
<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 <a href="https://www.mapbox.com/maps/outdoors" target="_blank">Mapbox Outdoors</a> 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>
|
||||||
|
|
||||||
@@ -67,4 +67,4 @@ They can be enabled in the [map layer settings dialog](./menu/settings).
|
|||||||
|
|
||||||
In these settings, you can also manage the opacity of the overlays.
|
In these settings, you can also manage the opacity of the overlays.
|
||||||
|
|
||||||
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://docs.mapbox.com/help/glossary/style/" target="_blank">Mapbox style JSON</a> URLs.
|
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://maplibre.org/maplibre-style-spec/" target="_blank">MapLibre style JSON</a> URLs.
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Ez az eszköz lehetővé teszi magassági adatok hozzáadását a nyomvonalakhoz
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
A magassági adatokat a <a href="https://mapbox.com" target="_blank">Mapbox</a> biztosítja.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
Eredetéről és pontosságáról a <a href="https://docs.mapbox.com/data/tilesets/reference/mapbox-terrain-dem-v1/#elevation-data" target="_blank">dokumentációban</a> tudhat meg többet.
|
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>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ title: Files and statistics
|
|||||||
|
|
||||||
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
||||||
let slicedGPXStatistics = writable(undefined);
|
let slicedGPXStatistics = writable(undefined);
|
||||||
|
let hoveredPoint = writable(null);
|
||||||
let additionalDatasets = writable(['speed', 'atemp']);
|
let additionalDatasets = writable(['speed', 'atemp']);
|
||||||
let elevationFill = writable(undefined);
|
let elevationFill = writable(undefined);
|
||||||
</script>
|
</script>
|
||||||
@@ -84,6 +85,7 @@ You can also use the mouse wheel to zoom in and out on the elevation profile, an
|
|||||||
<ElevationProfile
|
<ElevationProfile
|
||||||
{gpxStatistics}
|
{gpxStatistics}
|
||||||
{slicedGPXStatistics}
|
{slicedGPXStatistics}
|
||||||
|
{hoveredPoint}
|
||||||
{additionalDatasets}
|
{additionalDatasets}
|
||||||
{elevationFill}
|
{elevationFill}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
## <HeartHandshake size="18" class="inline-block align-baseline" /> Help keep the website free (and ad-free)
|
## <HeartHandshake size="18" class="inline-block align-baseline" /> Help keep the website free (and ad-free)
|
||||||
|
|
||||||
Each time you add or move GPS points, our servers calculate the best route on the road network.
|
Each time you add or move GPS points, our servers calculate the best route on the road network.
|
||||||
We also use APIs from <a href="https://mapbox.com" target="_blank">Mapbox</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
We also use APIs from <a href="https://maptiler.com" target="_blank">MapTiler</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
||||||
|
|
||||||
Unfortunately, this is expensive.
|
Unfortunately, this is expensive.
|
||||||
If you enjoy using this tool and find it valuable, please consider making a small donation to help keep the website free and ad-free.
|
If you enjoy using this tool and find it valuable, please consider making a small donation to help keep the website free and ad-free.
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ You can use **gpx.studio** to create maps showing your GPX files and embed them
|
|||||||
|
|
||||||
All you need is:
|
All you need is:
|
||||||
|
|
||||||
1. A <a href="https://account.mapbox.com/auth/signup" target="_blank">Mapbox access token</a> to load the map, and
|
1. A <a href="https://cloud.maptiler.com/auth/widget?next=https://cloud.maptiler.com/maps/" target="_blank">MapTiler key</a> to load the map, and
|
||||||
2. GPX files hosted on your server or on Google Drive, or accessible via a public URL.
|
2. GPX files hosted on your server or on Google Drive, or accessible via a public URL.
|
||||||
|
|
||||||
You can then play with the configurator below to customize your map and generate the corresponding HTML code.
|
You can then play with the configurator below to customize your map and generate the corresponding HTML code.
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ The map layers button allows you to switch between different basemaps, and toggl
|
|||||||
<div class="flex flex-col items-center">
|
<div class="flex flex-col items-center">
|
||||||
<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 <a href="https://www.mapbox.com/maps/outdoors" target="_blank">Mapbox Outdoors</a> 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>
|
||||||
|
|
||||||
@@ -67,4 +67,4 @@ They can be enabled in the [map layer settings dialog](./menu/settings).
|
|||||||
|
|
||||||
In these settings, you can also manage the opacity of the overlays.
|
In these settings, you can also manage the opacity of the overlays.
|
||||||
|
|
||||||
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://docs.mapbox.com/help/glossary/style/" target="_blank">Mapbox style JSON</a> URLs.
|
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://maplibre.org/maplibre-style-spec/" target="_blank">MapLibre style JSON</a> URLs.
|
||||||
|
|||||||
@@ -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://mapbox.com" target="_blank">Mapbox</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://docs.mapbox.com/data/tilesets/reference/mapbox-terrain-dem-v1/#elevation-data" 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>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ title: File e statistiche
|
|||||||
|
|
||||||
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
||||||
let slicedGPXStatistics = writable(undefined);
|
let slicedGPXStatistics = writable(undefined);
|
||||||
|
let hoveredPoint = writable(null);
|
||||||
let additionalDatasets = writable(['speed', 'atemp']);
|
let additionalDatasets = writable(['speed', 'atemp']);
|
||||||
let elevationFill = writable(undefined);
|
let elevationFill = writable(undefined);
|
||||||
</script>
|
</script>
|
||||||
@@ -84,6 +85,7 @@ Fare clic sul profilo per resettare la selezione.
|
|||||||
<ElevationProfile
|
<ElevationProfile
|
||||||
{gpxStatistics}
|
{gpxStatistics}
|
||||||
{slicedGPXStatistics}
|
{slicedGPXStatistics}
|
||||||
|
{hoveredPoint}
|
||||||
{additionalDatasets}
|
{additionalDatasets}
|
||||||
{elevationFill}
|
{elevationFill}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
## <HeartHandshake size="18" class="inline-block align-baseline" /> Aiuta a mantenere il sito gratuito (e senza pubblicità)
|
## <HeartHandshake size="18" class="inline-block align-baseline" /> Aiuta a mantenere il sito gratuito (e senza pubblicità)
|
||||||
|
|
||||||
Ogni volta che aggiungi o sposti i punti GPS, i nostri server calcolano il percorso migliore sulla rete stradale.
|
Ogni volta che aggiungi o sposti i punti GPS, i nostri server calcolano il percorso migliore sulla rete stradale.
|
||||||
Utilizziamo anche le API di <a href="https://mapbox.com" target="_blank">Mapbox</a> per visualizzare mappe stupende, recuperare i dati altimetrici e consentire la ricerca di luoghi.
|
We also use APIs from <a href="https://maptiler.com" target="_blank">MapTiler</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
||||||
|
|
||||||
Sfortunatamente, fare tutto ciò è costoso.
|
Sfortunatamente, fare tutto ciò è costoso.
|
||||||
Se ti piace utilizzare questo strumento e lo trovi utile, per favore considera di fare una piccola donazione per aiutare a mantenere il sito web gratuito e senza pubblicità.
|
Se ti piace utilizzare questo strumento e lo trovi utile, per favore considera di fare una piccola donazione per aiutare a mantenere il sito web gratuito e senza pubblicità.
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ Puoi usare **gpx.studio** per creare delle mappe che mostrino i tuoi file GPX ed
|
|||||||
|
|
||||||
Tutto ciò di cui hai bisogno è:
|
Tutto ciò di cui hai bisogno è:
|
||||||
|
|
||||||
1. Un <a href="https://account.mapbox.com/auth/signup" target="_blank">token di accesso a Mapbox</a> per caricare la mappa, e
|
1. A <a href="https://cloud.maptiler.com/auth/widget?next=https://cloud.maptiler.com/maps/" target="_blank">MapTiler key</a> to load the map, and
|
||||||
2. Dei file GPX ospitati sul tuo server, su Google Drive, o accessibili tramite un URL pubblico.
|
2. Dei file GPX ospitati sul tuo server, su Google Drive, o accessibili tramite un URL pubblico.
|
||||||
|
|
||||||
Potrai quindi divertirti ad utilizzare il configuratore che trovi qua sotto per personalizzare la tua mappa e per generare il codice HTML corrispondente.
|
Potrai quindi divertirti ad utilizzare il configuratore che trovi qua sotto per personalizzare la tua mappa e per generare il codice HTML corrispondente.
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ Il pulsante dei livelli di mappa consente di passare da una basemap all'altra, e
|
|||||||
<div class="flex flex-col items-center">
|
<div class="flex flex-col items-center">
|
||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
Passa sulla mappa per mostrare <a href="https://hiking.waymarkedtrails.org" target="_blank">i sentieri escursionistici marcati</a> sulla <a href="https://www.mapbox.com/maps/outdoors" target="_blank">Mapbox Outdoors</a> 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>
|
||||||
|
|
||||||
@@ -67,4 +67,4 @@ Possono essere abilitati nella [finestra delle impostazioni dei livelli mappa](.
|
|||||||
|
|
||||||
In queste impostazioni è anche possibile gestire l'opacità delle sovrapposizioni.
|
In queste impostazioni è anche possibile gestire l'opacità delle sovrapposizioni.
|
||||||
|
|
||||||
Per gli utenti avanzati, è possibile aggiungere basemaps personalizzati e sovrapposizioni fornendo <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a> o <a href="https://docs.mapbox.com/help/glossary/style/" target="_blank">JSON in stile Mapbox</a> URLs.
|
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://maplibre.org/maplibre-style-spec/" target="_blank">MapLibre style JSON</a> URLs.
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Questo strumento ti permette di aggiungere dati di altimetria a tracce e [punti
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
I dati altimertrici sono forniti da <a href="https://mapbox.com" target="_blank">Mapbox</a>.
|
Elevation data is provided by <a href="https://maptiler.com" target="_blank">MapTiler</a>.
|
||||||
Puoi saperne di più sulla sua origine e accuratezza nella <a href="https://docs.mapbox.com/data/tilesets/reference/mapbox-terrain-dem-v1/#elevation-data" target="_blank">documentazione</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>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ title: Files and statistics
|
|||||||
|
|
||||||
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
||||||
let slicedGPXStatistics = writable(undefined);
|
let slicedGPXStatistics = writable(undefined);
|
||||||
|
let hoveredPoint = writable(null);
|
||||||
let additionalDatasets = writable(['speed', 'atemp']);
|
let additionalDatasets = writable(['speed', 'atemp']);
|
||||||
let elevationFill = writable(undefined);
|
let elevationFill = writable(undefined);
|
||||||
</script>
|
</script>
|
||||||
@@ -84,6 +85,7 @@ You can also use the mouse wheel to zoom in and out on the elevation profile, an
|
|||||||
<ElevationProfile
|
<ElevationProfile
|
||||||
{gpxStatistics}
|
{gpxStatistics}
|
||||||
{slicedGPXStatistics}
|
{slicedGPXStatistics}
|
||||||
|
{hoveredPoint}
|
||||||
{additionalDatasets}
|
{additionalDatasets}
|
||||||
{elevationFill}
|
{elevationFill}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
## <HeartHandshake size="18" class="inline-block align-baseline" /> Help keep the website free (and ad-free)
|
## <HeartHandshake size="18" class="inline-block align-baseline" /> Help keep the website free (and ad-free)
|
||||||
|
|
||||||
Each time you add or move GPS points, our servers calculate the best route on the road network.
|
Each time you add or move GPS points, our servers calculate the best route on the road network.
|
||||||
We also use APIs from <a href="https://mapbox.com" target="_blank">Mapbox</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
We also use APIs from <a href="https://maptiler.com" target="_blank">MapTiler</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
||||||
|
|
||||||
Unfortunately, this is expensive.
|
Unfortunately, this is expensive.
|
||||||
If you enjoy using this tool and find it valuable, please consider making a small donation to help keep the website free and ad-free.
|
If you enjoy using this tool and find it valuable, please consider making a small donation to help keep the website free and ad-free.
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ You can use **gpx.studio** to create maps showing your GPX files and embed them
|
|||||||
|
|
||||||
All you need is:
|
All you need is:
|
||||||
|
|
||||||
1. A <a href="https://account.mapbox.com/auth/signup" target="_blank">Mapbox access token</a> to load the map, and
|
1. A <a href="https://cloud.maptiler.com/auth/widget?next=https://cloud.maptiler.com/maps/" target="_blank">MapTiler key</a> to load the map, and
|
||||||
2. GPX files hosted on your server or on Google Drive, or accessible via a public URL.
|
2. GPX files hosted on your server or on Google Drive, or accessible via a public URL.
|
||||||
|
|
||||||
You can then play with the configurator below to customize your map and generate the corresponding HTML code.
|
You can then play with the configurator below to customize your map and generate the corresponding HTML code.
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ The map layers button allows you to switch between different basemaps, and toggl
|
|||||||
<div class="flex flex-col items-center">
|
<div class="flex flex-col items-center">
|
||||||
<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 <a href="https://www.mapbox.com/maps/outdoors" target="_blank">Mapbox Outdoors</a> 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>
|
||||||
|
|
||||||
@@ -67,4 +67,4 @@ They can be enabled in the [map layer settings dialog](./menu/settings).
|
|||||||
|
|
||||||
In these settings, you can also manage the opacity of the overlays.
|
In these settings, you can also manage the opacity of the overlays.
|
||||||
|
|
||||||
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://docs.mapbox.com/help/glossary/style/" target="_blank">Mapbox style JSON</a> URLs.
|
For advanced users, it is possible to add custom basemaps and overlays by providing <a href="https://en.wikipedia.org/wiki/Web_Map_Tile_Service" target="_blank">WMTS</a>, <a href="https://en.wikipedia.org/wiki/Web_Map_Service" target="_blank">WMS</a>, or <a href="https://maplibre.org/maplibre-style-spec/" target="_blank">MapLibre style JSON</a> URLs.
|
||||||
|
|||||||
@@ -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://mapbox.com" target="_blank">Mapbox</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://docs.mapbox.com/data/tilesets/reference/mapbox-terrain-dem-v1/#elevation-data" 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>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ title: Puslapis nerastas
|
|||||||
|
|
||||||
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
let gpxStatistics = writable(exampleGPXFile.getStatistics());
|
||||||
let slicedGPXStatistics = writable(undefined);
|
let slicedGPXStatistics = writable(undefined);
|
||||||
|
let hoveredPoint = writable(null);
|
||||||
let additionalDatasets = writable(['speed', 'atemp']);
|
let additionalDatasets = writable(['speed', 'atemp']);
|
||||||
let elevationFill = writable(undefined);
|
let elevationFill = writable(undefined);
|
||||||
</script>
|
</script>
|
||||||
@@ -84,6 +85,7 @@ You can also use the mouse wheel to zoom in and out on the elevation profile, an
|
|||||||
<ElevationProfile
|
<ElevationProfile
|
||||||
{gpxStatistics}
|
{gpxStatistics}
|
||||||
{slicedGPXStatistics}
|
{slicedGPXStatistics}
|
||||||
|
{hoveredPoint}
|
||||||
{additionalDatasets}
|
{additionalDatasets}
|
||||||
{elevationFill}
|
{elevationFill}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
## <HeartHandshake size="18" class="inline-block align-baseline" /> Help keep the website free (and ad-free)
|
## <HeartHandshake size="18" class="inline-block align-baseline" /> Help keep the website free (and ad-free)
|
||||||
|
|
||||||
Each time you add or move GPS points, our servers calculate the best route on the road network.
|
Each time you add or move GPS points, our servers calculate the best route on the road network.
|
||||||
We also use APIs from <a href="https://mapbox.com" target="_blank">Mapbox</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
We also use APIs from <a href="https://maptiler.com" target="_blank">MapTiler</a> to display beautiful maps, retrieve elevation data and allow you to search for places.
|
||||||
|
|
||||||
Unfortunately, this is expensive.
|
Unfortunately, this is expensive.
|
||||||
If you enjoy using this tool and find it valuable, please consider making a small donation to help keep the website free and ad-free.
|
If you enjoy using this tool and find it valuable, please consider making a small donation to help keep the website free and ad-free.
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user