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 :
# 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 :
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.
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
# 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
Via une regex, il me faut extraire les valeurs left et top des points dans le code source :
Cette regex doit faire le travail ( elle fonctionne sur regex101 � v�rifier si l'extension google chrome la comprend correctement )
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 /z-index: 1; left :([0-9]{1,}|[-][0-9]{1,})px; top:([0-9]{1,}|[-][0-9]{1,})px/g
Ici aussi la mise en �uvre est un grand flou artistique ... reste le formatage sp�cifique pour la cr�ation du fichier .gpx
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; }
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
Partager