Affichage du sens du vent

Bonsoir,

Plutot que d’afficher le sens du vent avec l’orientation en degré, j’ai souhaité faire une traduction en « Nord » « Sud Sud Ouest »…
J’ai donc réalisé ce javascript qui transforme l’angle en texte. Je le mets à disposition pour ceux qui veulent l’utiliser.

(datasources["Météo"]["wind_direction"]>=348.75||datasources["Météo"]["wind_direction"]<11.25)?"Nord":
(datasources["Météo"]["wind_direction"]>=11.25&&datasources["Météo"]["wind_direction"]<33.75)?"Nord Nord Est":
(datasources["Météo"]["wind_direction"]>=33.75&&datasources["Météo"]["wind_direction"]<56.25)?"Nord Est":
(datasources["Météo"]["wind_direction"]>=56.25&&datasources["Météo"]["wind_direction"]<78.75)?"Est Nord Est":
(datasources["Météo"]["wind_direction"]>=78.75&&datasources["Météo"]["wind_direction"]<101.25)?"Est":
(datasources["Météo"]["wind_direction"]>=101.25&&datasources["Météo"]["wind_direction"]<123.75)?"Est Sud Est":
(datasources["Météo"]["wind_direction"]>=123.75&&datasources["Météo"]["wind_direction"]<146.25)?"Sud Est":
(datasources["Météo"]["wind_direction"]>=146.25&&datasources["Météo"]["wind_direction"]<168.75)?"Sud Sud Est":
(datasources["Météo"]["wind_direction"]>=168.75&&datasources["Météo"]["wind_direction"]<191.25)?"Sud":
(datasources["Météo"]["wind_direction"]>=191.25&&datasources["Météo"]["wind_direction"]<213.75)?"Sud Sud Ouest":
(datasources["Météo"]["wind_direction"]>=213.75&&datasources["Météo"]["wind_direction"]<236.25)?"Sud Ouest":
(datasources["Météo"]["wind_direction"]>=236.25&&datasources["Météo"]["wind_direction"]<258.75)?"Ouest Sud Ouest":
(datasources["Météo"]["wind_direction"]>=258.75&&datasources["Météo"]["wind_direction"]<281.25)?"Ouest":
(datasources["Météo"]["wind_direction"]>=281.25&&datasources["Météo"]["wind_direction"]<303.75)?"Ouest Nord Ouest":
(datasources["Météo"]["wind_direction"]>=303.75&&datasources["Météo"]["wind_direction"]<326.25)?"Nord Ouest":
(datasources["Météo"]["wind_direction"]>=326.25&&datasources["Météo"]["wind_direction"]<348.75)?"Nord Nord Ouest"

Si vous constatez une anomalie, indiquez-le moi.

Bien à vous

3 J'aimes

Un peu plus fort encore…
Le glyphicon « boussole » n’étant pas accessible dans l’interface de l’IPX, j’ai réalisé ce script à mettre dans un widget HTML pour avoir cette icone (à défaut d’une rose des vents qui ne semble pas exister…) en plus du sens du vent en texte. Pour ceux qui veulent… :wink:

var vent = "Nord";
vent = (datasources["Météo"]["wind_direction"]>=11.25&&datasources["Météo"]["wind_direction"]<33.75)?"Nord Nord Est":
(datasources["Météo"]["wind_direction"]>=33.75&&datasources["Météo"]["wind_direction"]<56.25)?"Nord Est":
(datasources["Météo"]["wind_direction"]>=56.25&&datasources["Météo"]["wind_direction"]<78.75)?"Est Nord Est":
(datasources["Météo"]["wind_direction"]>=78.75&&datasources["Météo"]["wind_direction"]<101.25)?"Est":
(datasources["Météo"]["wind_direction"]>=101.25&&datasources["Météo"]["wind_direction"]<123.75)?"Est Sud Est":
(datasources["Météo"]["wind_direction"]>=123.75&&datasources["Météo"]["wind_direction"]<146.25)?"Sud Est":
(datasources["Météo"]["wind_direction"]>=146.25&&datasources["Météo"]["wind_direction"]<168.75)?"Sud Sud Est":
(datasources["Météo"]["wind_direction"]>=168.75&&datasources["Météo"]["wind_direction"]<191.25)?"Sud":
(datasources["Météo"]["wind_direction"]>=191.25&&datasources["Météo"]["wind_direction"]<213.75)?"Sud Sud Ouest":
(datasources["Météo"]["wind_direction"]>=213.75&&datasources["Météo"]["wind_direction"]<236.25)?"Sud Ouest":
(datasources["Météo"]["wind_direction"]>=236.25&&datasources["Météo"]["wind_direction"]<258.75)?"Ouest Sud Ouest":
(datasources["Météo"]["wind_direction"]>=258.75&&datasources["Météo"]["wind_direction"]<281.25)?"Ouest":
(datasources["Météo"]["wind_direction"]>=281.25&&datasources["Météo"]["wind_direction"]<303.75)?"Ouest Nord Ouest":
(datasources["Météo"]["wind_direction"]>=303.75&&datasources["Météo"]["wind_direction"]<326.25)?"Nord Ouest":
(datasources["Météo"]["wind_direction"]>=326.25&&datasources["Météo"]["wind_direction"]<348.75)?"Nord Nord Ouest":
(datasources["Météo"]["wind_direction"]);

return `
<center>
  <table width='90%' border = "0">
    <tr>
      <td align=left valign=middle width='25%'><span class="glyphicons glyphicons-compass x2"></span></td>
      <td align=left valign=middle><div class="tw-value" style="font-size: 20px; max-width: 100%;">${vent}</div></td>
    </tr>
  </table>
</center>
`;

Le résultat est plutôt sympa à mon goût :

4 J'aimes

Je me permet une petite amélioration en terme de lisibilité du code :wink:

var BEARINGS = ["Nord", "Nord Nord Est", "Nord Est", "Est Nord Est", "Est", "Est Sud Est", "Sud Est", "Sud Sud Est", "Sud", "Sud Sud Ouest", "Sud Ouest", "Ouest Sud Ouest", "Ouest", "Ouest Nord Ouest", "Nord Ouest", "Nord Nord Ouest"];

function degreeToBearing(degree) {
  return BEARINGS[Math.floor((degree + 11.25) % 360 / 22.5)];
}

var vent = degreeToBearing(datasources["Météo"]["wind_direction"]);

return `
<center>
  <table width='90%' border = "0">
    <tr>
      <td align=left valign=middle width='25%'><span class="glyphicons glyphicons-compass x2"></span></td>
      <td align=left valign=middle><div class="tw-value" style="font-size: 20px; max-width: 100%;">${vent}</div></td>
    </tr>
  </table>
</center>
`;
6 J'aimes

Merci @ZogStriP

Quand les pros du code s’en mêlent, ça devient tout de suite plus efficace ! :slight_smile:

J’étais déjà content de moi avec avec mon code, mais le tien est vraiment :+1:.

J’implémente de ce pas…

3 J'aimes