Jesteś w » Strona główna » Artykuły i porady » artykuł
PLIKI COOKIES: Serwis używa cookies. Więcej informacji w regulaminie serwisu. OK (wyłącz komunikat)

Artykuły i porady

  • Jak zrobić stronę WWW stacji pogodowej cz.3 - robimy stronę

  • 2012-05-21 15:05 | aktualizacja: 2016-06-17 09:18
  • W trzeciej części dowiesz się, jak zrobić stronę internetową własnej stacji meteorologicznej. Dane pogodowe będziemy wyświetlać na wskaźnikach zegarowych. Wykorzystamy PHP i plik realtime.txt generowany przez program Cumulus.
  • Tak będzie wyglądała nasza strona pogodowa

    Tak będzie wyglądała nasza strona pogodowa


    Wstęp


    Do utworzenia naszej domowej strony pogodowej, wykorzystamy w dużej części kod PHP z poprzednich artykułów - róża wiatrów, wskaźnik zegarowy.

    Strona będzie składała się z dwóch plików PHP. Plik pogodynka.php będzie wyświetlał stronę, natomiast plik pogoda_zegar.php będzie generował wskaźniki zegarowe i różę wiatrów. W skryptach róży wiatrów i wskaźnika zegarowego, duża część kodu PHP była wspólna. Dlatego aby nie dublować kodu, wszystko zostało umieszczone w jednym "uniwersalnym" skrypcie pogoda_zegar.php.

    Opis pliku pogodynka.php


    Na początku podajemy adres do pliku realtime.txt z programu Cumulus np.:

    $url = 'http://wlasna_domena.pl/realtime.txt';


    Następnie plik pobieramy i wartości umieszczamy w tablicy. Robi to poniższa funkcja:

    function odczyt_realtime($url)
    {
    $realtime=@file_get_contents($url);
    if(empty($realtime))
    {
    exit;
    }
    return explode(' ',trim($realtime));
    }


    Opis formatu pliku realtime.txt znajduje się w artykule Jak zrobić banner wyświetlający dane ze stacji pogodowej? – nie będę tego powtarzał.

    Odczytane dane z pliku realtime.txt musimy przekazać do drugiego skryptu pogoda_zegar.php, który wyświetla wskaźniki zegarowe i różę wiatrów. Realizuje to poniższa funkcja wstaw_wskaznik.

    function wstaw_wskaznik($rodzaj,$wartosc,$jednostka='',$nazwa='',$min=0,$max=0)
    {
    if($rodzaj=='kierunek')
    {
    ?>
    <img src="pogoda_zegar.php?w=<?php echo rawurlencode($wartosc); ?>&k=1" alt="Róża wiatrów" />
    <?php
    }
    elseif($rodzaj=='wskaznik')
    {
    ?>
    <img src="pogoda_zegar.php?w=<?php echo rawurlencode($wartosc); ?>&j=<?php echo rawurlencode($jednostka); ?>&n=<?php echo rawurlencode($nazwa); ?>&max=<?php echo $max; ?>&min=<?php echo $min; ?>" alt="<?php echo $nazwa; ?>" />
    <?php
    }
    }


    Opis funkcji wstaw_wskaznik

    wstaw_wskaznik($rodzaj, $wartosc, $jednostka, $nazwa, $min, $max)

    Funkcja ma 6 parametrów:

    $rodzaj – może mieć dwie wartości: 'kierunek' dla róży wiatrów, 'wskaznik' dla wskaźnika zegarowego
    $wartosc – wartości danego parametru pogodowego np. 25 ( dla temperatury 25°C)
    $jednostka – jednostka parametru pogodowego np. °C (dla temperatury)
    $nazwa – nazwa parametru pogodowego, wyświetlana na wskaźniku np. Temperatura
    $min - wartość minimalna na skali wskaźnika zegarowego
    $max – wartość maksymalna na skali wskaźnika zegarowego


    Przykład odwołania dla wykresu zegarowego ciśnienia wygląda tak:

    wstaw_wskaznik('wskaznik',$pogoda['10'],$pogoda['15'],'Ciśnienie',970,1030);


    $pogoda['10'] – wartość ciśnienie atmosferycznego z pliku realtime.txt
    $pogoda['15'] - jednostka ciśnienia - mb, hPa, In z pliku realtime.txt
    'Ciśnienie' – opis na zegarze
    970 – od tej wartości zaczyna się skala na zegarze
    1030 – na tej wartości kończy się skala na zegarze

    W miejscu, w którym odwołamy się do tej funkcji pojawi się nasz wskaźnik zegarowy.

    Aby wyświetlić różę wiatrów wystarczy podać tylko poniższe parametry.

    wstaw_wskaznik('kierunek',$pogoda['7']);


    $pogoda['7'] - kierunek wiatru w stopniach z pliku realtime.txt

    Wyświetlanie prognozy pogody

    Wyświetlanie prognozy pogody realizuje poniższa funkcja.

    function prognoza_pogody($numer)
    {
    $forecast['0']='Prognoza Niedostępna';
    $forecast['1']='Stabilna dobra pogoda';
    $forecast['2']='Dobra pogoda';
    $forecast['3']='Poprawa pogody';
    $forecast['4']='Dobra pogoda, coraz mniej stabilna';
    $forecast['5']='Dobra pogoda, możliwe opady przelotne';
    $forecast['6']='Dość dobra pogoda, poprawa';
    $forecast['7']='Dość dobra pogoda, początkowo możliwe opady';
    $forecast['8']='Dość dobra pogoda, później opady';
    $forecast['9']='Początkowo opady, poprawa pogody';
    $forecast['10']='Zmienna, poprawa pogody';
    $forecast['11']='Dość dobra pogoda, opady o charakterze przelotnym';
    $forecast['12']='Raczej niestabilna, później poprawa pogody';
    $forecast['13']='Pogoda niestabilna, prawdopodobna poprawa pogody';
    $forecast['14']='Deszczowo, okresowe przejaśnienia';
    $forecast['15']='Deszczowo, coraz mniej stabilna pogoda';
    $forecast['16']='Zmienna pogoda, niewielkie opady';
    $forecast['17']='Niestabilna pogoda, okresowo krótkotrwała poprawa pogody';
    $forecast['18']='Niestabilna pogoda, następnie opady';
    $forecast['19']='Niestabilna pogoda, niewielkie opady';
    $forecast['20']='Przeważnie bardzo niestabilna pogoda';
    $forecast['21']='Przelotne opady, pogorszenie pogody';
    $forecast['22']='Okresowo opady, bardzo niestabilna pogoda';
    $forecast['23']='Opady w krótkich odstępach czasu';
    $forecast['24']='Opady, bardzo niestabilna pogoda';
    $forecast['25']='Burzowo, możliwa poprawa pogody';
    $forecast['26']='Burzowo, duże opady';

    return $forecast[$numer];
    }


    Odwołujemy się do niej tak.

    prognoza_pogody($pogoda['48']);


    $pogoda['48'] - numer bieżącej prognozy zgodnie z plikiem Strings.ini z pliku realtime.txt

    Dwie proste funkcje wyświetlają porę dnia i tendencje zmian (temperatura/ciśnienie).

    function pora_dnia($numer)
    {
    if($numer==1)
    {
    return 'Dzień';
    }
    elseif($numer==0)
    {
    return 'Noc';
    }
    }

    function tendencja($wartosc)
    {
    if($wartosc>0)
    {
    return '↑';
    }
    elseif($wartosc<0)
    {
    return '↓';
    }
    else
    {
    return '→';
    }
    }


    Wyświetlenie pory dnia na stronie wygląda tak.

    pora_dnia($pogoda['49']);


    $pogoda['49'] - flaga wskazująca (0,1), że lokalizacja stacji pogodowej jest obecnie w świetle dziennym (z pliku realtime.txt)

    Wyświetlanie tendencji zmian na stronie wygląda podobnie, przykład dla ciśnienia.

    tendencja($pogoda['18']);


    $pogoda['18'] - wartość tendencji ciśnienia z pliku realtime.txt


    Opis pliku pogoda_zegar.php


    Skrypt zawiera kod PHP, będący połączeniem kodu róży wiatrów i wskaźnika zegarowego. Opisany został dokładnie w poprzednich częściach. Tak więc, opiszę tu tylko zmiany. Funkcja pozycja_tekstu jest identyczna jak w skrypcie wskaźnika zegarowego.

    Na początku ustawiamy graficzne szablony, dla róży wiatrów i wskaźnika zegarowego. Grafikę możemy przygotować sami np. w Adobe PhotoShop. Możemy też skorzystać z załączonych poniżej lub z poprzednich części artykułu. Szablony muszą być przeźroczystymi plikami PNG (PNG-24).

    $szablon['roza_tlo'] = 'kompas_tlo.png';
    $szablon['roza_wskaznik'] = 'kompas_wskaznik.png';

    $szablon['zegar_tlo'] = 'zegar_tlo.png';
    $szablon['zegar_wskaznik'] = 'zegar_wskaznik.png';


    W poniższej linii sprawdzamy, czy w odwołaniu do skryptu zostały podane wszystkie wymagane dane.

    if(!(isset($_GET['w'],$_GET['j'],$_GET['n'],$_GET['min'],$_GET['max']) or (isset($_GET['k'],$_GET['w']) and $_GET['k']==1)))
    {
    exit;
    }


    W kodzie dla wskaźnika doszło sprawdzenie, czy wartość max jest większa od min. Jeżeli jest odwrotnie przerywamy skrypt - bo mamy błędne dane wejściowe.

    if($min>$max)
    {
    exit;
    }


    Kod PHP przeznaczony tylko dla róży wiatrów, identyfikujemy w poniższy sposób. A kod tylko dla wskaźnika poprzez negacje tego kodu.

    if(isset($_GET['k']) and $_GET['k']==1)
    {
    KOD PHP TYLKO DLA RÓŻY WIATRÓW
    }


    Autor: Parasol (Stacje-Pogody.pl)
  • Szablon tła róży wiatrów wersja 1
    Szablon tła róży wiatrów wersja 3
    Szablon tła wskaźnika zegarowego
    Szablon wskazówki wskaźnika zegarowego
    Szablon wskaźnika kierunku róży wiatrów
    Tak będzie wyglądała nasza strona pogodowa
  • Dodaj komentarz
    • Ocena treści:
    • Imię (nick):
    • Komentarz:

      Komentarz może mieć do 1999 znaków. Liczba wprowadzonych znaków: 0
    • Wpisz kod z obrazka:    Aby dodać komentarz wpisz kod z obrazka
 
Korzystanie z serwisu oznacza akceptację regulaminu. O nas. Copyright © 2024 Stacje-Pogody.pl. Powered by WMrecenzje