[UDF] Géolocalisation + Météo

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 131
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

[UDF] Géolocalisation + Météo

#1

Message par Numeric »

Titre : Une Journée d'Exploration avec AutoIt

Chapitre 1 : Préparation

Imaginez que vous préparez une journée d'exploration dans une ville inconnue. Vous voulez obtenir des informations essentielles pour votre voyage.

Vous commencez par obtenir les coordonnées géographiques de votre lieu de destination en utilisant GetCoordinatesFromAddress. Dans cet exemple, vous prévoyez d'aller à New York, donc vous obtenez les coordonnées (latitude et longitude).

Code : Tout sélectionner

$latitude = 40.7128
$longitude = -74.0060
$coordinates = GetCoordinatesFromAddress("New York")
Vous décidez de vérifier la météo à New York pour vous préparer aux conditions climatiques. Pour cela, vous utilisez la fonction GetWeatherInfo. Cette fonction interroge l'API Open-Meteo pour obtenir des informations sur la température et la vitesse du vent à votre destination.

Code : Tout sélectionner

$weatherInfo = GetWeatherInfo($latitude, $longitude)
Chapitre 2 : Planification de la Journée

Avant de sortir, vous voulez savoir quand le soleil se lèvera et se couchera à New York, car cela peut influencer vos plans. Vous utilisez la fonction GetSunriseSunsetTimes avec la date spécifique d'aujourd'hui. Cette fonction vous donne les heures précises du lever et du coucher du soleil.

Code : Tout sélectionner

$date = "2023-10-24"
$sunriseSunset = GetSunriseSunsetTimesSpecDate($latitude, $longitude, $date)
En outre, vous avez quelques amis qui vous rejoindront en cours de route. Vous décidez d'utiliser la fonction GetSunriseSunsetTimes à nouveau, mais cette fois, vous spécifiez une date particulière, le 24 octobre 2023.

Chapitre 3 : Départ pour l'Aventure

Le grand jour est arrivé, et vous êtes prêt à partir. Mais, que se passe-t-il si vous ne connaissez pas les coordonnées géographiques de votre prochaine destination ? Pas de soucis ! Vous utilisez GetCoordinatesFromAddress avec des saisies utilisateur pour entrer la latitude et la longitude.

Code : Tout sélectionner

$latitude = InputBox("Latitude", "Entrez la valeur de la latitude :")
$longitude = InputBox("Longitude", "Entrez la valeur de la longitude :")
Au cours de votre voyage, vous souhaitez en savoir plus sur votre emplacement actuel. Vous obtenez donc des informations basées sur l'adresse IP à l'aide de la fonction GetIPInfo. Cela vous donne des détails sur la ville, la région, le pays, les coordonnées géographiques et d'autres informations utiles.

Code : Tout sélectionner

$ipInfo = GetIPInfo()
Vous décidez également de mesurer la distance entre deux endroits, peut-être entre New York et Los Angeles. Utilisez la fonction GetDistanceBetweenCoordinates pour calculer la distance en kilomètres entre deux paires de coordonnées géographiques.

Code : Tout sélectionner

$latitude1 = 40.7128
$longitude1 = -74.0060
$latitude2 = 34.0522
$longitude2 = -118.2437
$distance = GetDistanceBetweenCoordinates($latitude1, $longitude1, $latitude2, $longitude2)
Enfin, si vous voulez une adresse formatée basée sur les coordonnées géographiques, vous pouvez utiliser GetFormattedAddress.

Code : Tout sélectionner

$myAddress = GetFormattedAddress($latitude, $longitude)
Chapitre 4 : Appréciation des Détails

Tout au long de la journée, vous restez informé grâce à toutes les informations que vous avez obtenues.

Vous surveillez la météo de New York pour vous adapter aux changements, grâce à GetWeatherInfo. La fonction vous fournit la température actuelle et la vitesse du vent.

Vous suivez l'heure du lever et du coucher du soleil, pour ne pas manquer un beau coucher de soleil à New York. Grâce à GetSunriseSunsetTimes, vous obtenez ces heures précises.

Si vous avez besoin d'obtenir des informations sur un endroit spécifique, comme un restaurant ou un musée, vous pouvez utiliser GetAddressInfo en fournissant les coordonnées géographiques.

De plus, DisplayAddress peut être utile pour afficher ces informations sous une forme plus lisible.

Ainsi, tout au long de votre journée d'exploration, vous êtes bien préparé et informé grâce à ces fonctions AutoIt, facilitant votre voyage à travers la ville inconnue.
Fichiers joints
GeoLoc.au3
(13.1 Kio) Téléchargé 76 fois
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2087
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [UDF] Géolocalisation + Météo

#2

Message par TommyDDR »

Très bonne initiative !

Le GetWeatherInfo ne me retourne que les unités (°C et km/h)
En effet, la fonction de lecture du json est un peu trop simplifiée car le champ apparait 2 fois dans le json :

Code : Tout sélectionner

"current_units":{
      "time":"iso8601",
      "interval":"seconds",
      "temperature_2m":"°C",
      "windspeed_10m":"km/h"
   },
   "current":{
      "time":"2023-10-25T10:45",
      "interval":900,
      "temperature_2m":15.7,
      "windspeed_10m":16.6
   }
une fois pour l'unité sous "current_units" et une fois pour la valeur sous "current".

À part ça, top !
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 131
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [UDF] Géolocalisation + Météo

#3

Message par Numeric »

J'ai effectué une mise à jour de l'UDF.
1. la fonction GetWeatherInfo traite convenablement les données Json récupérées.
2.Deux fonctions sont classées comme Deprecated du fait des conditions d'utilisations des API concernées. Mais elles sont remplacées par une fonction équivalente.
3. Ajout de la fonction GetDirection...
'4.Création du fichier d'aide.

Consultez la documentation.
Fichiers joints
GeolocV1.0.au3
(27.45 Kio) Téléchargé 76 fois
Modifié en dernier par Numeric le ven. 27 oct. 2023 16:11, modifié 1 fois.
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Répondre