You are here

function _yr_verdata_get_wind in Yr Weatherdata 6

Helper function for creating wind data and image.

2 calls to _yr_verdata_get_wind()
theme_yr_verdata_location_block in ./yr_verdata.module
theme_yr_verdata_location_page in ./yr_verdata.module
Theming of a page with detailed forecast for a location.

File

./yr_verdata.module, line 832
yr_verdata.module This file provides the yr_verdata forecast module.

Code

function _yr_verdata_get_wind($tab) {
  $wind = array();

  // Round degrees to nearest 5 and make sure it's a 3-digit number.
  $m = $tab->windDirection['deg'] % 5;
  $wind['dir']['deg'] = $tab->windDirection['deg'] - $m;
  if (drupal_strlen($wind['dir']['deg']) == 2) {
    $wind['dir']['deg'] = '0' . $wind['dir']['deg'];
  }
  elseif (drupal_strlen($wind['dir']['deg']) == 1) {
    $wind['dir']['deg'] = '00' . $wind['dir']['deg'];
  }

  // 360 degrees won't work, so set to 0 in that case.
  if ($wind['dir']['deg'] == 360) {
    $wind['dir']['deg'] = '000';
  }
  $wind['dir']['name'] = $tab->windDirection['name'];
  $wind['dir']['code'] = $tab->windDirection['code'];
  $wind['speed']['name'] = $tab->windSpeed['name'];

  // Speed is given in nearest 2.5, but in the url for the image, the number is multiplied by 10.
  $wind['speed']['mps'] = $tab->windSpeed['mps'] * 10;
  $wind['speed']['mps'] = round($wind['speed']['mps'] / 25) * 25;

  // Add leading zeroes if needed.
  if ($wind['speed']['mps'] > 99) {
    $wind['speed']['mps'] = '0' . $wind['speed']['mps'];
  }
  elseif ($wind['speed']['mps'] > 9) {
    $wind['speed']['mps'] = '00' . $wind['speed']['mps'];
  }
  else {
    $wind['speed']['mps'] = '000' . $wind['speed']['mps'];
  }

  // And set up the image url.
  $windurl = check_url('http://fil.nrk.no/yr/grafikk/vindpiler/32/vindpil.' . $wind['speed']['mps'] . '.' . $wind['dir']['deg'] . '.png');
  $wind['img'] = '<img src="' . $windurl . '" alt="' . check_plain($wind['speed']['name']) . ' ' . check_plain($wind['dir']['code']) . '" />';
  return $wind;
}