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?

28
demandé sur John Slegers 2013-10-20 16:30:23

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.

90
répondu T.J. Crowder 2013-10-20 12:34:10

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

8
répondu spacebean 2013-10-20 12:36:29

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.

1
répondu Sara 2016-10-05 19:44:31

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>
1
répondu Darragh Blake 2017-11-15 15:01:51