Advertisement
Guest User

forecast.js

a guest
Jan 18th, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.30 KB | None | 0 0
  1. //forecast
  2. var forecastDays = 3;
  3.  
  4. function loadJson(callback) {
  5. var forecast = new XMLHttpRequest();
  6. forecast.overrideMimeType("application/json");
  7. forecast.open('GET', 'http://api.wunderground.com/api/<your api-key>/forecast/lang:<language code>/q/<country>/<city>.json',
  8. forecast.onreadystatechange = function () {
  9. if (forecast.readyState == 4 && forecast.status == "200") {
  10. callback(forecast.responseText);
  11. }
  12. };
  13. forecast.send(null);
  14. }
  15.  
  16. loadJson(function(response) {
  17.  
  18. // Build HTML
  19.  
  20. var placeholderContent = "";
  21.  
  22. for(var i = 1; i <= forecastDays; i++) {
  23. var day = i + 1;
  24. placeholderContent = placeholderContent +
  25. '<div class="space"></div>' +
  26. '<table>' +
  27. '<tbody>' +
  28. '<tr>' +
  29. '<td class="icon"><i id="icon_f_' + i + '" class=""></i></td>' +
  30. '<td colspan="3" class="forecast">Vorschau f&uuml;r Tag ' + day + ':<br><span id="forecast_str_' + i + '"></span></td>' +
  31.  
  32. '<td class="icon"><i class="wi wi-thermometer"></i><i class="wi wi-direction-up"></i></td>' +
  33. '<td class="temp_high"><span id="temp_high_' + i + '"></span><small>&deg;C</small></div></td>' +
  34. '<td class="icon"><i class="wi wi-thermometer-exterior"></i><i class="wi wi-direction-down"></i></td>' +
  35. '<td class="temp_low"><span id="temp_low_' + i + '"></span><small>&deg;C</small></td>' +
  36. '</tr>' +
  37. '</tbody>' +
  38. '</table>' +
  39. '<div class="space"></div>';
  40. }
  41.  
  42. document.getElementById("placeholder").innerHTML = placeholderContent;
  43.  
  44.  
  45. // Parse JSON string into object
  46. var r = JSON.parse(response);
  47.  
  48. for (var i = 1; i <= forecastDays; i++) {
  49. var forecast_str = r.forecast.txt_forecast.forecastday[i+1].fcttext_metric; //change to .fcttext for fahrenheit
  50. var temp_high = r.forecast.simpleforecast.forecastday[i].high.celsius; //change to .fahrenheit for fahrenheit
  51. var temp_low = r.forecast.simpleforecast.forecastday[i].low.celsius; //change to .fahrenheit for fahrenheit
  52. var icon_f;
  53. var icons_f = r.forecast.txt_forecast.forecastday[i+1].icon;
  54. switch (icons_f) {
  55. case "clear":
  56. icon_f = "wi wi-day-sunny";
  57. break;
  58. case "cloudy":
  59. icon_f = "wi wi-day-cloudy";
  60. break;
  61. case "flurries":
  62. icon_f = "wi wi-day-sleet";
  63. break;
  64. case "fog":
  65. icon_f = "wi wi-day-fog";
  66. break;
  67. case "hazy":
  68. icon_f = "wi wi-day-haze";
  69. break;
  70. case "mostlycloudy":
  71. icon_f = "wi wi-day-cloudy";
  72. break;
  73. case "mostlysunny":
  74. icon_f = "wi wi-day-sunny-overcast";
  75. break;
  76. case "sleet":
  77. icon_f = "wi wi-day-sleet";
  78. break;
  79. case "rain":
  80. icon_f = "wi wi-day-showers";
  81. break;
  82. case "snow":
  83. icon_f = "wi wi-day-snow";
  84. break;
  85. case "sunny":
  86. icon_f = "wi wi-day-sunny";
  87. break;
  88. case "tstorms":
  89. icon_f = "wi wi-day-thunderstorm";
  90. break;
  91. case "unknown":
  92. icon_f = "wi wi-day-thunderstorm";
  93. break;
  94. case "partlycloudy":
  95. icon_f = "wi wi-day-cloudy";
  96. break;
  97. case "nt_clear":
  98. icon_f = "wi wi-stars";
  99. break;
  100. case "nt_cloudy":
  101. icon_f = "wi wi-night-alt-cloudy";
  102. break;
  103. case "nt_flurries":
  104. icon_f = "wi wi-night-alt-sleet";
  105. break;
  106. case "nt_fog":
  107. icon_f = "wi wi-night-fog";
  108. break;
  109. case "nt_hazy":
  110. icon_f = "wi wi-night-haze";
  111. break;
  112. case "nt_mostlycloudy":
  113. icon_f = "wi wi-night-cloudy";
  114. break;
  115. case "nt_mostlysunny":
  116. icon_f = "wi wi-night-sunny-overcast";
  117. break;
  118. case "nt_sleet":
  119. icon_f = "wi wi-night-sleet";
  120. break;
  121. case "nt_rain":
  122. icon_f = "wi wi-night-showers";
  123. break;
  124. case "nt_snow":
  125. icon_f = "wi wi-night-snow";
  126. break;
  127. case "nt_sunny":
  128. icon_f = "wi wi-night-sunny";
  129. break;
  130. case "nt_tstorms":
  131. icon_f = "wi wi-night-thunderstorm";
  132. break;
  133. case "nt_unknown":
  134. icon_f = "wi wi-night-thunderstorm";
  135. break;
  136. case "nt_partlycloudy":
  137. icon_f = "wi wi-night-cloudy";
  138. break;
  139. }
  140.  
  141. document.getElementById("icon_f_" + i).className = icon_f;
  142. document.getElementById("forecast_str_" + i).innerHTML = forecast_str;
  143. document.getElementById("temp_high_" + i).innerHTML = temp_high;
  144. document.getElementById("temp_low_" + i).innerHTML = temp_low;
  145. }
  146. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement