Bonjour,

Une nouvelle fois je me tourne vers le forum car je suis compl�tement bloqu� ...

J'ai un code existant encapsul� dans une extension google chrome � laquelle je souhaiterais ajouter 2 am�liorations, j'esp�re trouver ici de l'aide et des conseils.

L'extension agit sur l'url suivante http://zezo.org/mc/chart.pl?.

Voici les fichiers sources qui la compose : Route zezo v2.9.1.zip

L'impl�mentation de la checkbox 'Local Time' et du bouton '.GPX' sur popup.html donne ceci :

Code HTML : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
<div style="float:left;">
   <input type="checkbox" id="localtime">
   <label>Local Time</label>
</div>
<div style="float:right;">
   <label>Version</label>
   <label id="version"></label>
</div>
<div style="margin:0 auto;text-align: center;">
   <input type="button" value=".GPX" onclick="file_gpx()">
</div>

et donne ceci :

Nom : Capture d�e?cran 2018-02-05 a? 09.46.07.png
Affichages : 93
Taille : 20,6 Ko

# Checkbox 'Local Time':
Passe le temps UTC en temps locale, la fonction je l'ai cr�� et elle est 100% fonctionnelle pour n'importe quel fuseau horaire, la voici :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var dt_utc = [2018,2,25,0,59]; //CET -> CEST in 1 min
//var dt_utc = [2018,2,25,1,0]; //CEST OK
//var dt_utc = [2018,9,28,0,59]; //CEST -> CET in 1 min
//var dt_utc = [2018,9,28,1,0]; //CET OK
 
function CltDTZ (dt_utc) {
var d = new Date(Date.UTC.apply(null, dt_utc));
var o = -d.getTimezoneOffset(), t = Math.abs(o);
var s = (o < 0) ? "-" : "+";
var h = Math.trunc(t) / 60;
var mh = (h == 0) ? "" : s + h;
var m = t % 60;
var hm = (m == 0) ? mh : s + h + ':' + m;
var Y = d.getFullYear();
var M = ("0"+ (d.getMonth() + 1)).slice(-2);
var D = ("0" + d.getDate()).slice(-2);
var HH = ("0" + d.getHours()).slice(-2);
var MM = ("0" + d.getMinutes()).slice(-2);
return Y + "-" + M + "-" + D + " " + HH + ":" + MM + " " + "UTC" + hm;
};
document.write (CltDTZ(dt_utc)); //2018-03-25 01:59 UTC+1
la variable dt_utc contient les param�tres date et time extrait du code source et alimente la fonction CltDTZ "Client Date Time timeZone", la mise en oeuvre est pour moi le flou artistique complet.

# Bouton '.GPX':
Extrait la latitude et longitude des points list�s pour cr�er une route exploitable dans d'autres logiciels de routage ou viewer style google earth
Le but est de comparer les routes issus de diff�rents algorithmes de routage.

Pour ce faire, il me faut r�cup�rer la valeur de la variable scale dans le code source

Nom : Capture d�e?cran 2018-02-05 a? 10.06.02.png
Affichages : 86
Taille : 73,3 Ko

Via une regex, il me faut extraire les valeurs left et top des points dans le code source :

Nom : Capture d�e?cran 2018-02-05 a? 10.12.25.png
Affichages : 93
Taille : 91,2 Ko

Cette regex doit faire le travail ( elle fonctionne sur regex101 � v�rifier si l'extension google chrome la comprend correctement )
Code : S�lectionner tout - Visualiser dans une fen�tre � part
/z-index: 1; left :([0-9]{1,}|[-][0-9]{1,})px; top:([0-9]{1,}|[-][0-9]{1,})px/g
Avec ces 2 formules, je suis en mesure de d�terminer la latitude "left" et la longitude "top"

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
lat = 90 - ((value_left + 2)/ scale)
lon = if (((value_lon + 2) / scale) <= 180){
     var lon = (value_lon + 2) / scale;
   } else {
     var lon = ((value_lon + 2) / scale) - 360;
}
Ici aussi la mise en �uvre est un grand flou artistique ... reste le formatage sp�cifique pour la cr�ation du fichier .gpx

J'esp�re que le projet s�duira quelques uns d'entre vous et que vous m'aiderez � sortir de cette impasse.

Si vous avez des questions, n'h�sitez pas je suis tr�s r�actif ( je r�ponds pas 3 jours apr�s )

Merci d'avance

Cdlt

Romain