// ==UserScript== // @name Comparatif carbone OSM itinéraire // @version 1 // @grant none // ==/UserScript== /** * comparatif des empreintes carbones sur un itinéraire fait sur OSM.org * @type {{bus: number, voiture_elec: number, tgv: number, voiture: number, velo_elec: number, avion: number}} */ const coefficients = { avion_condens: 0.285*3, avion: 0.285, voiture: 0.218, scoot: 0.062, moto: 0.191, bus: 0.0352, voiture_elec: 0.103, velo_elec: 0.01, metro: 0.004, tgv: 0.003, } function getDistanceFromElement () { const sidebarContent = document.getElementById('sidebar_content') if (!sidebarContent) { console.warn('Impossible de trouver l’élément #sidebar_content.') return null } const paragraphs = sidebarContent.querySelectorAll('p') for (const para of paragraphs) { if (para.innerText.includes('Distance')) { const indexOfKm = para.innerText.indexOf('km') let text = para.innerText let boom = text.trim().split(' ') console.log('para.innerText', para.innerText) const distance = parseFloat(boom[1]) return distance } } console.warn('Impossible de trouver la distance dans les paragraphes.') return null } function calculateEmissionsAndDisplay (distance) { if (!distance) { console.warn('La distance est undefined ou null.') return } const emissionsByMode = { avion_condens: distance * coefficients.avion_condens, avion: distance * coefficients.avion, bus: distance * coefficients.bus, moto: distance * coefficients.moto, scoot: distance * coefficients.scoot, voiture: distance * coefficients.voiture, voiture_elec: distance * coefficients.voiture_elec, tgv: distance * coefficients.tgv, velo_elec: distance * coefficients.velo_elec, } let textCompare = `
Véhicule | CO2 kg eq. |
---|---|
Avion condensation inclue | ${emissionsByMode.avion_condens.toFixed(1)} |
Avion | ${emissionsByMode.avion.toFixed(1)} |
Bus thermique | ${emissionsByMode.bus.toFixed(1)} |
Moto | ${emissionsByMode.moto.toFixed(1)} |
Scooter | ${emissionsByMode.scoot.toFixed(1)} |
Voiture | ${emissionsByMode.voiture.toFixed(1)} |
Voiture électrique ⚡ | ${emissionsByMode.voiture_elec.toFixed(1)} |
🚴 Vélo Electrique ⚡ | ${emissionsByMode.velo_elec.toFixed(1)} |
🚇 Métro | ${emissionsByMode.tgv.toFixed(1)} |
TGV | ${emissionsByMode.tgv.toFixed(1)} |
🚴 Vélo ou marche | 0 |