Comment calculer la température en degrés celsius openweathermap.org JSON?
j'obtiens le temps pour une ville utilisant openweathermap.org.
l'appel jsonp fonctionne et tout va bien mais l'objet résultant contient la température dans une unité inconnue:
{
//...
"main": {
"temp": 290.38, // What unit of measurement is this?
"pressure": 1005,
"humidity": 72,
"temp_min": 289.25,
"temp_max": 291.85
},
//...
}
Voici une démo qui console.log
est l'objet complet.
Je ne pense pas que la température résultante soit en fahrenheit parce que convertir 290.38
fahrenheit à celsius est 143.544
.
Est-ce que quelqu'un sait ce qu'est l'Unité de température openweathermap en rentrant?
4 réponses
Il ressemble à kelvin. Convertir kelvin en celsius est facile: il suffit de soustraire 273,15.
Et bref coup d'oeil la documentation de L'API nous dit que si vous ajoutez &units=metric
a votre demande, vous récupérerez celsius.
cela semble être kelvin, mais vous pouvez spécifier le format que vous voulez retourner pour le temp, par exemple:
http://api.openweathermap.org/data/2.5/weather?q=London&mode=json&units=metric
ou
http://api.openweathermap.org/data/2.5/weather?q=London&mode=json&units=imperial
Kelvin à Fahrenheit est:
(( kelvinValue - 273.15) * 9/5) + 32
j'ai remarqué que tous les appels OpenWeatherApp ne lisent pas le paramètre units s'il est passé. (Un exemple de cette erreur: http://api.openweathermap.org/data/2.5/group?units=Imperial&id=5375480,4737316,4164138,5099133,4666102,5391811,5809844,5016108,4400860,4957280&appid=XXXXXX) Kelvin est toujours de retour.
Vous pouvez changer l'unité en métrique.
C'est mon code.
<head>
<script src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.min.js"></script>
<style type="text/css">]
body{
font-size: 100px;
}
#weatherLocation{
font-size: 40px;
}
</style>
</head>
<body>
<div id="weatherLocation">Click for weather</div>
<div id="location"><input type="text" name="location"></div>
<div class="showHumidity"></div>
<div class="showTemp"></div>
<script type="text/javascript">
$(document).ready(function() {
$('#weatherLocation').click(function() {
var city = $('input:text').val();
let request = new XMLHttpRequest();
let url = `http://api.openweathermap.org/data/2.5/weather?q=${city}&units=metric&appid=[YOUR API KEY HERE]`;
request.onreadystatechange = function() {
if (this.readyState === 4 && this.status === 200) {
let response = JSON.parse(this.responseText);
getElements(response);
}
}
request.open("GET", url, true);
request.send();
getElements = function(response) {
$('.showHumidity').text(`The humidity in ${city} is ${response.main.humidity}%`);
$('.showTemp').text(`The temperature in Celcius is ${response.main.temp} degrees.`);
}
});
});
</script>
</body>