diff --git a/mapillary_sequences_userscript/index.js b/mapillary_sequences_userscript/index.js
index 9230c12b..d389a7b8 100644
--- a/mapillary_sequences_userscript/index.js
+++ b/mapillary_sequences_userscript/index.js
@@ -4,7 +4,7 @@
// et lancer ce script dans la console js pour avoir à la fin un tableau de toutes les séquences.
// ouvrir le drawer de séquene key
-function toggle_advanced_info () {
+function toggle_advanced_info() {
let _dots = document.querySelector('.i2.three-dots')
_dots.click
}
@@ -31,9 +31,13 @@ function click_block_number (num) {
}
function add_sequence_id () {
-
+ check_annoying_modal()
let id_sequence_container = document.querySelector('.content > div:nth-child(1) > div:nth-child(2) > app-copy-field:nth-child(2) > div:nth-child(1) > div:nth-child(1)')
id = id_sequence_container.innerText
+
+ if(sequences_list.indexOf(id) === -1){
+ console.log('déjà présent: ', id)
+ }
sequences_list.push(id)
console.log('sequence id', id)
@@ -44,8 +48,10 @@ function check_annoying_modal(){
if (has_annoying_modal) {
has_annoying_modal.click()
- toggle_advanced_info()
-
+ let t = setTimeout(() => {
+ toggle_advanced_info()
+ clearInterval(t)
+ }, 100)
}
}
@@ -88,9 +94,13 @@ function iterate_blocks (initial_block = 0, max_block, waiting = 400) {
}
-// toggle_advanced_info()
-// on définit un max d'itérations à 20 pour tester, et 300 milisecondes entre chaque
-iterate_blocks(0, 25, 600)
-
// compter
document.querySelectorAll('drawer-sequence-item')
+
+
+// toggle_advanced_info()
+// on définit un max d'itérations à 20 pour tester, et 300 milisecondes entre chaque
+// iterate_blocks(4, document.querySelectorAll('drawer-sequence-item').length + 4, 1000)
+iterate_blocks(30, 60, 600)
+// add_sequence_id()
+filter_sequences_id()
diff --git a/osm-itineraire-userscript/index.html b/osm-itineraire-userscript/index.html
new file mode 100644
index 00000000..bf4578de
--- /dev/null
+++ b/osm-itineraire-userscript/index.html
@@ -0,0 +1,64 @@
+
+
+
+ Véhicule |
+ CO2 kg eq. |
+
+
+
+
+ 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 |
+
+
+
+
+
+
+
+
+ infos ADEME
+
+
+ Sont incluses les émissions directes, la construction des véhicules (fabrication, maintenance et fin de vie) et
+ la production et distribution de carburant et d'électricité. La construction des infrastructures (routes, rails,
+ aéroports...) n'est pas incluse.
+
+
json
+
diff --git a/osm-itineraire-userscript/index.js b/osm-itineraire-userscript/index.js
new file mode 100644
index 00000000..9a09d336
--- /dev/null
+++ b/osm-itineraire-userscript/index.js
@@ -0,0 +1,183 @@
+// ==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 = `
+
+
Impact climatique:
+
+
+
+ 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 |
+
+
+
+
+
+
+
+ infos ADEME
+
+
+ Émissions de gaz à effet de serre (GES) pour une personne sur cette distance, en équivalent CO2. Voyager à plusieurs divise les émissions de GES.
+ Sont incluses les émissions directes, la construction des véhicules (fabrication, maintenance et fin de vie) et
+ la production et distribution de carburant et d'électricité. La construction des infrastructures (routes, rails,
+ aéroports...) n'est pas incluse.
+
+
json
+
+
`
+
+ let comparison_container = document.querySelector('#comparison_container')
+
+ /**
+ * on ajoute la div si elle manque
+ */
+ if (!comparison_container) {
+ const comparisonContainerAdd = document.createElement('div')
+ comparisonContainerAdd.setAttribute('id', 'comparison_container')
+
+ const sidebarContainer = document.getElementById('sidebar_content')
+ sidebarContainer.insertBefore(comparisonContainerAdd, sidebarContainer.children[0]);
+
+ comparison_container = document.querySelector('#comparison_container')
+
+ }
+ // on remplit les infos actualisées
+ comparison_container.innerHTML = textCompare
+ console.log('comparison_container', comparison_container.innerText)
+
+}
+
+function main () {
+ const distance = getDistanceFromElement()
+ if (distance) {
+ calculateEmissionsAndDisplay(distance)
+ } else {
+ setTimeout(() => {
+ const distance = getDistanceFromElement()
+ if (distance) {
+ calculateEmissionsAndDisplay(distance)
+ }
+ }, 5000)
+ }
+}
+
+document.addEventListener('hashchange', () => main())
+document.addEventListener('DOMContentLoaded', () => main())
+document.addEventListener('mouseup', () => main())
+
+main()