javascript - google - openweathermap api key
¿Cómo calculo la temperatura en grados celsius devuelto en openweathermap.org JSON? (4)
Eso parece ser kelvin, pero puede especificar el formato que desea que se devuelva para la temperatura, por ejemplo:
http://api.openweathermap.org/data/2.5/weather?q=London&mode=json&units=metric
o
http://api.openweathermap.org/data/2.5/weather?q=London&mode=json&units=imperial
Estoy obteniendo el clima para una ciudad usando openweathermap.org.
La llamada jsonp está funcionando y todo está bien, pero el objeto resultante contiene la temperatura en una unidad desconocida:
{
//...
"main": {
"temp": 290.38, // What unit of measurement is this?
"pressure": 1005,
"humidity": 72,
"temp_min": 289.25,
"temp_max": 291.85
},
//...
}
Aquí hay una demostración de que console.log
es el objeto completo.
No creo que la temperatura resultante esté en grados Fahrenheit porque la conversión de 143.544
Fahrenheit a 143.544
centígrados es 143.544
.
¿Alguien sabe qué unidad de temperatura está abriendo openweathermap?
Kelvin a Fahrenheit es:
(( kelvinValue - 273.15) * 9/5) + 32
Noté que no todas las llamadas de OpenWeatherApp leen el parámetro de unidades si se pasa. (Un ejemplo de este error: http://api.openweathermap.org/data/2.5/group?units=Imperial&id=5375480,4737316,4164138,5099133,4666102,5391811,5809844,5016108,4400860,4957280&appid=XXXXXX ) Kelvin todavía se devuelve.
Parece kelvin . Convertir kelvin a celsius es fácil: solo reste 273.15.
Y el vistazo más breve a la documentación de la API nos dice que si agrega &units=metric
a su solicitud, obtendrá centígrados.
Puedes cambiar la unidad a métrica.
Este es mi código.
<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>