Comment afficher le nom de la ville , la latitude et longitude avec openweather [Résolu]

Signaler
Messages postés
2479
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
20 avril 2021
-
Messages postés
2479
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
20 avril 2021
-
bonjour a tous
je commence a utiliser openweather et pour l instant j essaye d afficher la ville , la latitude , la longitude
mais impossible
je parviens a afficher des infos mais pas la ville par exemple
voici mon code

 <?php

 $url = "https://api.openweathermap.org/data/2.5/onecall?lat=50.40965313355853&lon=4.441598958007829&exclude=current,minutely,alerts&lang=fr&units=metric&appid=e30eac7b1e60d534d109bfad513a4d9";

 $raw = file_get_contents($url);
$json = json_decode($raw);
 $i=1;
  
foreach ($json->hourly as $hourly) {
$hourly->timezone; //afficher la ville
$hourly->temp; // les températures
$hourly->weather; // la météo avec $daily->weather[0]->main; $daily->weather[0]->description; etc
  echo "La ville est   " . ( $hourly->timezone);
    echo "<br>";}
?>

8 réponses

Messages postés
32134
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2021
3 411
Bonjour,
Qu'est-ce qui ne marche pas au juste ?
Que contient ta variable $json ?
Que contient ta variable $hourly ?

.... Mettre des var_dump de ces variables dans ton code pour le voir ..... et nous les montrer ....
Sans ça..impossible de te venir en aide.

Messages postés
2479
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
20 avril 2021
133
bonjour jordane
merci pour la réponse
ben franchement cela a une puissance terrible ces var_dump

et donc je viens de le faire sur le $json
et donc c est bien la que ce cache ce que je cherche , apparemment toutes les données météo sont enfouies dans cette variable
la partie qui m intéresse est affichée de cette façon et au début de la variable

object(stdClass)#1 (9) { ["lat"]=> float(50.4097) ["lon"]=> float(4.4416) ["timezone"]=> string(15) "Europe/Brussels"
Messages postés
32134
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2021
3 411
Donc la variable timezone se trouve au même niveau que la variable hourly...

Sachant que le timezone... C'est une information qui permet de définir le fuseau horaire.
Aucun rapport avec la ville d'où tu prends la température.... Enfin bon, sauf si la documentation de ton API dit le contraire mais j'en doute...
Messages postés
2479
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
20 avril 2021
133
merci pour la reponse jordane
non la variable ce trouve dans le $json
dans la variable $hourly elle s y trouve pas

mais il y a également la longitude et la latitude qui dans l url peux etre remplace par la ville
je pense
donc a faire un essai ...
quoi que même la latitude et la longitude je ne parviens pas a l extraire
Messages postés
32134
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2021
3 411
Je n'ai pas dit qu'elle se trouvait dans la variable $hourly
Mais elle se trouve au même niveau...
Autrement dit, tu y accède de la même façon que la variable $hourly...
Messages postés
2479
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
20 avril 2021
133
ah ok
mon objectif final est de pouvoir laisser a utilisateur le choix de choisir sa ville
mais comment y arriver
Messages postés
32134
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2021
3 411
Tu peux toujours utiliser un formulaire dans lequel l'utilisateur choisira sa ville et prendre en compte ce qu'il aura indiqué lors de l'appel à ton API.

Si ta question concerne le fonctionnement de cette API, là nous on n'y pourra rien...
Commence par regarder la documentation...
Comme je te l'ai déjà dit nous n'avons pas de clé pour essayer et je n'ai pas envie d'aller me créer un compte.
Et puis, quand les informations sont disponibles dans la documentation officielle, nous n'avons pas vocation à aller les y chercher à ta place.
Fais donc quelques efforts....
Messages postés
2479
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
20 avril 2021
133
merci pour l aide
non je ne cherche pas le fonctionnement , je suis allé voir la documentation , mais bon comme toute documentation il faut la comprendre ...je pense m avoir bien débrouillé , mais je bloque sur des détails

j avais pas pense avec un formulaire
donc je fais un premier essai en remplaçant dans l url la clé par une variable
et la variable est bien entendu définie en début de code
mais il doit y avoir une erreur car rien ne s affiche

<?php
$apiKey = "e30eac7b1e60d534d109bfad513a4d9" ;




$url = "https://api.openweathermap.org/data/2.5/onecall?lat=50.40965313355853&lon=4.441598958007829&lang=fr&units=metric&appid=. $apiKey";
$raw = file_get_contents($url);
$json = json_decode($raw);
foreach ($json->daily as $daily) {
    $daily->dt; // le timestamp du jour, tu as aussi sunrise, sunset, etc
    $daily->temp; // les températures avec $daily->temp->day; $daily->temp->max; etc
    $daily->weather; // la météo avec $daily->weather[0]->main; $daily->weather[0]->description; etc
    print_r( $daily->dt) ;
    echo "<br>";
}

?>
Messages postés
2479
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
20 avril 2021
133
ah voila cela semble fonctionner cette fois pour ceux que cela interesse

<?php

$apiKey = "e30eac7b1e60d534d109bfad513a4d9" ;




$url = "https://api.openweathermap.org/data/2.5/onecall?lat=50.40965313355853&lon=4.441598958007829&lang=fr&units=metric&appid=$apiKey";
echo $url;
$raw = file_get_contents($url);
$json = json_decode($raw);
foreach ($json->daily as $daily) {
    $daily->dt; // le timestamp du jour, tu as aussi sunrise, sunset, etc
    $daily->temp; // les températures avec $daily->temp->day; $daily->temp->max; etc
    $daily->weather; // la météo avec $daily->weather[0]->main; $daily->weather[0]->description; etc
    print_r( $daily->dt) ;
    echo "<br>";
}

 

 
?>
Messages postés
32134
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2021
3 411
Il n'y a aucun rapport entre la variable APIkey.... Et le fait de proposer une recherche par ville...
D'ailleurs, il semble que la recherche se fasse sur la longitude et la latitude... Qui, si je ne m'abuse, sont écrits en dur dans l' url du code que tu nous montres...
Messages postés
2479
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
20 avril 2021
133
merci pour l aide jordane

comme explique c est un premier essai
si cela fonctionne avec la clé
il suffit juste de remplacer la latitude et la longitude par deux variables , comme je l ai fait avec ma clé

par contre si on veux trouver la ville il faut connaître la longitude et latitude
il y a des fichiers compresse avec ce genre d info sur le site
donc cela est faisable

demain je ferais des autres essais
Messages postés
2479
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
20 avril 2021
133
voila après des essais j ai pas utiliser la bonne api pour effectuer cela
avec celle que j ai utilisé on ne sait pas faire une recherche par ville

je reste sur openweather mais je change d api