01
Upload Routes
Drag and drop your GPX files and well take care of the rest. Fast, secure and reliable.
Supports GPX 1.0/1.1
Automatic validation
Secure cloud storage
Automatically repairs missing or invalid GPX elevation data.
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rw6B97D119_9725_4F06_A55A_DF37FC4141B3',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" loading="lazy" decoding="async" />
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rw3C3BDCA8_9265_4340_8248_C0A4E3200CEA',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" loading="lazy" decoding="async" />
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rwB9575A7F_1BC8_4299_B324_986E96117C2D',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" loading="lazy" decoding="async" />
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rw059A82EA_E135_48C2_BB7C_EF13CFFED497',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" loading="lazy" decoding="async" />
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rw30DF8366_42FE_405C_9048_F80FAAB6256A',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" loading="lazy" decoding="async" />
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rw22942B73_0B71_48E6_AEED_C761D8200A38',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" loading="lazy" decoding="async" />
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rwB75105C2_A58B_4AE4_B40E_18BAFF168375',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" loading="lazy" decoding="async" />
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rwD74590DF_E13F_4BFF_857B_7F0BD8B46DE4',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" loading="lazy" decoding="async" />