Ny og bedre Strava fusjon:
javascript:(async function() {let eT;let tA, laA, lnA, eA;const tE = document.querySelector("#heading > div > div > div.spans8.activity-summary.mt-md.mb-md > div > div > time");if (tE) {const tR = tE.textContent.trim();const [ti, pe, , day, mo, date, year] = tR.split(/\s+/);const [ho, m] = ti.split(":").map(Number);const h = pe === "PM" && ho < 12 ? ho + 12 : (pe === "AM" && ho === 12 ? 0 : ho);const dO = new Date(`${mo} ${date}, ${year} ${h}:${m}:00`);if (!isNaN(dO)) {eT = Math.floor(dO.getTime());}}const ru = performance.getEntriesByType('resource');const aR = ru.find(resource => resource.name.includes('altitude&str'));const llR = ru.find(resource => resource.name.includes('latlng'));if (aR) {const r = await fetch(aR.name);const d = await r.json();const rtA = d.time;eA = d.altitude;tA = rtA.map((time) => time*1000 + eT);}if (llR) {const r = await fetch(llR.name);const d = await r.json();const llA = d.latlng;laA = llA.map((latlng) => latlng[0]);lnA = llA.map((latlng) => latlng[1]);}const d = tA.map((t, i) => ({la: laA[i],lo: lnA[i],t: t,e: eA[i]}));let g = `<?xml version="1.0" encoding="UTF-8"?>\n<gpx version="1.1" creator="Name" xmlns="http://www.topografix.com/GPX/1/1">\n<trk>\n<name>Converted GPX</name>\n<trkseg>\n`;d.forEach(p => {const t = new Date(p.t).toISOString();g += `<trkpt lat="${p.la}" lon="${p.lo}">\n<ele>${p.e}</ele>\n<time>${t}</time>\n</trkpt>\n`;});g += `</trkseg>\n</trk>\n</gpx>`;const b = new Blob([g], { type: 'application/gpx+xml' });const l = document.createElement('a');l.href = URL.createObjectURL(b);l.download = 'Strava GPX fil.gpx';l.click();})();
For å laste ned andre sine GPX filer på Garmin må du gjøre nesten det samme som på strava
Hvis du ikke vet hvordan du laster ned GPX filer på strava se videoen over
Bokmerket må ha annen kode
Du må klikke to ganger på bokmerket (se kort teknisk forklaring)
javascript:(function () {if (!sessionStorage.getItem('reloaded')) {sessionStorage.setItem('reloaded', 'true');location.reload();} else {sessionStorage.removeItem('reloaded');const originalXHR = window.XMLHttpRequest.prototype.open;window.XMLHttpRequest.prototype.open = function (m, u, ...r) {if (u.includes('details?')) {const ool = this.onload;this.onload = function () {if (this.status === 200) {let g = `<?xml version="1.0" encoding="UTF-8"?>\n<gpx version="1.1" creator="Name" xmlns="http://www.topografix.com/GPX/1/1">\n<trk>\n<name>Converted GPX</name>\n<trkseg>\n`;const j = JSON.parse(this.responseText);const data = j.metricDescriptors;const ke = 'directElevation';const k = data.find(d => d.key === ke).metricsIndex;const kt = 'directTimestamp';const ti = data.find(desc => desc.key === kt).metricsIndex;const pl = j.geoPolylineDTO.polyline;let mi = 0;while (j.activityDetailMetrics[mi].metrics[ti] < pl[0].time) {mi += 1;}for (let i = 0; i < pl.length; i++) {let p = pl[i];let e = 0;try {if (j.activityDetailMetrics[mi].metrics[ti] < p.time) {mi += 1;}e = j.activityDetailMetrics[mi].metrics[k];} catch (e) {}if (p.lat && p.lon) {const t = new Date(p.time).toISOString();g += `<trkpt lat="${p.lat}" lon="${p.lon}">\n<ele>${e}</ele>\n<time>${t}</time>\n</trkpt>\n`;}}g += `</trkseg>\n</trk>\n</gpx>`;const b = new Blob([g], { type: 'application/gpx+xml' });const l = document.createElement('a');l.href = URL.createObjectURL(b);l.download = 'Garmin GPX fil.gpx';l.click();location.reload();}if (ool) {ool.apply(this, arguments);}};}return originalXHR.apply(this, [m, u, ...r]);};}})();
Første gangen du klikker på bokmerke relodes/oppdateres siden.
Andre gangen du klikker på bokmerket leser den av filene som blir lastet inn. Når den riktige filen som inneholder posisjons og tid dataen gjør den det om til en gpx fil.
Eller gå til
Garmin: Exporter garmin aktivitet husk å velg GPX
Polar Eksporter polar aktivitet husk å velg GPX