Bonjour,
Dans ce code
Je cherche à afficher, en console, les valeurs décimales obtenues pour les points latitude et longitude (que j'ai commenté dans le code).
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 "use strict"; const pattern = /updi\(event,'([0-9]{4}-[0-9]{2}-[0-9]{2}) ([0-9]{2}:[0-9]{2}) ([A-Z]{3,4}).*(T[+-]{1}.*?[0-9]{1,}:[0-9]{2}).*<br>Distances:.*?([0-9]{1,}\.[0-9]{1,}nm)\/([0-9]{1,}\.[0-9]{1,}nm)<br><b>Wind:<\/b> ([0-9]*?.*) (.*? kt).*\(<b>TWA(.*?)<\/b>\)<br><b>Heading:<\/b>(.*?)<b>Sail:<\/b>(.*?)<br><b>Boat Speed:<\/b>(.*?)'/g const points = []; function getLatitude(top, scale) { return 90 - ((top + 2) / scale); } function getLongitude(left, scale) { if (((left + 2 / scale) >= -180) || ((left + 2 / scale) <= 180)) { return (left + 2) / scale; } else { return ((left + 2) / scale) - 360; } } try { let scale; for (const script of document.scripts) { if (script.textContent.includes("var scale")) { scale = /var scale = ([0-9]{1,3})/.exec(script.textContent)[1]; break; } } let layer = document.getElementById("dot_layer"); Array.prototype.slice.call(layer.getElementsByTagName("img")).forEach(function (element) { let event = element.getAttribute("onmouseover"); if (event !== null) { let style = element.getAttribute("style"), cssProperties = style.split(";"), left = parseInt(cssProperties[1].split(":")[1].replace("px", ""), 10), top = parseInt(cssProperties[2].split(":")[1].replace("px", ""), 10), match = pattern.exec(event); const date = match[1], time = match[2], timezone = match[3], ttw = match[4], dtw = match[5], dtg = match[6], twd = match[7], tws = match[8], twa = match[9], btw = match[10], sail = match[11], stw = match[12]; let race = document.title; points.push({ race: race, //longitude: getLongitude(left, scale), //latitude: getLatitude(top, scale), date: date, time: time, timezone: timezone, ttw: ttw, dtw: dtw, dtg: dtg, twd: twd, tws: tws, twa: twa, btw: btw, sail: sail, stw: stw }); pattern.lastIndex = 0; } }); chrome.runtime.sendMessage(points); } catch (e) { console.error(e); chrome.runtime.sendMessage([]); }
Je tourne en rond complet je sais plus comment j'avais fait ... je l'avais mis en commentaire mais je l'ai supprimé depuis pensant que c'est bon j'avais compris comment le placer ... erreur de ma part
Pouvez vous m'indiquez où le placer ? J'ai une petite erreur de conversion de décimale à degrés minutes secondes que je dois corriger ...
Merci
Edit: Trouvé à tâtons mais trouvé. (C'est commenté dans le code)
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 "use strict"; const pattern = /updi\(event,'([0-9]{4}-[0-9]{2}-[0-9]{2}) ([0-9]{2}:[0-9]{2}) ([A-Z]{3,4}).*(T[+-]{1}.*?[0-9]{1,}:[0-9]{2}).*<br>Distances:.*?([0-9]{1,}\.[0-9]{1,}nm)\/([0-9]{1,}\.[0-9]{1,}nm)<br><b>Wind:<\/b> ([0-9]*?.*) (.*? kt).*\(<b>TWA(.*?)<\/b>\)<br><b>Heading:<\/b>(.*?)<b>Sail:<\/b>(.*?)<br><b>Boat Speed:<\/b>(.*?)'/g const points = []; function getLatitude(top, scale) { return 90 - ((top + 2) / scale); } function getLongitude(left, scale) { if (((left + 2 / scale) >= -180) || ((left + 2 / scale) <= 180)) { return (left + 2) / scale; } else { return ((left + 2) / scale) - 360; } } try { let scale; for (const script of document.scripts) { if (script.textContent.includes("var scale")) { scale = /var scale = ([0-9]{1,3})/.exec(script.textContent)[1]; break; } } let layer = document.getElementById("dot_layer"); Array.prototype.slice.call(layer.getElementsByTagName("img")).forEach(function (element) { let event = element.getAttribute("onmouseover"); if (event !== null) { let style = element.getAttribute("style"), cssProperties = style.split(";"), left = parseInt(cssProperties[1].split(":")[1].replace("px", ""), 10), top = parseInt(cssProperties[2].split(":")[1].replace("px", ""), 10), match = pattern.exec(event); //console.log("lat: " + getLatitude(top, scale) + ",lon: " + getLongitude(left, scale)); const date = match[1], time = match[2], timezone = match[3], ttw = match[4], dtw = match[5], dtg = match[6], twd = match[7], tws = match[8], twa = match[9], btw = match[10], sail = match[11], stw = match[12]; let race = document.title; points.push({ race: race, longitude: getLongitude(left, scale), latitude: getLatitude(top, scale), date: date, time: time, timezone: timezone, ttw: ttw, dtw: dtw, dtg: dtg, twd: twd, tws: tws, twa: twa, btw: btw, sail: sail, stw: stw }); pattern.lastIndex = 0; } }); chrome.runtime.sendMessage(points); } catch (e) { console.error(e); chrome.runtime.sendMessage([]); }
Partager