<?php
 
 
class weather {
 
 
    /**
 
     * Api key from wunderground.com
 
     * 
 
     * @var string
 
     */
 
    private $apiKey = '';
 
    private $get = 'conditions';
 
 
    /**
 
     * Your lang
 
     *
 
     * @var string
 
     */
 
    private $lang = 'PL';
 
 
    /**
 
     * Initialize country or state
 
     *
 
     * @var string
 
     */
 
    private $location = 'Poland';
 
 
    /**
 
     * Initialize city
 
     *
 
     * @var string
 
     */
 
    private $city = 'Belchatow';
 
    private $json;
 
 
    public function __construct() {
 
        $this->getAllWeather();
 
    }
 
 
    /**
 
     * Get weather from api ,decode and save in $json
 
     */
 
    private function getAllWeather() {
 
        $apiUrl = 'http://api.wunderground.com/api/' . $this->apiKey . '/' . $this->get . '/lang:' . $this->lang . '/q/' . $this->location . '/' . $this->city . '.json';
 
        $this->json = json_decode(file_get_contents($apiUrl));
 
    }
 
 
    /**
 
     * Get weather icon with html tag if $imgTag is true
 
     * 
 
     * @param bool $imgTag add tag if true
 
     * @return string
 
     */
 
    public function getWeatherIcon($imgTag = false) {
 
        $img = $this->json->current_observation->icon_url;
 
        if ($imgTag) {
 
            $img = "<img src='" . $img . "'/>";
 
        }
 
        return $img;
 
    }
 
 
    /**
 
     * Get temperature celcius if $c is true
 
     * 
 
     * @param bool $c
 
     * @return string
 
     */
 
    public function getTemperature($c = true) {
 
        if ($c) {
 
            $out = $this->json->current_observation->temp_c;
 
        } else {
 
            $out = $this->json->current_observation->temp_f;
 
        }
 
 
        return $out;
 
    }
 
 
    /**
 
     * Get satelite .gif
 
     * 
 
     * @param bool $imgTag
 
     * @return string
 
     */
 
    public function getSateliteImage() {
 
        $img = file_get_contents('http://api.wunderground.com/api/' . $this->apiKey . '/animatedsatellite/q/' . $this->location . '/' . $this->city . '.gif?key=sat_ir4&basemap=1&timelabel=1&timelabel.y=10&num=5&delay=50&radius=200');
 
        $img = '<img src="data:image/gif;base64,' . base64_encode($img) . '"/>';
 
 
        return $img;
 
    }
 
 
    /**
 
     * Set Language, http://www.wunderground.com/weather/api/d/docs?d=language-support
 
     * 
 
     * @param string $lang
 
     */
 
    public function setLang($lang) {
 
        $this->lang = $lang;
 
    }
 
 
    /**
 
     * 
 
     * @param string $location
 
     * @param string $city
 
     */
 
    public function setLocation($location, $city) {
 
        $this->location = $location;
 
        $this->city = $city;
 
    }
 
 
    /**
 
     * Get city name and country/state
 
     * 
 
     * @return string
 
     */
 
    public function getLocation() {
 
        return $this->city . ', ' . $this->location;
 
    }
 
 
    /**
 
     * 
 
     * @param string $apiKey
 
     */
 
    public function setApiKey($apiKey) {
 
        $this->apiKey = $apiKey;
 
    }
 
 
}
 
?>
 
 
 |