0

我正在使用这个 api: http: //openweathermap.org/api但我不知道我如何才能获得今天、第二天和后天的数据。有什么建议我可以使用哪些参数以及如何使用?

我试过这样但我迷路了:

 var weatherUrl = 'http://api.openweathermap.org/data/2.5/forecast?q=Zurich&APPID=08dbab0eeefe53317d2e0ad7c2a2e060&units=metric';
      $.getJSON(
        encodeURI(weatherUrl),
        function(data) {

          if(data !== null && data.list !== null) {
            var result = data,
                weather = {},
                compass = ['N', 'NNE', 'NE', 'ENE', 'E', 'ESE', 'SE', 'SSE', 'S', 'SSW', 'SW', 'WSW', 'W', 'WNW', 'NW', 'NNW', 'N'],
                image404 = 'https://s.yimg.com/os/mit/media/m/weather/images/icons/l/44d-100567.png';
                console.log(result);
               for(var i = 0; i < result.list.length; i++){
                 weather.temp = Math.round(result.list[i].main.temp);

                 weather.code = result.list[i].weather[0].id;

                 weather.text = ucfirst(result.list[i].weather[0].description);
                 weather.date = result.dt_txt;
            }

            options.success(weather);
          } else {
            options.error('There was a problem retrieving the latest weather information.');
          }
        }
      );
4

1 回答 1

1

看看:调用 16 天/每日预测数据。在这里,您的代码根据您的需要进行了编辑。

function ucfirst(str) {
    var firstLetter = str.slice(0, 1);
    return firstLetter.toUpperCase() + str.substring(1);
}

var weatherUrl = 'http://api.openweathermap.org/data/2.5/forecast/daily?q=Zurich&APPID=APP_ID&units=metric';
$.getJSON(
    encodeURI(weatherUrl),
    function (data) {

        if (data !== null && data.list !== null) {
            var result = data,
                weather = {},
                compass = ['N', 'NNE', 'NE', 'ENE', 'E', 'ESE', 'SE', 'SSE', 'S', 'SSW', 'SW', 'WSW', 'W', 'WNW', 'NW', 'NNW', 'N'],
                image404 = 'https://s.yimg.com/os/mit/media/m/weather/images/icons/l/44d-100567.png';
            console.log(result);
            var weathers = [];
            for (var i = 0; i < 3; i++) {
                weathers.push({
                    temp: Math.round(result.list[i].temp.day),
                    code: result.list[i].weather[0].id,
                    text: ucfirst(result.list[i].weather[0].description),
                    date: new Date(result.list[i].dt * 1000)
                });
            }
            console.log(weathers);
            var today = weathers[0];
            var tomorrow = weathers[1];
            var dayAfterTomorrow = weathers[2];
        } else {
            console.log('There was a problem retrieving the latest weather information.');
        }
    }
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

于 2016-03-24T15:42:36.207 回答