Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
FAKULTETA ZA INFORMACIJSKE ŠTUDIJE V NOVEM MESTU
M A G I S T R S K A N A L O G A
ŠTUDIJSKEGA PROGRAMA DRUGE STOPNJE
FRANCI SMOLIČ
FAKULTETA ZA INFORMACIJSKE ŠTUDIJE
V NOVEM MESTU
MAGISTRSKA NALOGA
UPORABA GIS ZA PRIKAZ METEOROLOŠKIH PODATKOV V PROMETNEM INFORMACIJSKEM
SISTEMU
Mentor: doc. dr. BLAŽ RODIČ
Novo mesto, maj 2010 FRANCI SMOLIČ
IZJAVA O AVTORSTVU
Podpisani Franci Smolič, študent FIŠ Novo mesto, v skladu z določili statuta FIŠ izjavljam:
• da sem magistrsko nalogo pripravljal samostojno na podlagi virov, ki so navedeni v
magistrski nalogi,
• da dovoljujem objavo magistrske naloge v polnem tekstu, v prostem dostopu, na
spletni strani FIŠ oz. v digitalni knjižnici FIŠ (obkroži svojo odločitev):
o takoj
o po preteku 12 mesecev po uspešnem zagovoru,
o ne dovoljujem objave na spletni strani oz. v elektronski knjižnici FIŠ zaradi
prepovedi organizacije, v sklopu katere je bil pripravljen empirični del naloge.
• da je magistrska naloga, ki sem jo oddal v elektronski obliki identična tiskani verziji,
• da je magistrska naloga lektorirana.
V Novem mestu, 14.5.2010 Podpis:
ZAHVALA Zahvaljujem se mentorju doc. dr. Blažu Rodiču za nasvete in pomoč pri izdelavi te
magistrske naloge.
Podjetju CGS Plus, d. o. o. iz Ljubljane se zahvaljujem za strokovno pomoč pri izdelavi
programske opreme in za gostovanje na njihovem strežniku.
Andreji Tasič in Gregorju Becu se zahvaljujem za lektoriranje oziroma oblikovanje besedila.
POVZETEK Ob slovenskih avtocestah je postavljeno veliko število cestno vremenskih postaj. Glavni del
cestno vremenskih postaj je t. i. cestni senzor, ki meri lastnosti vozišča. Ti podatki se
prenašajo v nadzorni center DARS-a, kjer so dostopni upravljavcem in vzdrževalcem
avtocest. Mislim, da je dostop do določenih podatkov iz teh postaj, seveda v primerni obliki,
treba omogočiti vsem voznikom. Cilj magistrske naloge je bil izdelava aplikacije, ki bi
voznikom in drugim uporabnikom podatke predstavila na javnem spletnem portalu oziroma
preko brezplačne in splošno uporabne programske opreme. Prikaz podatkov z razvito
aplikacijo je uporabniku prijazen, pregleden in enostaven. Raziskal sem tudi možnosti
nadgradnje oziroma pregledovanja podatkov preko mobilnih telefonov in drugih mobilnih
naprav.
KLJUČNE BESEDE: cestno vremenske postaje, baze podatkov, informacijski sistemi, GIS,
prikaz podatkov, Google Earth, Google Maps.
ABSTRACT
At the Slovenian motorways is set a large number of road weather stations. The main part of
the road weather station, is so-called road sensor, which measures the characteristics of the
carriageway. These measured data are transmitted to the DARS control center, where they
are accessible to operators and maintainers of motorways. I think that access to certain data
from these stations, of course in an appropriate form, should be allowed to all drivers. The
aim of this master’s thesis was to develop an application which could present this information
to drivers and other users on a public web site or through free and universally applicable
software. The display of data with the developed application is user-friendly, transparent and
simple. I have also explored the possibility of upgrading this application for viewing data on
mobile phones and other mobile devices.
KEY WORDS: road weather stations, databases, information systems, GIS, data
presentation, Google Earth, Google Maps.
KAZALO
1 UVOD ........................................................................................................................... 1
2 PREDSTAVITEV CVP IN CVIS .................................................................................... 2
3 TEORETIČNI DEL ........................................................................................................ 7
3.1 Informacijski sistemi ................................................................................................ 9
3.1.1 GIS ................................................................................................................ 13
3.1.2 Baze podatkov ............................................................................................... 20
3.2 Pregled najbolj poznanih spletnih zemljevidov in aplikacij na osnovi GIS .............. 31
3.2.1 Pregled slovenskih spletnih zemljevidov in aplikacij na osnovi GIS ................ 38
3.3 Jezik KML .............................................................................................................. 51
3.4 NET Framework (.NET ogrodje) ............................................................................ 52
3.5 Programski jezik C# (C Sharp) .............................................................................. 55
3.6 MySQL .................................................................................................................. 59
4 RAZVOJ PROTOTIPNE APLIKACIJE ........................................................................ 61
4.1 Zgradba sistema CVIS .......................................................................................... 61
4.2 Opis uporabljene aplikacije GIS Google Earth ....................................................... 65
4.3 Uporaba programskega jezika C# (C Sharp) ......................................................... 69
4.4 Uporaba jezika KML .............................................................................................. 69
4.5 Struktura MySQL podatkovne baze Collector ........................................................ 72
4.6 Metodologija razvoja prototipne aplikacije ............................................................. 76
4.6.1 Extreme Prototyping....................................................................................... 76
4.7 Izdelava prototipa .................................................................................................. 78
4.8 Opis izdelka ........................................................................................................... 79
5 ZAKLJUČEK ............................................................................................................... 81
6 LITERATURA ............................................................................................................. 83
7 VIRI ............................................................................................................................ 84
PRILOGE
KAZALO SLIK
Slika 2.1: Uporabniški vmesnik CVIS DDC. ........................................................................... 3
Slika 2.2: CVIS kot element ITS ............................................................................................. 7
Slika 3.1: Shema delovanja sistema ...................................................................................... 8
Slika 3.2: Aktivnosti informacijskega sistema ......................................................................... 9
Slika 3.3: Hierarhija uporabe IS ........................................................................................... 11
Slika 3.4: Struktura ekspertnega sistema ............................................................................. 11
Slika 3.5: Klasični/ekspertni sistem ...................................................................................... 12
Slika 3.6: Distribuirani informacijski sistem ........................................................................... 13
Slika 3.7: Stenska slika iz jame Lascaux .............................................................................. 14
Slika 3.8: Elementi sistema GIS ........................................................................................... 16
Slika 3.9: Vektorska predstavitev GIS .................................................................................. 18
Slika 3.10: Vektorski in rastrski prikaz v GIS ........................................................................ 19
Slika 3.11: Pridobivanje podatkov z GPS ............................................................................. 19
Slika 3.12: Podatkovna baza skozi sheme ........................................................................... 21
Slika 3.13: Hierarhični podatkovni model ............................................................................. 26
Slika 3.14: Mrežni podatkovni model .................................................................................... 27
Slika 3.15: Model E-R .......................................................................................................... 29
Slika 3.16: Relacijska tabela ................................................................................................ 29
Slika 3.17: Primarni ključ ...................................................................................................... 30
Slika 3.18: Google Maps ...................................................................................................... 33
Slika 3.19: Microsoft Bing Maps ........................................................................................... 34
Slika 3.20: Yahoo! Maps ...................................................................................................... 34
Slika 3.21: ESRI ................................................................................................................... 34
Slika 3.22: GRASS GIS ....................................................................................................... 35
Slika 3.23: Nissanov sistem obveščanja voznikov ................................................................ 36
Slika 3.24: ARSO – Atlas okolja ........................................................................................... 39
Slika 3.25: Geopedia............................................................................................................ 40
Slika 3.26: GERK ................................................................................................................. 41
Slika 3.27: ZRC SAZU ......................................................................................................... 42
Slika 3.28: Najdi.si ............................................................................................................... 43
Slika 3.29: Zemljevid Telekoma Slovenija ............................................................................ 44
Slika 3.30: GeoStik .............................................................................................................. 45
Slika 3.31: Portal GURS ...................................................................................................... 47
Slika 3.32: CVIS DRSC ........................................................................................................ 50
Slika 3.33: Trenutni podatki za posamezno CVP ................................................................. 51
Slika 3.34: Shema CLI ......................................................................................................... 56
Slika 4.1: CVIS DARS .......................................................................................................... 61
Slika 4.2: Programski paket SmartView3 ............................................................................. 62
Slika 4.3: Nastavitev časa osveževanja ............................................................................... 70
Slika 4.4: Prikaz podatkov z Google Earth ........................................................................... 71
Slika 4.5: Prikaz podatkov na spletni stani Google Maps ..................................................... 71
Slika 4.6: MySQL podatkovna baza COLLECTOR ............................................................... 72
Slika 4.7: Tabela »stations« ................................................................................................. 74
Slika 4.8: Tabela »sensor_values« ...................................................................................... 75
Slika 4.9: Tabela »sensors« ................................................................................................. 75
Slika 4.10: Tabela »units« .................................................................................................... 76
Slika 4.11: Arhitektura informacijskega sistema ................................................................... 79
Slika 4.12: Izgled prototipne spletne strani ........................................................................... 80
Slika 4.13: Prikaz vremenskih podatkov za CVP Šentjakob ................................................. 80
1
1 UVOD
Osnovni cilj moje magistrske naloge je bil razvoj rešitve za prikaz vremenskih podatkov, ki jih
posredujejo vremenske postaje ob slovenskih avtocestah, na javno dostopni spletni strani.
Družba za avtoceste v Republiki Sloveniji, d. d. (DARS), uporablja te podatke za potrebe
vzdrževanja avtocest. Politika DARS-a je, da so ti podatki namenjeni izključno interni
uporabi. To dejstvo je predstavljalo veliko omejitev, ki se nanaša predvsem na končno
uporabnost rešitve. Nesmiselno je namreč voznikom prikazovati zgodovinske vremenske
podatke. Za voznike so uporabni samo trenutno veljavni vremenski podatki in napovedi
voznih razmer. Kar se tiče izdelave rešitve, pa ta omejitev ni predstavljala posebnega
problema. Rešitev je bilo treba prilagoditi tako, da omogoča 'ročno' vnašanje naključnih
podatkov za potrebe testiranja in komercialne predstavitve izdelka na trgu. Podatkovna baza
z zgodovinskimi podatki je služila kot osnova za izdelavo ustrezne rešitve.
DARS uporablja cestno vremenske postaje (CVP) treh največjih proizvajalcev: Lufft,
Boschung in Vaisala.
Trenutna različica rešitve omogoča prikaz podatkov vremenskih postaj proizvajalca Lufft,
vendar pa je pripravljena tako, da lahko z manjšimi dopolnitvami prikaže podatke, ki jih
posredujejo vremenske postaje drugih dveh proizvajalcev, ki tudi opremljata DARS.
V sodelovanju s podjetjem CGS plus, d. o. o., smo pripravili rešitev, ki lahko ob manjših
spremembah nastavitev omogoči prikaz vremenskih podatkov s pomočjo javno dostopne
aplikacije Google Earth in neposredno preko spletne strani. Zgodovinske podatke, ki se
hranijo na strežniku za vremenske postaje v prostorih DARS-a v avtocestni bazi na Brdu pri
Ljubljani, smo prekopirali na strežnik MySQL podjetja CGS plus, d. o. o. Ker je DARS
prepovedal tudi uporabo zgodovinskih podatkov, smo izdelali programsko opremo, ki
generira naključne vremenske podatke. Ti podatki se prenašajo v podatkovno bazo MySQL,
ki je popolnoma enako strukturirana kot podatkovna baza v avtocestni bazi DARS. Za prikaz
podatkov v aplikaciji Google Earth je bilo treba izdelati servis »Keyhole Markup Language«
(KML), ki podatke iz baze prikaže na zemljevidu. Odločili smo se za prikaz šestih vremenskih
podatkov, ki utegnejo voznike najbolj zanimati. Seveda cestno vremenske postaje merijo še
veliko drugih vrednosti, ki pa so pomembne predvsem za vzdrževalce avtocest. Za branje
podatkov iz podatkovne baze MySQL in vnašanje le-teh v servis KML, smo v programskem
jeziku C# izdelali ustrezno aplikacijo. Ker pa vsi uporabniki interneta nimajo nameščene
programske opreme Google Earth, je bilo treba za splošni prikaz teh vremenskih podatkov
2
le-te predstaviti na samostojni spletni strani. Na njej lahko sedaj uporabniki z različnimi
brskalniki dostopajo do trenutnih podatkov o vremenskih razmerah na treh merilnih postajah.
Naslov prototipne spletne strani je: http://sites.google.com/site/vremesmolic/.
Za končni cilj smo si zadali komercializacijo naše rešitve. Podjetje CGS plus, d. o. o., bo
končni izdelek predstavilo odgovornim na DARS-u in jih na ta način poskusilo prepričati o
primernosti uporabe cestno vremenskih podatkov na javno dostopni spletni strani. Prav tako
bo izdelek prikazan na CGS konferenci, ki bo 12. 5. 2010 na Gospodarskem razstavišču v
Ljubljani. Rešitev bo prikazana v sklopu »Predstavitve raziskovalno-razvojnih projektov«.
Glede na izkušnje, ki jih imajo zaposleni v CGS plus, d. o. o., menim, da bo možno prikazati
tudi vremenske podatke z merilnih postaj drugih dveh proizvajalcev tovrstne opreme. Na ta
način bi dosegli zelo veliko pokritost prikaza vremenskih podatkov z naših avtocest. Ker je
datoteke KML možno uporabljati tudi v aplikacijah za mobilne naprave (na primer Google
Maps for Mobile), je to še posebej uporabno za sprotno obveščanje voznikov med vožnjo.
2 PREDSTAVITEV CVP IN CVIS
Zaradi sodobnega načina življenja mnogo voznikov vsak dan preživi na cesti tudi po več ur.
Čeprav je v Sloveniji je vsako leto zgrajenih nekaj novih kilometrov avtocest in je statistično
gledano vožnja po njih dokaj varna, moramo vedeti, da to velja ob upoštevanju prometnih
predpisov in lepem vremenu. Povsem drugačne pa so razmere ob različnih nenadnih
vremenskih pojavih. Predvsem gosta megla, veter, poledica in sneg so tisti pojavi, ki bistveno
poslabšajo vozne razmere. Sodobne avtoceste so danes opremljene z različno tehnologijo,
ki je namenjena pravočasnemu opozarjanju voznikov na nevarnosti na cesti. Na kritičnih
delih avtocest so postavljene naprave, ki merijo vremenske pojave ob cesti in stanje
cestišča. Seveda pride njihova učinkovitost do izraza šele takrat, ko so vremenske postaje
povezane v celovit informacijski sistem, ki nudi dovolj informacij o stanju na cestah in
vremenskih pojavih na širšem območju. Šele takrat lahko vzdrževalci pravočasno vklopijo
prikaz opozoril na informacijskih tablah (t. i. portalih) na cestah ali pošljejo na ceste posipalce
soli in plužna vozila.
Na slovenskih avtocestah je trenutno postavljenih več kot 60 (stanje marca 2010) cestno
vremenskih postaj (CVP). Uporabljajo se izdelki treh največjih proizvajalcev tovrstne opreme
(Boschung, Lufft in Vaisala).
3
Cestna meteorologija je kot stroka v Sloveniji razvita šele nekaj let. Cestno vremenske
postaje v glavnem postavljata DDC in DARS. V podjetju CGS plus, d. o. o. so za DRSC
razvili prvi slovenski cestno vremenski informacijski sistem (CVIS), ki je prikazan na sliki 2.1.
Izvedli so sistemsko integracijo CVP na državnih cestah, jih povezali v podatkovno bazo in
omogočili nadzor ter dostop do podatkov prek spletne aplikacije (oktobra 2009 je bilo
vključenih 18 CVP). V letih 2004 in 2005 so za druge naročnike v Sloveniji tudi dobavili in
namestili nekaj CVP-jev (Šajn in Čarman, 2006: 13).
Slika 2.1: Uporabniški vmesnik CVIS DDC.
Vir: CGS plus, d. o. o., 2009.
Cestno vremenska postaja je običajno na primernem mestu ob avtocesti in z različnimi
merilniki meri podatke, ki so pomembni za prometno varnost in vzdrževalce v zimski službi.
Merjenje temperature na površini ceste je samo osnovni podatek, ki le v kombinaciji s
podatki o temperaturi rosišča in trenutnem stanju cestišča (suho, vlažno, mokro, sneg/led,
sol, zmrzovanje) lahko poda osnovno informacijo o varni prevoznosti oz. nevarnosti poledice.
Za nastanek poledice so še posebej nevarne nenadne otoplitve z dežjem, ki sledijo daljšemu
hladnemu obdobju, znotraj katerega so se ceste v globini ohladile pod zmrzišče. Takrat lahko
ceste ob nepravočasnem ukrepanju postanejo smrtno nevarne drsalnice.
Najpomembnejši merilnik CVP je t. i. cestni senzor (»road sensor«), ki meri temperaturo
cestišča, debelino vodnega filma in koncentracijo soli ter poda temperaturo zmrzišča. Cestni
senzor je običajno vgrajen v cestišče, kar otežuje vzdrževanje. Finsko podjetje Vaisala z
brezkontaktnim setom dveh merilnikov – merilnika stanja cestišča DSC111 in merilnika
temperature površine cestišča DST111 – odpravlja poseg v cestišče. Zaradi namestitve na
4
drog ali npr. na viadukt ni treba rezati ceste in vanjo nameščati merilnika. Merilnik za
določitev stanja cestišča uporablja spektroskopijo, ki po trditvah proizvajalca omogoča točno
merjenje količine vode, snega ali ledu na cestišču. Meri tudi zdrsnost cestišča in določa
stanje cestišča (suho, vlažno, mokro ...). Ob ustrezni namestitvi programske opreme dodatno
omogoča določitev vidljivosti v razdalji do 2000 metrov (s pogreškom do 20 %). Merilni
princip za merjenje temperature površine cestišča ni nov. Gre za implementacijo
brezkontaktnega infrardečega merjenja za potrebe cestno vremenskih sistemov (Čarman,
2009: 25).
CVP so opremljene tudi z meteorološkimi merilniki za merjenje temperature in relativne vlage
zraka, padavin, vidljivosti, hitrosti in smeri vetra. Kot dodatne merilnike lahko na CVP
priključimo tudi merilnike višine snega, sončnega sevanja in digitalne kamere.
Poleg trenutnih podatkov o razmerah na cesti so pri vzdrževanju cest bistvenega pomena
napovedi voznih razmer. V ta namen so CVIS nadgrajeni s kratkoročno vremensko
napovedjo in napovedjo stanja cestišča, prostorskimi prikazi in rezultati podpornih sistemov
za odločanje (MDSS – Maintenance Decision Support System).
Samo vremenska napoved ni dovolj za sprejemanje učinkovitih ukrepov pri zimskem
vzdrževanju cest. Ključnega pomena je natančno predvideti, kdaj se bo temperatura cestišča
tako znižala, da bo pričelo zmrzovati. Razlika med temperaturo zraka in temperaturo cestišča
se glede na okoliščine lahko giblje tudi med 10 in 20 stopinj Celzija. Da bi lahko napovedali
temperaturo cestišča na specifični lokaciji, moramo aktualne podatke, pridobljene iz CVIS,
združiti z aktualnimi vremenskimi napovedmi in jih vgraditi v specifičen cestni model
energijskih bilanc. Pri tem je treba upoštevati podatke o cestnem telesu in bližnjem terenu ter
poznati vremenske vzorce na lokaciji. Končni rezultat je visoko zanesljiva in natančna
napoved temperature, stanja cestišča in časovnega nastanka padavin. Natančna napoved
stanja cestišča lahko pomembno prispeva k racionalnejši organizaciji človeških virov in
mehanizacije (razpored delovnih ekip, plugov in posipalnih strojev, pripravljenost ekip za
zavarovanje poškodovanih vozil na cesti …) ter zmanjšani porabi posipnih materialov, kar je
pomembno s finančnega in okoljskega vidika.
Zimsko soljenje cest za obcestne rastline predstavlja stres. V pogojih povišane slanosti
govorimo o ionsko povzročeni suši za rastline. Slanost vpliva na osnovne procese v rastlinah
(fotosinteza, črpanje hranilnih snovi in vode, delovanje hormonov …). Rast je slabša, pojavi
se tudi problem kalitve. Na rastlinah, ki rastejo v pogojih povečane slanosti in temu niso
posebej prilagojene, lahko opazimo t. i. kloroze (listne bledice, ki nastanejo zaradi
5
pomanjkanja železa) in nekroze (odmrtje tkiva) listov. O podobnih učinkih soljenja so žal
poročali tudi iz nekaterih slovenskih krajev. Ob soljenju cest pa ne smemo pozabiti še na
druge škodljive vplive, ki jih ima sol na okolje: korozija vozil in cestne infrastrukture, vpliv na
površinske vode in podtalnico. Zmerna uporaba soli za posipanje cest je zato nujna.
V Sloveniji se za posipanje cest uporablja morska sol (NaCl) ter v manjši meri kalcijev
(CaCl2) in magnezijev (MgCl2) klorid. Slednja se uporabljata predvsem za preventivno
posipanje na avtocestah, hitrih in glavnih cestah ter pri nižjih temperaturah (–8o C).
Z namenom izboljšanja vzdrževanja cest v zimskem obdobju in varovanja okolja so bile
izdelane tudi nekatere raziskave in študije, kot na primer:
• metode za hitro in učinkovito kontrolo kakovosti talilnih sredstev;
• uvedba cestno vremenskih postaj v zimsko vzdrževanje cest;
• določitev osnovnih hidrogeoloških kriterijev za povečanje aktivnega varovanja
podtalnice v primeru onesnaženja na slovenskem cestnem omrežju;
• vplivi na okolje pri posipanju cestišča;
• analiza organiziranosti in delovanja zimske službe.
Zaključke študij lahko strnemo v naslednje: da se uporablja preveč posipnih materialov, ki
negativno vplivajo na konstrukcije cestnih objektov, vozila, podtalnico in vegetacijo ter
zdravje ljudi; da se z izgradnjo ustreznih naprav lahko bistveno zmanjša onesnaženost
predvsem voda; da se z ustreznim vzdrževanjem zmanjša poškodbe na cestnih objektih itd.
Upravljavci cest v Sloveniji zato uvajajo vse večjo uporabo mokrega soljenja, kar ima za
posledico manjšo uporabo posipnih materialov, uporabljajo čistejše in kakovostnejše posipne
materiale s čim manj škodljivih učinkovin ter z uporabo sodobnejše mehanizacije,
opazovanjem in pravočasnim obveščanjem uporabnikov cest prispevajo k racionalizaciji
delovanja in skrbi za okolje. Navajam ključni izsek iz ene od študij (Brank, 2006: 21, 22).
Sporno soljenje
Zimska služba mora poskrbeti ne le za pluženje in čiščenje cest, temveč tudi za soljenje. To
je najcenejši način odstranjevanja snega, a ima mnogo negativnih vplivov. Ne le na
avtomobilsko pločevino, mnogo bolj bi se morali zamisliti nad učinki pretirane uporabe soli za
okolje. Za soljenje cest gre namreč vsako leto več ton soli, ki zaradi odlaganja snega v
6
vodotoke in na površine zemljišč povzroča stalno zasoljevanje rečnega sistema in tal, na kar
organizmi niso navajeni. »Če pogledamo dolgoročno, potem soljenje zagotovo ni okoljsko
sprejemljivo, še zlasti zato, ker nihče ne preverja, koliko soli se s snegom odvrže na površine
in v vodotoke, prav tako ni inšpekcijskega nadzora nad takšnim ravnanjem,« pravi okoljska
svetovalka dr. Marinka Vovk z Okoljsko raziskovalnega zavoda v Slovenskih Konjicah.
»Pri posipanju cest se pojavljajo problemi v primerih, ko zaradi nepravilnega in pretiranega
soljenja debele plasti soli obležijo na zelenicah, od koder se sol vso pomlad izpira med
korenine dreves, kar dokazano škoduje tako rastlinam kot živalim v prsti. Tuje in domače
študije so potrdile hipotezo, da bi pojav kloroz in nekroz na listih lahko bil posledica
prekomernega soljenja cest. Vidni znaki poškodb dreves se pojavijo zlasti v drevoredih, ki so
tik ob cestiščih,« pravi Vovkova.«
(Novi tednik, 2009, Brank, 2006).
Različni proizvajalci imajo običajno različne pristope do zajemanja podatkov (Ivačič in
Čarman, 2008: 12). Vzrok temu je želja proizvajalcev, da končnega uporabnika navežejo na
svoj sistem. Podjetje CGS plus, d. o. o., je konec leta 2007 na DARS-ovem javnem razpisu
pridobilo projekt za povezavo vseh vremenskih postaj na slovenskih avtocestah v celovit
cestno vremenski informacijski sistem (CVIS). Pred tem je bil centraliziran pregled nad
stanjem slovenskih cest nemogoč, saj so bile posamezne CVP povezane samo z
računalnikom v najbližji cestni bazi. CVIS deluje od začetka leta 2009 in zaenkrat so
uporabniki CVIS-a le vzdrževalci cest (Ivačič in Čarman, 2008: 12). Do osnovnih in obdelanih
podatkov dostopajo preko spletnega brskalnika. Način dostopa do podatkov je prilagojen
njihovemu delovnemu mestu in odgovornostim. Na voljo imajo različne načine prikazov
podatkov (tabelarične in grafične). V primeru kritičnih razmer aplikacija sama sproži alarm, ki
se operaterju prikaže na ekranu, obenem pa se sproži tudi obveščanje preko SMS-sporočil.
Aplikacija je odprtega tipa in omogoča dodajanje novih postaj različnih proizvajalcev, novih
senzorjev na posameznih postajah in novih uporabnikov. Aplikacija prav tako omogoča
različne terminske izpise dogajanj in poročil. Cestno vremenski informacijski sistemi so
pomembni tudi v okviru inteligentnih transportnih sistemov (ITS) (Šajn Slak, 2009: 24). ITS je
integracija najsodobnejših informacijskih in telekomunikacijskih tehnik v transportne sisteme
in transportna sredstva z namenom nadziranja in upravljanja prometnih tokov, povečanja
prometne varnosti, izboljšanja obveščenosti voznikov in vzdrževalcev cest ter zmanjšanja
negativnih vplivov na okolje.
CVIS so pomembni sistemi znotraj ITS. CVIS s podatki iz CVP o trenutnem stanju cestišča in
trenutnem stanju vremena nudi informacijsko podporo predvsem pri zimskem vzdrževanju
cest. Glej sliko 2.2.
7
Slika 2.2: CVIS kot element ITS
Vir: Čarman, 2009.
3 TEORETIČNI DEL
V teoretičnem delu naloge bom podal osnovne značilnosti informacijskih sistemov in
podatkovnih baz. Kot posebno vrsto informacijskih sistemov bom predstavil geografske
informacijske sisteme (GIS). V teoriji najdemo različne definicije za pojem sistem (Damij,
1998: 3). Največkrat omenjene so prav gotovo naslednje:
• sistem je relativno izolirana celota, sestavljena iz komponent in njihovih medsebojnih
odnosov, ki deluje v skladu z določenimi zakonitostmi;
• sistem je množica elementov, ki imajo določene medsebojne interakcije za uresničitev
nekega namena ali cilja;
• sistem lahko definiramo kot množico povezanih objektov, ki se jih da opisati s pomočjo
njihovih elementov.
Ločimo abstraktne in realne sisteme. Vsak sistem lahko opredelimo z vhodom, ki pride v
sistem iz okolja, procesom, ki se odvija znotraj sistema, in izhodom, ki pride v okolje kot
8
rezultat delovanja sistema. V luči opazovanja sistemov pa obravnavamo predvsem naslednje
značilnosti (glej sliko 3.1):
• okolje sistema,
• meje sistema,
• vhode in izhode sistema in
• elemente sistema.
Slika 3.1: Shema delovanja sistema
Vir: FRI Univerze v Ljubljani, januar 2009.
Glede na povezanost sistemov z okoljem ločimo odprte in zaprte sisteme. Pri delovanju
sistemov je pomembna tudi povratna zveza, ki je mehanizem, ki sistemu omogoča, da z
informacijami o izhodih sistema vpliva na vhode v sistem. Povratna zveza je v bistvu vhod, ki
se uporablja za reguliranje aktivnosti sistema ustrezno določenemu cilju ali namenu. Sistemi
se lahko v večji ali manjši meri prilagajajo zunanjim spremembam. To merimo z entropijo
sistema, ki je v bistvu mera za neurejenost oziroma neorganiziranost sistema. Tako ločimo
pozitivno in negativno entropijo. Pozitivna entropija je značilna za zaprte sisteme, ki se ne
morejo prilagajati spremembam v okolju, kar vodi v neorganiziranost, neurejenost in motnje v
delovanju sistema (Damij, 1998: 13).
9
3.1 Informacijski sistemi
V podjetjih se porabi več kot 80 odstotkov delovnega časa za sprejemanje in uporabo
informacij (Damij, 1998: 31). Ker je informacija osnova vseh aktivnosti organizacije, je treba
razviti sistem, ki bo omogočal pridobivanje in uporabo informacij s ciljem zagotavljanja
natančnih informacij v primarni uporabni obliki, takrat ko so uporabniku najbolj potrebne. Tak
sistem imenujemo informacijski sistem, katerega aktivnosti prikazuje slika 3.2.
Slika 3.2: Aktivnosti informacijskega sistema
Vir: FRI Univerze v Ljubljani, januar 2009.
Informacijski sistem (IS) lahko označimo kot množico ljudi, računalnikov, idej, aktivnosti,
podatkov in postopkov, ki skupaj omogočajo pridobivanje koristnih informacij. Če želimo, da
nam sistem prinaša koristi, mora izvajati vse tri aktivnosti, ki so značilne za informacijske
sisteme. Najprej mora sprejemati podatke od notranjih in zunanjih virov, v drugi fazi mora
pridobljene podatke obdelati in v zaključni fazi še poskrbeti za ustrezen prikaz informacij.
Med posameznimi fazami pa mora sistem skrbeti za hranjenje podatkov oziroma informacij.
Računalniki niso obvezen element vsakega informacijskega sistema. »Podatki so lahko
zapisani na različnih nosilcih (v kartotekah, na mikrofilmih, glasbenih in filmskih trakovih in
podobno), organiziran dostop do njih in njihovo povezavo pa zagotovimo z nosilcem
ustreznimi napravami. Informacijski sistem je lahko na primer celo popolnoma 'ustni'«
(Kostrevc, 1997: 20). Takih informacijskih sistemov je vedno manj, saj količina dela v
10
sodobnih organizacijah zahteva uporabo informacijske tehnologije: računalnikov in ustrezne
programske opreme. Dejstvo je, da je učinkovito generiranje informacij iz pridobljenih
podatkov, kar omogoča informacijska tehnologija, bistvenega pomena za uspešno delovanje
podjetja.
Na osnovnem nivoju predstavlja strukturo informacijskega sistema šest blokov, ki definirajo
bistvo sistema. Zgradbo informacijskega sistema predstavlja naslednjih šest blokov: vhodni
blok, izhodni blok, tehnološki blok, blok baze podatkov, blok modelov in kontrolni blok. Pri
načrtovanju in ustvarjanju teh blokov se držimo desetih smernic načrtovanja. Ta proces
načrtovanja in ustvarjanja informacijskih sistemov imenujemo metodologija razvoja sistemov,
izvajajo pa ga sistemski analitiki.
Smernice, ki vodijo sistemske analitike pri načrtovanju informacijskih sistemov, so: celovitost,
razmerje uporabnik – sistem, tekmovalnost, kvaliteta in uporabnost informacije, sistemske
zahteve, obdelava podatkov, organizacijski dejavniki, stroškovne zahteve, človeški faktorji in
zahteve izvedljivosti. Poleg nujnosti upoštevanja vseh desetih smernic do podrobnosti
morajo analitiki določiti tudi nivo interakcije in morebitne protislovnosti smernic.
Informacijske sisteme delimo na pet različnih tipov glede na namen uporabe. Transakcijski
informacijski sistemi obdelujejo podatke o aktivnostih poslovanja v podjetju. Transakcija je
vsak dogodek, ki ima vpliv na poslovanje podjetja ali druge organizacije. Upravljavski
informacijski sistemi se osredotočajo na podporo odločanju v primerih, ko se lahko
informacijske zahteve vnaprej predstavijo. Informacijski sistemi za podporo odločanja
ponujajo menedžmentu podporo pri strateškem odločanju v določenih enkratnih situacijah.
Hierarhijo uporabe IS prikazuje slika 3.3.
11
Slika 3.3: Hierarhija uporabe IS
Vir: Rodič, 2008: 36.
Sistemi za podporo odločanju – SPO (Decision Support System – DSS) nudijo podporo
vodstvu v edinstvenih situacijah sprejemanja strateških odločitev. Pri odločanju je treba za
dani primer ugotoviti, katere dejavnike je treba upoštevati in v kolikšni meri. Obdelave
podatkov so zelo zahtevne, odzivni časi so lahko tudi daljši. Za uporabnike je pomembno, da
so rezultati prikazani na razumljiv, uporabnikom prilagojen način.
Ekspertni sistem je inteligenten računalniški sistem, ki uporablja znanje in procedure
sklepanja za reševanje problemov na načeloma ozkem strokovnem področju (slika 3.4).
Slika 3.4: Struktura ekspertnega sistema
Vir: FRI Univerze v Ljubljani, januar 2009.
12
Na določenem omejenem področju lahko posnema sposobnost odločanja in reševanja
problemov človeških izvedencev. Ekspertni sistemi so aplikacije, ki se obnašajo kot
strokovnjaki na ozkem strokovnem področju. Ekspertni sistem ni nadomestek za eksperte,
vendar omogoča širšo uporabo (dostopnost) njihovega znanja in ekspertiz, omogoča boljše
delo neekspertom in pomaga pri delu ekspertov.
Primerjavo med klasičnimi in ekspertnimi sistemi lahko vidimo na sliki 3.5.
Slika 3.5: Klasični/ekspertni sistem
Vir: FRI Univerze v Ljubljani, januar 2009.
Značilne zmožnosti ekspertnih sistemov so: sklepanje, presoja, delovanje pri nepopolnih
oziroma nezanesljivih podatkih, pojasnjevanje delovanja in predlaganih rešitev (sledenje
nazaj).
Zaradi padanja cen in rasti zmogljivosti računalnikov ter komunikacijskih povezav danes hitro
raste število distribuiranih informacijskih sistemov.
»Distribuiran informacijski sistem sestavlja več procesov, ki med sabo komunicirajo z
izmenjavo sporočil preko računalniškega omrežja. Med komunikacijo preko deljenega
pomnilnika, ki je možna znotraj posameznega računalnika, in komunikacijo preko omrežja je
precej razlik, zato je pri razvoju distribuiranih sistemov poleg razvoja drugačnih algoritmov
potrebno na drugačen način poskrbeti tudi za zanesljivost in varnost delovanja.« (Rodič,
2008: 21–24.)
13
Gradnja distribuiranih informacijskih sistemov je precej bolj zahtevna kot razvoj aplikacij,
namenjenih delovanju na enem računalniku. Premostiti je treba številne razlike v omrežnih
protokolih, strojni opremi, programskih jezikih, operacijskih sistemih in med implementacijami
programskih rešitev različnih izvajalcev. Ključnega pomena za reševanje tega problema sta
danes internet in »middleware«. Primeri »middleware«, ki uporabljajo internetne protokole,
so CORBA, Java RMI in HTTP.
Slika 3.6 prikazuje shemo distribuiranega informacijskega sistema.
Slika 3.6: Distribuirani informacijski sistem
Vir: Rodič, 2008: 24.
3.1.1 GIS
Geografski informacijski sistemi (GIS) so informacijski sistemi, ki podpirajo okoljsko
odločanje in omogočajo povezavo lokacije s posameznimi pojavi na tej lokaciji. So sistemi za
upravljanje s podatki z geografsko komponento oziroma sistemi, ki nam omogočajo pregled
podatkov in lokacij, na katere se ti podatki nanašajo. GIS sestavljajo podporna metodologija
in potrebna tehnologija kot na primer okoljski podatki, strojna oprema, programska oprema in
organizacijska struktura. GIS je močno orodje za upravljanje in analizo okoljskih podatkov.
Pri pregledu zgodovine razvoja GIS moramo najprej omeniti slike kromanjonskih lovcev, ki so
jih arheologi odkrili v Franciji v jamah blizu mesta Lascaux. Glej sliko 3.7.
14
Slika 3.7: Stenska slika iz jame Lascaux
Vir: Wikipedia, januar 2010.
Te slike so po predvidevanjih stare okoli 15.500 let. Lovci so na stene jam narisali živali, ki so
jih ulovili. Poleg živali so narisali tudi poti, za katere se predpostavlja, da so migracijske poti
živali. Ti zgodnji zapisi so prvi zametki modernega geografskega informacijskega sistema, ki
povezuje slikovno datoteko z atributno bazo podatkov. V 18. stoletju so se pojavile moderne
geodetske tehnike za topografsko kartiranje, ki so sledile prvotnemu tematskemu kartiranju.
V zgodnjem 20. stoletju se je razvila foto litografija, pri kateri so bili zemljevidi razdeljeni v
sloje. V zgodnjih šestdesetih letih je razvoj računalniške strojne opreme, ki je bil spodbujen z
razvijanjem jedrskega orožja, vodil k uporabi računalniškega kartiranja v splošne namene.
Razvoj prvega pravega GIS na svetu, ki ga je razvil Roger Tomlinson, je leta 1967
spodbudilo kanadsko zvezno ministrstvo za energetiko, rudarstvo in rezerve (Wikipedia,
december 2009). Ta GIS so poimenovali »kanadski GIS« (Canadian GIS; CGIS). CGIS so
uporabljali za pripravo, analizo in upravljanje s podatki, zbranimi za kanadski zemljiški
kataster (Canadian Land Inventory). Zemljevidi CGIS so bili izdelani v merilu 1 : 250.000.
Zbrane so bile informacije o tleh, kmetijstvu, rekreaciji, divjini, vodnih pticah, gozdarstvu in
uporabi zemljišč. Geograf Roger Tomlinson je tako postal poznan kot »oče GIS«. CGIS je
podpiral državni koordinatni sistem, ki se je razširil na celo celino. Lokacijske in druge
posebne informacije so se shranjevale v ločene datoteke. CGIS se je obdržal do
devetdesetih let. Podatki, zbrani v CGIS, predstavljajo največjo digitalno bazo podatkov o
kanadskih zemljiških potencialih. Njegova moč je bila v analizi kompleksnih podatkovnih
sklopov po vsej celini. Zanimivo je, da CGIS nikoli ni bil dostopen v komercialni obliki, čeprav
so se prvi komercialni GIS pojavili že v začetku osemdesetih. ESRI je leta 1982 ponudil prvi
komercialni GIS, imenovan ARC/INFO. Med največje proizvajalce GIS sodita danes poleg
ESRI tudi podjetji MapInfo in CARIS.
15
Če je bilo za prvo generacijo GIS značilno ločevanje prostorskih in atributnih informacij, je za
drugo generacijo GIS značilno organiziranje atributnih podatkov v strukturirane baze
podatkov. Gospodarski razvoj v osemdesetih in devetdesetih letih je povzročil naraščanje
potreb po GIS na UNIX-ovih delovnih postajah in osebnih računalnikih. Do konca 20. stoletja
je hitra rast trga GIS pripeljala do množične uporabe in standardizacije GIS.
Danes se GIS uporabljajo za upravljanje razpoložljivih dobrin, opazovanje okolja, spremljanje
populacije, ocenjevanje tveganja naravnih nesreč, planiranje zdravstvene oskrbe, poštnih
storitev, določanje tveganih lokacij in še za mnogo drugega. GIS lahko zajema in shranjuje
podatke, pridobljene od zunanjih virov ali pa z zemljevidov in poročil. Ko so podatki enkrat
pridobljeni, jih je treba hraniti in skrbeti, da so vedno ažurni. Več kot 70 odstotkov vseh
stroškov pri uspešni uvedbi GIS predstavlja prav zajem podatkov. Največjo vrednost GIS
zato predstavlja prav podatkovna baza. Okoljske podatke v njej pridobivamo iz različnih
virov. Kot primarne podatke označujemo tiste vrednosti, ki jih vnašamo v računalnik
neposredno iz posameznih senzorjev. Sekundarne podatke pa imenujemo tiste vrednosti, ki
so že zbrane, vendar pa jih je treba še prevesti v računalniško berljivo obliko. GIS so danes
na voljo za vse tipe osebnih računalnikov, delovnih postaj in operacijskih sistemov. GIS
zahteva v računalniško omrežje povezano vhodno in izhodno opremo. Programska oprema
za GIS je sestavljena iz večjega števila modulov. Najpomembnejši je modul za upravljanje z
geografsko bazo podatkov. Ostali moduli so namenjeni analizam podatkov. Poleg modula za
upravljanje z bazo podatkov GIS pogosto vsebuje še naslednje module:
• modul za zajem podatkov,
• modul za pretvorbo podatkov,
• modul za prikaz podatkov in izdelavo poročil,
• modul za okoljske analize in
• modul za uporabniški vmesnik.
V sistemu GIS nastopa 5 osnovnih elementov, ki ta sistem tudi tvorijo. Prikazan je na sliki
3.8. Ti elementi so:
• strojna oprema,
• programska oprema,
• geokodirane baze podatkov,
• organizacija, postopki, metodologija in
• ljudje.
16
Slika 3.8: Elementi sistema GIS
Vir: Monolit, d. o. o., januar 2010.
Organizacijsko pa GIS razdelimo na naslednje podsisteme:
• zajem podatkov,
• skeniranje,
• vektorizacija,
• geolociranje,
• manipulacija s podatki,
• vzdrževanje,
• pregledovanje,
• prostorske analize,
• prezentacija,
• izrisi,
• izpisi in
• digitalna kartografija.
Geografski informacijski sistemi združujejo lastnosti geografskih informacijskih sistemov,
lahko pa tudi tehničnih digitalnih arhivov in sistemov za upravljanje z dokumenti ter
predstavljajo integrirano rešitev na področju upravljanja tehničnih sredstev in tako
uporabniku nudijo kakovostno informacijsko podporo pri pridobivanju različnih informacij o
tehničnih sredstvih, infrastrukturnih sistemih, nepremičninah ipd. Naloga GIS je biti v kar
največji meri v pomoč uporabniku pri izvajanju vsakodnevnih operativnih nalog kot tudi pri
strateških razvojnih odločitvah.
17
Geografski informacijski sistemi so v geografsko lokacijske namene še zlasti uporabni pri:
• projektiranju novih sistemov,
• intervencijskih posegih,
• komercialnih predstavitvah (lokacija prostorov, dimenzije, opremljenost),
• sprejemanju strateških razvojnih odločitev in
• še na mnogih drugih področjih.
Z GIS so povezani tudi stroški, ki jih razdelimo na stroške strojne in programske opreme,
stroške upravljanja GIS in stroške podatkov. Z izjemo padca cene strojne opreme je s
komercialno uporabo GIS večina stroškov GIS začela z leti naraščati. V prihodnosti lahko
pričakujemo padec cen programske opreme in stroškov upravljanja GIS predvsem zaradi
konkurence in inovativnih izboljšav. V nasprotju s tem trendom lahko pričakujemo, da bo
cena okoljskih podatkov tudi v prihodnjih dvajsetih letih ostala na visoki ravni.
Zgodovinsko gledano so k današnji široki uporabnosti GIS prispevala številna družboslovna
in naravoslovna področja. Najpomembnejša med njimi so prav gotovo: fotografija, geografija,
kartografija, krajinska arhitektura, računalniško podprto oblikovanje (CAD), daljinsko
zaznavanje, vojaške študije, mestno in podeželsko načrtovanje, okoljska matematika …
Zemljevid lahko razumemo kot poenostavljen model resničnega sveta. Zemljevidi lahko
prikažejo informacije na različne načine, odvisno od tega, kateri pojav v realnem svetu
opazujemo. Določeni zemljevidi prikazujejo lokacije objektov, kot so zgradbe in ceste, spet
drugi razdeljujejo prostor z namenom omejitve posameznih območij, na primer glede na
nadmorsko višino ali poštno številko. Digitalne predstavitve elementov zemljevida lahko
prikažemo v računalniškem okolju. Te elemente s pomočjo računalnika predstavimo glede na
obliko/položaj (geometrično) in z njihovimi lastnostmi.
GIS so v bistvu računalniški sistemi za ustvarjanje, upravljanje in shranjevanje predstavitev
okolja. Geometrični del digitalne predstavitve se nanaša na položaj objekta na Zemljini
površini z uporabo koordinatnega sistema. GIS so podobni grafom z merskimi enotami na osi
x in y (koordinati). Geometrične predstavitve so zgrajene na podlagi štirih osnovnih enot, in
sicer točk, črt, območij in prostorskih slik. Točke lahko povežemo v črte (linije), črte nato
povežemo v območja. Iz posameznih območij pa sestavimo prostorske slike. V nadaljevanju
poznamo dva pristopa k obravnavi geometrijskih podatkov v računalniškem okolju.
18
Na točkah temelji vektorski pristop, na kvadratnih celicah pa rastrski pristop. Pri vektorskih
predstavitvah so točke, črte in območja predstavljeni s pari koordinat X in Y. Točka je
predstavljena z enim parom koordinat. Črta je predstavljena z nizom parov koordinat.
Območje pa je predstavljeno z nizom koordinatnih parov, pri čemer sta začetna in končna
točka isti. Vektorska predstavitev vsebuje torej točke, črte in območja. Vsaka od njih je
predstavljena tudi z oznako, kot lahko vidimo na sliki 3.9.
Slika 3.9: Vektorska predstavitev GIS
Vir: Lastni prikaz, 2010.
Rastrski pristop temelji na podatkovni strukturi, ki prikazuje točke, črte in območja s pomočjo
vzorcev (matric). Natančnost prikaza je odvisna od velikosti posamezne celice v mreži celic.
Točka je prikazana kot posamezna celica v mreži, črto predstavlja več sosednjih celic v
mreži, skupek celic pa predstavlja območje. Vsak element je torej sestavljen iz podobno
oštevilčenih celic. Te celice imenujemo tudi piksli (ang.: pixels). Slika 3.10 ponazarja
vektorski in rastrski prikaz v GIS.
19
Slika 3.10: Vektorski in rastrski prikaz v GIS
Vir: Geoservis, d. o. o., december 2009.
Negeometrične lastnosti elementov, shranjenih v GIS, so predstavljene z besedilom in
številkami. Te lastnosti so običajno shranjene v datotekah ali tabelah podatkovnih baz. Način
povezave med geometričnimi in negeometričnimi podatki je bistveno vprašanje pri
oblikovanju geografskega informacijskega sistema.
Pridobivanje kvalitetnih podatkov je najdražji in najzahtevnejši del implementacije in
vzdrževanja GIS. Pri tem lahko pridobivanje pomeni nakup ali izposojo podatkov ali pa zajem
(specifičnih) podatkov na terenu. Za pridobivanje geografskih podatkov je na voljo mnogo
različnih tehnologij – daljinsko zaznavanje, fotografiranje iz zraka, geodetsko snemanje in
terenski zajem podatkov z GPS (glej sliko 3.11).
Slika 3.11: Pridobivanje podatkov z GPS
Vir: Geoservis, d. o. o., december 2009.
20
Naloga pridobivanja podatkov torej ni zgolj enostaven zajem, s katerim oskrbujemo GIS z
ustreznimi podatki, pač pa tudi ažuriranje ali dopolnjevanje obstoječih GIS-ov z novimi
podatki in vzdrževanje obstoječih podatkov.
3.1.2 Baze podatkov
Baze podatkov oziroma podatkovne baze so po definiciji modeli okolja, ki služijo kot osnova
za sprejemanje odločitev in izvajanje akcij (Mohorič, 1991: 10). Če na podatkovno bazo
gledamo s tehničnega vidika, lahko uporabimo naslednji definiciji podatkovne baze:
• Podatkovna baza je zbirka med seboj pomensko povezanih podatkov, ki so shranjeni v
računalniškemu sistemu, dostop do njih je centraliziran in omogočen s pomočjo
sistema za upravljanje podatkovnih baz.
• Podatkovna baza je mehanizirana, večuporabniška, formalno definirana in centralno
nadzorovana zbirka podatkov.
Standard ANSI/SPAR (iz leta 1975) postavlja za podatkovno bazo naslednje štiri zahteve
(Wikipedia, januar 2010):
• Podatki so v bazi povezani in urejeni po določenem vrstnem redu.
• Podatkovna baza je urejena tako, da lahko podatke v njej istočasno uporablja en ali
več uporabnikov.
• Isti podatki se v bazi ne ponavljajo.
• Podatkovna baza je shranjena v računalniku.
Primer zgradbe podatkovne baze je prikazan na sliki 3.12.
21
Slika 3.12: Podatkovna baza skozi sheme
Vir: Mohorič, 1991: 19.
Podatkovna baza po prvi definiciji podpira interakcije med človekom in njegovim okoljem.
Dogajanja v okolju se registrirajo v obliki novih podatkov, s katerimi se ažurirajo obstoječi
podatki, ki so že shranjeni v podatkovni bazi. Podatke v podatkovni bazi človek interpretira in
na osnovi pridobljene informacije ter lastnega znanja izvaja akcije v okolju. Pri procesnem
vodenju lahko akcije sproža tudi računalniška obdelava podatkov. Ker so akcije tudi del
dogajanja v okolju, se tudi podatki o njih beležijo v podatkovni bazi. V podatkovni bazi pa se
ne shranjujejo tisti dogodki iz okolja, ki služijo le kot sprožilec k dodatnemu iskanju podatkov
in ukrepanju. S podatki v bazi je treba smiselno upravljati, zato mora upravljanje podatkovne
baze zajemati zagotavljanje razpoložljivosti podatkov in nadzor nad njihovo uporabo
(celovitost podatkov, namensko uporabo podatkov in uporabnost podatkov v prihodnosti). Ko
govorimo o razpoložljivosti podatkov, mislimo na učinkovit dostop vseh uporabnikov sočasno
do vseh vrst podatkov in to ves čas. Uporabniki, ki potrebujejo tak dostop do podatkov v
podatkovni bazi, so: uporabniški programi za ponavljajoče se obdelave, parametrični
uporabniki za transakcijske obdelave, občasni uporabniki za posamična povpraševanja,
programerji za razvoj uporabniških programov in upravitelj podatkovne baze. Organizacija
podatkovne baze mora omogočati kratek odzivni čas pri naključnih povpraševanjih in
izvajanje čim večjega števila rutinskih operacij na časovno enoto. V skladu z zahtevo po
celovitosti podatkov v podatkovni bazi pa je treba izvajati naslednje postopke: obnavljanje
podatkovne baze, nadzorovanje sočasnega dostopa do podatkov in preverjanje vhodnih
podatkov. Preverjanje vhodnih podatkov se mora izvajati pred ažuriranjem ali prav v času
ažuriranja podatkovne baze. Pri tem se preverja, ali je vrednost posameznega
22
elementarnega podatka smiselna glede na poznano domeno in ali je vrednost podatkov
smiselna glede na že obstoječe podatke v podatkovni bazi. Zahtevo po uporabi podatkov v
skladu z njihovim namenom obravnavamo z dveh vidikov: z vidika dostopa do dovoljenih
podatkov in z vidika pravilnega razumevanja podatkov. Kar se tiče pomena podatkov v
podatkovni bazi, mora obstajati uporabniku preprosto dostopen opis pomena posameznih
podatkov. Nepravilno razumevanje podatkov po navadi pripelje do napačnih zaključkov. V
podatkovni bazi obstajajo tudi zaupni podatki, zato je nujno uvesti sistem za nadzorovanje
dostopa do posameznih vrst podatkov. Pravica do kreiranja in brisanja tipov podatkov je v
glavnem dovoljena samo upravitelju podatkovne baze. Ostalim uporabnikom pa se glede na
njihove odgovornosti v organizaciji lahko dodelijo naslednje pravice: pravica do branja
podatkov, pravica do dodajanja podatkov, pravica spreminjanja podatkov in pravica do
brisanja podatkov.
Podatki v podatkovni bazi spadajo med najpomembnejše vire vsake organizacije. Zato je
treba zagotoviti prilagodljivost podatkovne baze v smislu uporabnosti tudi v prihodnosti.
Zagotovljena mora biti podatkovna neodvisnost strukture podatkovne baze. S tem je mišljeno
minimiziranje vpliva sprememb v podatkovni bazi na uporabnike. Probleme, ki lahko
nastopijo ob menjavi računalniške opreme rešuje tri nivojska arhitektura podatkovne baze.
Pri tem mislimo na ločevanje uporabniškega, konceptualnega in fizičnega nivoja.
Poleg podatkovnih baz za shranjevanje formatiranih podatkov, o katerih je bil govor do zdaj,
obstajajo še naslednje vrste podatkovnih sistemov: referenčni sistemi, sistemi za obdelavo
besedil, bibliografski sistemi, specializirane podatkovne baze ter baze znanja in objektne
podatkovne baze. Glede organizacije podatkovne baze za shranjevanje formatiranih
podatkov moramo ločevati dva pogleda. V širšem pogledu razumemo podatkovno bazo kot
podatke, uporabnike in uporabniške programe, upravitelja podatkovne baze in sistem za
upravljanje podatkovne baze (SUPB). V ožjem pomenu pa kot podatkovno bazo pojmujemo
le podatke, ki so shranjeni na zunanjem pomnilniškem mediju in s katerimi upravlja SUPB. Z
vidika upravljanja s podatkovno bazo ločimo centralizirane in porazdeljene podatkovne baze.
Tako lahko z določeno podatkovno bazo upravlja en sam SUPB ali pa več (lokalni in njim
nadrejeni SUPB).
Podatkovni del podatkovne baze delimo na meta in fizično podatkovno bazo (MPB in FPB).
V FPB so shranjene vrednosti podatkovnih elementov, ki se nanašajo na lastnosti objektov v
modeliranem okolju (fizični podatki). V MPB so shranjeni opisi fizičnih podatkov, in sicer kako
so shranjeni v zunanjem pomnilniku, kaj pomenijo in kako so dostopni uporabnikom. Oba
dela podatkovne baze sta v obliki fizičnih datotek shranjena v zunanjem pomnilniku
23
računalniškega sistema. SUPB izvaja dostop do njiju posredno preko operacijskega sistema.
Glede na zahtevo po trinivojski arhitekturi podatkovne baze vsebuje MPB tri vrste opisov
fizičnih podatkov, in sicer notranjo shemo, konceptualno shemo in zunanjo shemo. Fizično
podatkovno bazo lahko obravnavamo na štirih nivojih: na nivoju operacijskega sistema (izven
podatkovne baze), notranjem nivoju, konceptualnem nivoju in zunanjem nivoju. Na
konceptualnem in zunanjem nivoju je podatkovna baza opisana s podatkovnimi modeli. Te
podatkovne modele delimo na globinske in površinske. Danes se najbolj uporabljajo
naslednji površinski podatkovni modeli: relacijski, mrežni in hierarhični podatkovni model.
Vsakega od teh modelov podpirajo zanj značilni operatorji, ki sestavljajo jezike za upravljanje
s podatki oziroma povpraševalne jezike.
Uporabnike podatkovnih baz delimo na posredne in neposredne. Direktno s podatkovno
bazo komunicirajo samo neposredni uporabniki, posredni pa le okvirno podajajo svoje
podatkovne zahteve preko neposrednih uporabnikov. Neposredni uporabniki podatkovne
baze se delijo na programerje, neprogramerje in upravitelja podatkovne baze. Neprogramerji
so menijsko vodeni uporabniki, parametrični uporabniki in uporabniki povpraševalnega
jezika. Med programerji pa ločimo uporabniške ali aplikacijske programerje, sistemske
programerje in tudi uporabnike povpraševalnega jezika. Sistem za upravljanje podatkovne
baze izvaja dostopne in kontrolne funkcije pri upravljanju podatkovne baze. Pod dostopno
funkcijo razumemo definiranje shem podatkovne baze ter kreiranje in reorganiziranje
podatkovne baze. Z vidika splošnega uporabnika med dostopne funkcije štejemo zajemanje
in ažuriranje podatkov v podatkovni bazi. Kontrolne funkcije SUPB pa delimo na zaščitne in
nadzorne funkcije. Te funkcije so uporabnikom prikrite, skrbijo za celovitost podatkovne baze
in preverjajo uporabniške pravice do uporabe podatkov. SUPB sestavljajo naslednji glavni
moduli: kontrolni sistem, povpraševalni procesor, menijski procesor, metapodatkovni
procesor in predvajalniki. SUPB je lahko izveden kot programska oprema ali pa kot
samostojen podatkovni računalnik, povezan z enim ali več gostečimi računalniškimi sistemi,
na katerih se izvajajo uporabniški programi.
Za modeliranje podobe sveta s podatkovno bazo se uporabljajo podatkovni modeli, ki
obsegajo podatkovno strukturo, operacije nad podatkovno strukturo in integritetne omejitve.
Pri modeliranju s podatkovno bazo se na konceptualnem in zunanjem nivoju uporabljajo
logični modeli, na notranjem nivoju pa fizični modeli. Logične modele delimo na površinske in
globinske. Površinski modeli so zapisno orientirani. Mednje štejemo:
• relacijski model (temelji na relacijah),
• mrežni model (temelji na grafih) in
24
• hierarhični model (temelji na drevesih) (Mohorič, 1991: 9–29).
Glavni globinski podatkovni modeli pa so model »entiteta – razmerje«, binarni podatkovni
model, infološki podatkovni model in podatkovni model na osnovi semantičnih mrež.
Najpomembnejša naloga pri modeliranju podatkov je čim bolj realna predstavitev njihovega
pomena in logičnih povezav med njimi. Človek poskuša že od pradavnine dogajanje v
svojem okolju opisati na različne načine. Različne načine opisovanja predvideva tudi
definicija pojma podatek. Ta definicija pravi, da je podatek opis, zapis nekega pojava ali
dejstva in je lahko predstavljen v številčni, tekstovni ali grafični obliki. S podatki opisujemo
neke objekte oziroma entitete, ki nastopajo v obravnavani stvarnosti, poleg tega pa morajo
biti pomembne z našega vidika obravnave te stvarnosti. Iz napisanega sledi, da je
podatkovni model zbirka konceptov, s katerimi skušamo izraziti statične in dinamične
lastnosti podatkov v okviru informacijskega sistema.
Ker se je večina podatkovnih modelov razvijala intuitivno, nimajo formalne matematične
podlage.
Podatkovni model nam omogoča delni opis obravnavanega izseka stvarnosti oz.
konkretnega sistema, ki ga obravnavamo. Je zbirka konceptov, s katerimi skušamo izraziti
statične in dinamične lastnosti podatkov v okviru IS. Vsak objekt, ki ga predstavljamo s
pomočjo podatkovnega modela, bi moral biti predstavljen s četverko:
<ime_ objekta, lastnosti_objekta, vrednosti_lastnosti, čas>
(Dolžan, 2001: 17).
Pri večini podatkovnih modelov je čas zaradi svoje problematičnosti zanemarjen. V različnih
fazah modeliranja podatkov moramo uporabljati različne podatkovne modele. ER-model je
najbolj uporaben na logični ali konceptualni ravni.
Pri modeliranju podatkov z ER-modelom se kot osnovni modelirni koncepti pojavljajo:
entiteta, atribut, povezava in vrednost.
Entiteta je objekt, pojem ali subjekt, ki obstaja v realnem svetu in je pomemben z vidika
obravnavanega informacijskega sistema. Atribut pa je opisna lastnost nekega tipa entitete, ki
je značilna za celotno množico primerkov danega tipa. Vsako entiteto mora opisovati končna
množica atributov. Atributi skupaj tvorijo agregat, ki je tip entitete. Med entitetami obstajajo
25
povezave. Za nas so vedno pomembne le tiste povezave, ki so pomembne z vidika
obravnavanega informacijskega sistema. Povezava v bistvu opisuje zvezo med n-tipi entitet.
Najpogostejše so vsekakor binarne povezave (povezave med dvema tipoma entitet).
Pri modeliranju podatkov je zaradi kompleksnosti realnega sveta treba uporabiti koncept
abstrakcije. Abstrakcija v tem primeru predstavlja zavestno zanemarjanje podrobnosti in
osredotočenje na splošne in skupne lastnosti pojavov, objektov ali pojmov. Najpogosteje
uporabljani koncepti abstrakcije so naslednji: klasifikacija, generalizacija, agregacija in
asociacija.
Podatkovni model naj bi v splošnem omogočal specifikacijo naslednjih značilnosti v
stvarnosti nastopajočih objektov:
• statične oziroma strukturne lastnosti,
• dinamične lastnosti in
• integritetne omejitve nad objekti in operacijami.
Doslej je bilo za modeliranje podatkov razvitih precej konceptov, programskih orodij in tehnik,
ki podpirajo različne vidike modeliranja in upravljanja s podatki v okviru SUPB. Te modele
lahko zdaj razdelimo v štiri skupine :
• primitivni modeli,
• klasični modeli,
• semantični modeli in
• specializirani modeli.
Nobeden od množice doslej znanih modelov pa ne združuje vseh lastnosti, ki bi jih
potrebovali pri sodobnem modelu. Primitivni in klasični modeli so usmerjeni izključno v fizično
zasnovo in specifikacijo podatkovne baze. Prvi semantični modeli pa že usmerjajo pozornost
bolj na logične ali semantične aspekte modeliranja podatkov. Primitivni modeli so nudili
skromne možnosti vzpostavljanja povezav med objekti. Razpoložljivi operaciji sta bili branje
in pisanje zapisov. Kljub vsemu pa še danes velik del računalniške obdelave temelji na njih.
Klasični podatkovni modeli zahtevajo malo širšo obravnavo. V skupino klasičnih modelov
uvrščamo naslednje modele: hierarhični, mrežni in relacijski model.
26
Hierarhični podatkovni model (slika 3.13) prikazuje hierarhične organizacije in strukture
zelo naravno. Težave pa se pojavijo pri opisovanju nehierarhičnih povezav. Za te modele ni
na voljo neke temeljne teorije; pretežno so se razvijali s praktično uporabo. Že zelo zgodaj pa
so se pojavili prvi komercialni produkti SUPB, ki so temeljili na hierarhičnem modelu.
Hierarhični model pozna dva osnovna koncepta modeliranja. To sta zapis in povezava oče –
sin. Povezava oče – sin je tipa 1 : N. En primerek te povezave torej sestoji iz enega primerka
zapisa tipa oče in več primerkov zapisa tipa sin. Hierarhična podatkovna baza je sestavljena
iz množice hierarhij. Vsaka hierarhija pa je sestavljena iz množice tipov zapisov in povezav
oče – sin. Grafično se hierarhična shema prikazuje kot diagram, v katerem so tipi zapisov
prikazani s pravokotniki, povezave pa kot daljice, ki povezujejo zapis tipa oče z zapisom tipa
sin.
Slika 3.13: Hierarhični podatkovni model
Vir: Gimnazija Vič, december 2009.
Lastnosti hierarhičnih shem:
• Na najvišji ravni je en sam zapis, ki se imenuje koren in nima nadrejenih zapisov tipa
oče.
• Vsak tip zapisa, z izjemo korena, participira kot sin v natanko eni povezavi.
• Vsak tip zapisa lahko participira kot oče v poljubnem številu povezav.
• Tipi zapisov v hierarhiji, ki ne participirajo v nobeni povezavi kot očetje, se imenujejo
listi.
27
Hierarhični model je torej najbolj primeren za modeliranje podatkov, ki imajo že po naravi
drevesno strukturo.
Mrežni podatkovni model, ki je prikazan na sliki 3.14, se je prav tako kot hierarhični hitro
uveljavil v praksi. V njem se podatki shranjujejo v zapise, ki vsebujejo skupino polj z
medsebojno povezanimi vrednostmi podatkov. Ti zapisi se klasificirajo v tipe zapisov, kjer
vsak tip zapisa določa strukturo skupine zapisov, v kateri so shranjene informacije istega
tipa. Vsak tip zapisa ima svoje ime, prav tako imajo svoja imena tudi polja (atributi), ki
sestavljajo določen tip zapisa. Običajno tipi zapisov predstavljajo entitete. Tip povezave je
drugi osnovni koncept mrežnega modela. Tip povezave opredeljuje povezave 1 : N med tipi
zapisov. Tip povezave vedno sestavljajo trije osnovni elementi:
• ime tipa povezave,
• zapis tipa lastnik in
• zapis tipa član.
V shemi mrežne baze podatkov lahko nastopa poljubno število tipov povezav. Zapisi tipa
član lahko nastopajo samo v enem primerku povezave določenega tipa. Mrežni model
omogoča tudi predstavitev sestavljenih atributov in ponavljajočih se grup. Osnovna slabost
mrežnega modela je ta, da je dostop do podatkov mogoč le na vnaprej predviden in v shemo
mrežnega modela vgrajen način.
Slika 3.14: Mrežni podatkovni model
Vir: Gimnazija Vič, december 2009.
28
Leto 1970 štejemo za rojstno leto relacijskega podatkovnega modela. Tega leta je Edgar
Frank »Ted« Codd (1923–2003) objavil članek z naslovom »A Relational Model of Data for
Large Shared Data Banks« (v prostem prevodu: Relacijski model podatkov za velike
večuporabniške banke podatkov) (Mohorič, 1991: 109). To delo danes štejemo med klasična
dela s področja podatkovnih baz. Relacijski podatkovni model sodi med površinske modele
in se uporablja za predstavitev podatkovne baze na konceptualnem in zunanjem nivoju.
Codd je svoje ugotovitve strnil v 12 točk, od katerih so za začetno razumevanje pomembne
le naslednje (Mrhar, 2002: 13):
• Relacijski model predstavlja vse podatke neke podatkovne zbirke prek
dvodimenzionalnih tabel.
• Vse operacije nad podatki izvajamo prek enega jezika, v našem primeru SQL-a.
• Relacijski model omogoča izvajanje osnovnih relacijskih operacij (združevanje, preseki
ipd.).
• Relacijski model dovoljuje različne poglede na podatke.
Relacijske podatkovne zbirke so sestavljene iz preprostih dvodimenzionalnih tabel. Te so
sestavljene iz stolpcev in vrstic.
Kot opisni in strukturni mehanizem je relacijski model vgrajen v sisteme za upravljanje
relacijskih podatkovnih baz. Nekaj najbolj znanih SUPB je:
• Ingres,
• MS SQL Server,
• MS Access,
• MySQL,
• Oracle,
• Paradox in
• PostgreSQL.
Za relacijski podatkovni model velja, da ima med klasičnimi modeli najpreprostejše strukture
in je najbolj formaliziran. Na videz je precej podoben modelu entiteta – povezava (E-R),
prikazanem na sliki 3.15.
29
Slika 3.15: Model E-R
Vir: Gimnazija Vič, december 2009.
Med njima pa je nekaj bistvenih razlik. Relacijski model ima nedvoumno matematično
podlago in jasno formulirane koncepte, ki omogočajo uporabo relacijske algebre pri izvajanju
operacij na modelu. Model E-R pa nima enotnega matematičnega formalizma, zato ga v
praksi različno interpretirajo. V relacijski bazi so podatki predstavljeni kot zbirka relacij.
Relacijo si lahko predstavljamo kot tabelo vrednosti, kar lahko vidimo na sliki 3.16.
Slika 3.16: Relacijska tabela
Vir: Gimnazija Vič, december 2009.
Tabele in kolone v njih imajo svoja imena, ki omogočajo predstavitev pomena vrednosti v
vsaki koloni. Vrstica v tabeli se imenuje n-terka, kolona se imenuje atribut, celotna tabela pa
se imenuje relacija. Domena D je množica atomarnih vrednosti, ki jih z vidika relacijskega
modela ni mogoče razstavljati. Vsaka domena ima dano ime, tip podatkov in format.
Relacijska shema R je množica atributov. Relacijska shema se uporablja za opredelitev
relacije; R pa je ime relacije. Vsaka relacija ima določeno stopnjo, ki je opredeljena s
številom atributov n v relacijski shemi. Relacija r relacijske sheme, ki jo označimo r(R), je
množica n-teric. Vsaka n-terka je urejen seznam vrednosti n. Relacijo r imenujemo tudi
ekstenzija relacijske sheme R. Relacijo pa lahko definiramo tudi kot podmnožico
30
kartezičnega produkta vseh domen D, ki sestavljajo relacijsko shemo R. Relacija v svoji
definiciji nima opredeljenega vrstnega reda n-terk, ker poizkuša predstaviti podatke na logični
ravni. Vsaka vrednost v n-terki je atomarna. Sestavljeni in večvrednostni atributi niso
dovoljeni. To zagotovimo s konceptom normalizacije, ki sem ga uporabil pri praktičnem delu.
Kadar je vrednost nekega atributa neznana ali nepomembna, lahko uporabljamo posebno
vrednost NULL. V relacijskem modelu lahko nekatere relacije predstavljajo dejstva o
entitetah, druge pa o povezavah med njimi, vendar med njimi ni nobene formalne razlike.
Vse n-terke v relaciji si morajo biti med seboj različne. V ta namen moramo imeti podmnožico
atributov, katerih kombinacija vrednosti omogoča enolično identifikacijo vsake n-terke v
relaciji. To podmnožico atributov imenujemo ključ (slika 3.17).
Slika 3.17: Primarni ključ
Vir: Gimnazija Vič, december 2009.
Relacijska shema ima lahko tudi več ključev; tako skupino ključev imenujemo možni ključi
(candidate keys). V takih primerih moramo izbrati enega od možnih ključev, ki ga imenujemo
primarni ključ.
Relacijska podatkovna baza je sestavljena iz večjega števila relacij r. Shema relacijske
podatkovne baze S je množica relacijskih shem in množica integritetnih omejitev. Slednje so
definirane na shemi relacijske podatkovne baze in veljajo za vsak primerek te sheme. Te
omejitve se običajno nanašajo na kandidate za ključe in konsistenco med dvema relacijama.
Relacije so predstavljene s tabelami, zato se relacijska podatkovna baza kaže uporabniku
kot množica tabel. Njihova vsebina je uporabniku dostopna s pomočjo povpraševalnih
jezikov, ki so osnovani na relacijski algebri (postopkovni jeziki) ali pa na relacijskem računu
(nepostopkovni jeziki). Glavni predstavnik nepostopkovnih jezikov je SQL (Structured Query
Language – strukturirani povpraševalni jezik). S pojavom relacijskega podatkovnega modela
so se začela prizadevanja za razvoj primernega relacijskega povpraševalnega jezika.
SEQUEL (Structured English Query Language) je bil definiran in preizkusno uveden leta
1974 (Mohorič, 1991: 129). Iz njega se je razvil današnji SQL.
31
SQL sta razvila IBM-ova inženirja Donald D. Chamberlin in Raymond F. Boyce. V osnovi je
bil namenjen za upravljanje in pridobivanje podatkov, shranjenih v IBM-ovem izdelku System
R. To je bila v bistvu relacijska podatkovna baza. Testirali so ga na različnih testnih poligonih
z različnimi sistemi za upravljanje relacijskih podatkovnih baz. V začetku je bil to predvsem
povpraševalni jezik in je temeljil na n-teričnem relacijskem računu. Kasneje se je razširil tudi
v jezik za specifikacijo shem. Že konec sedemdesetih let je postal dejanski standard.
Formalno je postal standardiziran leta 1986, ko ga je standardiziral ANSI. Temu je sledila
tudi standardizacija s strani ISO. SQL je bil prvotno zamišljen kot samostojni jezik, nato pa so
mu bile dodane še lastnosti, ki omogočajo njegovo uporabo tudi iz drugih programskih
jezikov. S pomočjo predprevajalnikov za ugnezdene SQL ukaze ga lahko uporabljamo tudi v
postopkovnih programskih jezikih.
3.2 Pregled najbolj poznanih spletnih zemljevidov in aplikacij na osnovi GIS
GIS je računalniško voden informacijski sistem za zajemanje, hranjenje, urejanje, analiziranje
(med drugim tudi iskanje), prikazovanje in razširjanje (distribucijo) podatkov, ki predstavljajo
lokacije. Za izvajanje vseh naštetih nalog je v GIS zajeta velika množica orodij.
Prvo orodje je geokodiranje in je primerno za uporabnike, ki želijo izvedeti, kje je določen
geografski kraj (npr. naslov, cesta, zgradba ipd.). V ustrezno opremljenega odjemalca
vnesejo iskalni niz, orodje jim poišče ustrezne zadetke, grafični odjemalec pa jih prikaže na
zemljevidu. Ključno pri tem orodju je, da je zgrajeno v obliki strežniške storitve, ki uporablja le
en podatkovni model za vsa orodja GIS.
Drugo orodje je nasprotno geokodiranje, ki okoli podanih koordinat lokacije poišče najbližje
geografske kraje. Uporabniška izkušnja je naslednja: lastniku vozila se namesto težko
predstavljivih geografskih koordinat v grafičnem odjemalcu prikaže naslov, ki je najbližji
lokaciji, kjer stoji njegovo vozilo.
Tretje orodje se imenuje usmerjanje. Uporabniku glede na njegove zahteve izračuna iskano
pot z ene lokacije na drugo. Uporabnik lahko izbira med različnimi tipi poti (najkrajšo,
najcenejšo, najbolj ekonomično …).Tako kot geokodiranje in nasprotno geokodiranje tudi
usmerjanje uporablja isti podatkovni model in je zasnovano v obliki strežniške storitve.
Prednosti uporabe istega podatkovnega modela in iste podatkovne baze za vsa orodja GIS
so očitne. Geografski podatki se ne podvajajo in vsi so dostopni na enem mestu. To bistveno
pripomore tako k vzdrževanju podatkovne zbirke kot podatkov. Če je podatkovni model poleg
32
tega dobro narejen, je prednosti še več. Ena od ključnih lastnosti je tudi ta, da ni omejen
samo na lokalne podatke. Vanj lahko vstavimo podatke z vsega sveta, kot take pa jih lahko
med seboj tudi analiziramo, ne glede na to, kje so. Zaželena je tudi določena stopnja
fleksibilnosti, saj je GIS zelo živahno področje, ki zahteva nenehne izboljšave, tudi nova
orodja. Tako je morebitne razširitve modela kasneje enostavneje dodati.
Prednosti zasnove orodja v obliki strežniške storitve skupaj z enim podatkovnim modelom so
naslednje:
• strežnik je enolično dosegljiv vsem odjemalcem; možno je posodobiti, popraviti,
zamenjati ali premestiti strežnik, ne da bi odjemalci vedeli za to;
• strežnik je načeloma lažje optimizirati za določeno strojno opremo in ponuja večji
nadzor nad sredstvi in dostopom do podatkov;
• tehnologije strežnik – odjemalec so že dolgo časa na voljo in so zelo zrele glede
enostavnosti uporabe in varnosti;
• na strežnik se lahko priključijo različni odjemalci in
• podatki so centralizirani, kar olajša njihovo vzdrževanje in zmanjšuje njihovo
podvajanje.
Veliki GIS-i so domena le nekaterih velikih podjetij in državnih agencij. Slednje sicer javnosti
ponujajo določene podatke, a njihov sistem je večinoma lastno razvit in zaprt. Navadnim
spletnim uporabnikom po svetu je prvi na veliko odprl oči Google, ki je s svojim spletnimi
zemljevidi in aplikacijo Google Zemlja prikazal svet v natančni interaktivni podobi. Omeniti
moram tudi Mapquest, ki je tovrstne storitve nudi že od leta 1996, vendar predvsem v ZDA,
kjer ima še danes veliko število uporabnikov.
Googlu so kmalu sledila druga velika podjetja (npr. Microsoft in Yahoo). Zemljevidi postajajo
vsak dan bolj natančni, za kar se moramo zahvaliti vedno večjemu številu navigacijskih
satelitov in podjetjem, ki so specializirana za ponujanje digitalnih geografskih podatkov za cel
svet (npr. Tele Atlas in Navteq). Mimogrede, cene teh podatkov so za majhna podjetja
astronomsko visoke. Politika in pogoji uporabe njihovih storitev, ki sedaj vključujejo tudi
geokodiranje, nasprotno geokodiranje in usmerjanje, so prilagojeni za splet. Na primer,
Googleove zemljevide je možno uporabljati samo v spletnem brskalniku, vključiti jih smemo
samo v javno dostopno spletno stran. Podobno velja tudi pri drugih ponudnikih. To pa v
podjetju prinaša težavo, saj jih ni mogoče uporabiti v zaprtem namiznem Javinem odjemalcu.
Alternativo ponuja Microsoft, in sicer prek standardne spletne storitve, vendar proti visokemu
plačilu. Po drugi strani pa je podjetij, ki bi prodajala celovite GIS-e kot programsko opremo,
33
zelo malo. Njihove aplikacije so večinoma velike, okorne in zelo drage. Da ne bo pomote,
govorimo o GIS-ih, ki ponujajo vsaj ta tri orodja (geokodiranje, nasprotno geokodiranje in
usmerjanje) z možnostjo vključitve lastnih podatkov. Ponudba ostalih orodij, kot so orodja za
vstavljanje, urejanje in prikazovanje geografskih podatkov, je velikanska, od odprtokodnih do
plačljivih orodij. Največji ponudnik programske opreme GIS, ki vključuje ta tri orodja, je
podjetje ESRI, ki prodaja strežnik ArcGIS Server. Tega je možno kupiti v različici, ki vključuje
zelo napredna orodja, vendar je cena nekaj deset tisoč ameriških dolarjev. Od programske
opreme, ki bi pripomogla k izdelavi GIS-a, moram omeniti odprto okolje GRASS, ki na enoten
način omogoča urejanje najrazličnejših geografskih podatkov in njihovo analiziranje, med
drugim vsebuje tudi orodja za izdelavo želenih storitev. Gre samo za razvojno okolje, ki bi se
ga teoretično dalo uporabiti v strežniku. Zanimiv je strežnik Gisgraphy, ki so ga razvijalci zelo
približali zasnovi tega sistema, saj so uporabili praktično enake tehnologije, a niso razvili
usmerjanja. Usmerili so se predvsem na uvoz podatkov in uporabo prosto dostopnih
podatkov.
Glede na obiskanost spletnih strani z zemljevidi se danes največ uporabljajo naslednje
rešitve: spletni zemljevidi in storitve različnih ponudnikov (Google Maps, Microsoft Bing
Maps, Yahoo! Maps, ESRI ArcGIS Server Standard, GRASS …), ki jih prikazujejo slike od
3.18 do 3.22.
Slika 3.18: Google Maps
Vir: Google Maps, januar 2010.
34
Slika 3.19: Microsoft Bing Maps
Vir: Microsoft, januar 2010.
Slika 3.20: Yahoo! Maps
Vir: Yahoo!, januar 2010.
Slika 3.21: ESRI
Vir: ESRI, januar 2010.
35
Slika 3.22: GRASS GIS
Vir: GRASS, januar 2010.
Vsak sistem ima svoje prednosti in slabosti. Spletni zemljevidi so zelo natančni, imajo zelo
dobro dokumentiran programski vmesnik in vedno posodobljene podatke. Njihova slabost je,
da se jih ne da uporabiti v zaprtih namiznih odjemalcih v Javi (zaradi pogojev uporabe in
tehnologije Ajax), vanje največkrat ni možno vključiti lastnih podatkov in nekateri imajo
omejitve uporabe. Za ESRI ArcGIS Server je značilna zelo napredna tehnologija in uporabne
storitve, po drugi strani pa žal tudi visoka cena. Dobra stran sistema GRASS je odprta koda
in 25-letne izkušnje. Slaba stran pa je, da ta sistem nima strežnika in podatkovnega modela.
Tudi Gisgraphy je odprtokoden in uporablja znane tehnologije, žal pa nima usmerjanja in ima
zapleten podatkovni model.
Zanimanje za prostorske informacije je vedno večje. GIS-i vztrajno zavijajo v vode tako
imenovanih lokacijsko odvisnih storitev (angl. Location-Based Services – LBS). Te nudijo
uporabnikom podatke, ki ustrezajo njihovi trenutni okolici. Ker so v uporabi novi načini
komuniciranja, kot so mobilna/brezžična omrežja, majhne prenosne naprave (mobilni
telefoni), od LBS-jev pričakujemo nekaj več kot od klasičnih GIS-ov: visoko zmogljivost
(veliko mobilnih uporabnikov), zanesljivost (neprekinjeno delovanje), realno časovno
odzivnost in dinamično prilagodljivost (lokacija uporabnika), mobilnost in odprtost (podporo
splošno sprejetih standardov) ter varnost. LBS ponujajo mobilni operaterji (npr. Mobitelov
Lokus), vse več pa je tudi namenskih aplikacij (npr. storitev Latitude pri Google Maps za
36
mobilne naprave). Konzorcij OGC (Open Geospatial Consortium) je pripravil odprt standard
OpenLS, ki definira vmesnike za lažjo izmenjavo podatkov med množico mobilnih naprav in
storitvami LBS, med drugim tudi za storitev geokodiranja, nasprotnega geokodiranja in
usmerjanja.
V zadnjem času vse več avtomobilskih proizvajalcev v svoje avtomobile vgrajuje posebne
naprave, ki voznike sproti obveščajo o različnih ovirah na cesti. Omenil bom primer
japonskega podjetja Nissan Motors Co., Ltd., ki je prikazan na sliki 3.23.
Slika 3.23: Nissanov sistem obveščanja voznikov
Vir: Avtoin, januar 2010.
Napreden cestni prometni sistem uporablja informacije iz vozil v bližini in informacije
obcestnih optičnih signalov za opozarjanje voznikov na potencialne nevarnosti bližajočih se
vozil. Informacije prejema na vozilu vgrajena antena.
Poleg tega sistem uporablja informacije za opozarjanje voznikov, ko prehitro vozijo v bližini
šol. Voznikom s pomočjo zbiranja informacij o položaju in hitrosti soudeleženih vozil (pridobi
jih po tehnologiji brezžičnih komunikacij) priporoča najhitrejšo pot.
Med poskusno dobo so testirali naslednje sestavne dele sistema.
Opozorilo na vozila
Ta sistem opozarja voznike na prisotnost vozil, ki prehitro vozijo na nepreglednih križiščih.
Če sistem na primer ugotovi, da se vozniku z leve prehitro približuje avtomobil, sproži
37
opozorilni zvočni signal in oglasi se glasovno opozorilo: »Car approaching from left.«
(Avtomobil se približuje z leve.) Istočasno se na ekranu voznikovega navigacijskega sistema
CARWINGS prikaže slika bližajočega se vozila.
Sistem voznika opozori tudi v primeru, ko zazna prehitro približevanje znaku stop ali rdeči
luči na semaforju.
Opozorilo na hitrost
Ta sistem opozarja voznike ob prehitri vožnji v bližini šole. Ko voznik prekorači v območju
dovoljeno hitrost, se zaslišita opozorilni zvočni signal in glasovno opozorilo: »School ahead.
Watch your speed.« (Približujete se šoli. Prilagodite hitrost.) Na zaslonu navigacijskega
sistema se prikaže znak s podobo območja šole.
Dinamični iskalnik poti
Ta sistem voznika obvešča o najhitrejši poti do cilja s pomočjo podatkov, ki jih pridobi preko
mobilnih telefonov naročnikov navigacije CARWINGS, vključno z lastniki taksijev, in
podatkov o vozilih, ki jih zbere operater mobilne telefonije NTT DoCoMo, Inc. Vsi podatki se
pošiljajo Nissanovemu strežniku, ki jih procesira v prometne informacije. Nissanov strežnik te
informacije posreduje voznikovemu navigacijskemu sistemu, kjer se na zaslonu prikažejo v
obliki zemljevidov, na katerih je označen potek prometa za širše geografsko območje, kot je
to možno pri starejšem sistemu VICS (Vehicle Information and Communications System),
javni storitvi, ki oddaja podobne informacije preko multipleksnega sistema FM ter radijskih
valov in infrardečih signalov.
Opozorila na vozila in opozorila na hitrost so bila testirana do konca poslovnega leta 2007.
Dinamični iskalnik cest pa so testirali do konca poslovnega leta 2008.
Nissanov inteligentni prometni sistem se pripravlja v sodelovanju s podjetjem NTT DoCoMo,
proizvajalcem zabavne elektronike Matsushita Electric Industrial Co., Ltd., in proizvajalcem
navigacijskih sistemov in programske opreme za vozila Xanavi Informatics Corp.
Pri Matsushita Electricu so razvili obcestne optične naprave za testiranje v sodelovanju z
japonsko policijsko agencijo National Police Agency, policijskim uradom prefekture
Kanagawa in japonskim združenjem za upravljanje prometa Universal Traffic Management
Society (UTMS).
Na podlagi rezultatov preizkusa pri Nissanu načrtujejo uvedbo svojega inteligentnega
prometnega sistema na Japonskem in v prihodnosti po vsem svetu kot del njihovega
prizadevanja za zmanjšanje števila prometnih nesreč in prometnih zastojev. Pri Nissanu so si
38
zastavili cilj, da na Japonskem do leta 2015 v primerjavi z letom 1995 razpolovijo število
smrtnih žrtev in hudih poškodb v prometnih nesrečah, v katerih so udeležena Nissanova
vozila.
3.2.1 Pregled slovenskih spletnih zemljevidov in aplikacij na osnovi GIS
Google, Microsoft, Yahoo!, so le največji ponudniki spletnih storitev GIS na svetu.
Uporabniku omogočajo dokaj enostavno pregledovanje zelo različnih prostorskih podatkov,
po navadi kar v svetovnem merilu. Če smo pošteni, je veliko podatkov omejenih samo na
območje ZDA.
Zaradi majhne ekonomske zanimivosti slovenskega ozemlja za velike ponudnike spletnih
storitev GIS (majhna populacija, majhen trg in malo prometa) je Slovenija velikokrat
prikazana nenatančno, ni dobrih podatkovnih slojev, podatki so lahko zelo netočni itd. In kaj
storiti, ko si uporabnik zaželi podrobnejšega pogleda na Slovenijo?
Skoraj do vseh podrobnosti je Slovenijo moč pregledovati s pomočjo domačih ponudnikov
prostorskih podatkov. V nadaljevanju je navedenih nekaj največjih slovenskih ponudnikov in
značilnosti njihove ponudbe.
39
Atlas okolja ARSO prikazuje slika 3.24.
Slika 3.24: ARSO – Atlas okolja
Vir: ARSO, januar 2010.
Agencija RS za okolje je ena izmed prvih v Sloveniji ponudila vpogled v baze prostorskih
podatkov preko spleta. Aplikacija, preko katere dostopamo do njihovih podatkov, se imenuje
Atlas okolja (Interaktivni naravovarstveni atlas). Na spletu si lahko ogledamo podatke, ki se
navezujejo na njihovo dejavnost, kljub vsemu pa si je možno ogledati tudi bolj splošne
podatkovne sloje, kot so državne topografske karte, temeljni topografski načrti in digitalni
ortofoto posnetki. Poleg tega aplikacija omogoča tudi iskanje po naslovu.
Specifični podatkovni sloji se nanašajo na:
• naravo (Natura 2000, zavarovana območja, naravne vrednote),
• vode (povodja, hidrogeološka karta, podzemne vode),
• okolje (občutljiva območja, viri elektromagnetnih sevanj),
• poročanje EEA in EU (kopalne vode, pokrovnost tal po CORINE, komunalne čistilne
naprave, monitoringi različnih voda).
Ena izmed slabih strani spletne aplikacije je, da je okno prikaza zelo majhno in ga ni možno
bistveno povečati. Za ogled podatkov se je treba predhodno registrirati; registracija je
brezplačna.
ARSO že nekaj časa preizkuša novo verzijo interaktivnega atlasa in možnost ogleda
prostorskih podatkov preko mobilnega telefona.
40
Geopedia (glej sliko 3.25)
Geopedia je prvi interaktivni tematski atlas, baziran na ideji Wikipedije, ki uporabnikom
omogoča dodajanje in urejanje vsebin o Sloveniji. Geopedia je atlas, ki deluje kot
enciklopedija, saj se bo njena baza podatkov s stalnim urejanjem najrazličnejših vsebin širila
in tako postala edinstvena zakladnica informacij o Sloveniji.
Slika 3.25: Geopedia
Vir: Geopedia, januar 2010.
Geopedia izmed vseh omenjenih aplikacij še najbolj spominja na Google Earth ali kakšno
drugo podobno storitev, le da je prirejena za slovenski prostor. V svoji bazi ima ogromno že
obstoječih prostorskih podatkov različnih javnih institucij, poleg katerih lahko tudi uporabniki
dodajo svoje podatke. In ravno možnost dodajanja lastnih podatkov, povezanih s prostorom,
je ena izmed večjih razlik v primerjavi z ostalimi aplikacijami, kjer lahko uporabnik samo
pregleduje že obstoječe podatke.
41
GERK Ministrstva za kmetijstvo, gozdarstvo in prehrano (glej sliko 3.26)
Slika 3.26: GERK
Vir: Ministrstvo za kmetijstvo, gozdarstvo in prehrano, januar 2010.
Dejanska raba kmetijskih in gozdnih zemljišč je bila narejena v sklopu Ministrstva za
kmetijstvo, gozdarstvo in prehrano. Spletna aplikacija nudi (neregistriranim) uporabnikom
vpogled v prostorske baze podatkov ministrstva. Njihove baze podatkov se od drugih
razlikujejo predvsem po informacijah kmetijske narave. Nekaj primerov specifičnih slojev
podatkov: kataster, raba tal, GERK (Grafične Enote Rabe zemljišč Kmetijskih gospodarstev),
namakalni sistemi, koruzni hrošč …
Ena izmed boljših stvari aplikacije je tudi, da lahko poljubno spreminjamo velikost okna, v
katerem se podatki prikazujejo.
42
ZRC SAZU (glej sliko 3.27)
Slika 3.27: ZRC SAZU
Vir: Znanstvenoraziskovalni center SAZU, januar 2010.
Znanstvenoraziskovalni center SAZU nam s pomočjo svoje Interaktivne karte Slovenije
ponuja na ogled lastne zbirke podatkov, ki so plod mnogih študij in raziskav.
Nekaj primerov podatkovnih slojev: arheološka karta Slovenije, gozdne združbe Slovenije,
osončenost Slovenije, slovenski lingvistični atlas.
Ena izmed večjih pomanjkljivosti tega atlasa je zelo majhna velikost okna prikaza podatkov.
43
Zemljevid na Najdi.si (glej sliko 3.28)
Slika 3.28: Najdi.si
Vir: Najdi, informacijske storitve, d. o. o., januar 2010.
Ena izmed možnosti, ki jo ponuja spletni iskalnik po slovenskem prostoru, je tudi zemljevid
Slovenije. Enostavna in dobra rešitev hitrega iskanja določenega naslova. Poleg iskanja po
naslovu Najdi.si omogoča tudi implementacijo posameznega dela zemljevida na druge
spletne strani.
44
Telekom Slovenije (glej sliko 3.29)
Slika 3.29: Zemljevid Telekoma Slovenija
Vir: Telekom Slovenije, d. d., januar 2010.
Ena izmed dodatnih možnosti spletnega telefonskega imenika je tudi zemljevid, na katerem
se nam prikazujejo iskane lokacije. Poleg označevanja iskanih lokacij nam Telekomov
zemljevid omogoča tudi iskanje poti med dvema lokacijama. Možnost iskanja poti je odvisna
od tega, ali želimo potovati z avtomobilom ali peš. Pri avtomobilski možnosti nam ponudi še
najhitrejšo ali najkrajšo varianto. Iskanje poti nam lahko mnogokrat prihrani kakšen kilometer
odvečne poti. Zelo uporabno za prvo informacijo.
45
GeoStik (glej sliko 3.30)
Slika 3.30: GeoStik
Vir: Simbiont, d. o. o., januar 2010.
GeoStik je geografski spletni servis, kjer uporabnik na enostaven in grafičen način dostopa
do različnih vrst interaktivnih informacij, prav tako pa lahko z iStiki člani skupnosti dodajamo
svoje podatke o trenutnih dogodkih. Uporabniški vmesnik je znan in deluje na osnovi Google
Maps, ki je zelo enostaven in učinkovit. Informacije so ločene po kategorijah, dostop do
posameznih sklopov pa je omogočen prek menijev. Vedno je poleg iStika naveden tudi vir
podatkov, njegova spletna stran in e-poštni naslov. Vsak podatek je torej preverljiv in skladen
z originalnim zapisom.
GeoStik združuje geografske podatke za naslednje kategorije.
Promet:
• avtomatski števci prometa, vir podatkov: DRSC;
• prometna opozorila, vir podatkov: DARS;
• zastoji na cestah, vir: DARS;
• prometne nesreče, vir: DARS;
46
• zaprte ceste, vir: DARS;
• dela na cestah, vir: DARS.
Spletne kamere po svetu (člani skupnosti imajo možnost interaktivnega dodajanja kamer).
Vreme:
• trenutne temperature, viri: vremenske postaje ZEVS, Crometeo in privatne VP;
• radarske in satelitske slike padavin in oblačnosti, vremenske animacije, viri: ARSO,
Meteoalarm, ARPA, Vrijeme, Wetterzentrale;
• vremenske napovedi, viri: ZEVS, RTV SLO, ARSO, DHMZ;
• vremenska opozorila.
Zabava
Vpis iStikov za zabavo je povsem odprt za člane spletne skupnosti. Nanizani so:
• športni dogodki,
• rojstni dnevi,
• kava,
• film,
• igre,
• za otroke.
Prireditve
Vir iStikov pri prireditvah je lahko prek članov skupnosti ali pa v sodelovanju z ostalimi
servisi, ki te podatke že zbirajo:
• predavanja,
• razstave,
• koncert,
• predstava,
• delavnica.
47
Ostalo:
• intervencije, vir: Uprava RS za zaščito in reševanje;
• planinske koče v Sloveniji, vir: Planinska zveza Slovenije;
• storitev tukaj je še mnogo, mnogo možnosti za sodelovanje.
GeoStik je še vedno v fazi razvoja in bo v taki fazi še dolgo ostal. Le tako se lahko zagotovi
sprotno in učinkovito dodajanje novih informacij, ki bodo popestrile spletno storitev ter
omogočile njeno večjo uporabnost. Trenutno obsega geoStik skupnost 64 registriranih
uporabnikov, ki dodajajo svoje zapise v podatkovno bazo.
Portal Prostor Geodetske uprave Republike Slovenije (glej sliko 3.31)
Slika 3.31: Portal GURS
Vir: Geodetska uprava Republike Slovenija, januar 2010.
Portal Prostor je zelo uporaben za vse, ki jih zanimajo podatki o parcelah in stavbah na
področju Slovenije. Podatki so redno osveženi in v veliki meri javno dostopni. Pri parcelah je
možno pregledovati tudi lastništva in deleže posameznih lastnikov. Ta del se usklajuje z
zemljiško knjigo. Portal vsebuje naslednje prostorske podatke: evidenco trga nepremičnin,
nepremičnine, topografske in kartografske podatke, zbirni kataster gospodarske javne
infrastrukture in državni koordinatni sistem. Nepremičninske evidence so: zemljiški kataster,
kataster stavb, evidenca državne meje, register prostorskih enot in register nepremičnin.
Topografski in kartografski podatki so: topografski podatki in karte, ortofoto, aerofotografije,
digitalni model višin in register zemljepisnih imen. Zbirni kataster gospodarske javne
48
infrastrukture predstavlja temeljno nepremičninsko evidenco v Sloveniji, v kateri se
evidentirajo objekti gospodarske javne infrastrukture:
• prometna infrastruktura (ceste, železnice, letališča, pristanišča),
• energetska infrastruktura (infrastruktura za prenos in distribucijo električne energije,
zemeljskega plina, toplotne energije, nafte in naftnih derivatov),
• komunalna infrastruktura (vodovod, kanalizacija, odlagališča odpadkov),
• vodna infrastruktura,
• infrastruktura za gospodarjenje z drugimi vrstami naravnega bogastva ali varstva
okolja,
• drugi objekti v javno korist (elektronske komunikacije).
Osnovni namen zbirnega katastra je prikaz zasedenosti prostora z objekti gospodarske javne
infrastrukture, ki nam omogoča bolj načrtno urejanje prostora in varnejše izvajanje posegov v
prostor.
Gradbeni inženirski objekti gospodarske javne infrastrukture (GJI) tvorijo omrežja, ki služijo
določeni vrsti gospodarske javne službe državnega ali lokalnega pomena, oziroma tvorijo
omrežja, ki so v javno korist.
Geodetska uprava RS zagotavlja pogoje za delovanje zbirnega katastra gospodarske javne
infrastrukture. Zbirne podatke o vrsti in tipu objekta, njegovi lokaciji v prostoru in upravljavcu
vodi geodetska uprava v zbirnem katastru gospodarske javne infrastrukture na podlagi
podatkov, ki so evidentirani v posameznih katastrih gospodarske javne infrastrukture.
Lastniki objektov infrastrukture so dolžni zagotavljati posredovanje podatkov v zbirni kataster
na Geodetsko upravo Republike Slovenije.
Namen zbirnega katastra GJI je na enem mestu zagotavljati najbolj ažurne podatke o vseh
vrstah infrastrukture, ki so enostavno dostopni vsem uporabnikom. Ti podatki zagotavljajo
podporo procesom urejanja prostora in gospodarjenja z infrastrukturo.
Pravilnik o vsebini in načinu vodenja zbirke podatkov o dejanski rabi prostora podrobneje
določa vodenje in vzdrževanje zbirnega katastra gospodarske javne infrastrukture,
podeljevanje identifikacijskih oznak objektom gospodarske javne infrastrukture ter
posredovanje zbirnih podatkov v zbirni kataster.
49
V zbirnem katastru GJI so na enoten način vodeni podatki o objektih GJI na območju
Slovenije. Vodijo se podatki o vrsti in tipu objekta, geolokaciji, identifikacijski podatki objekta
in podatki o lastniku objekta.
Dostop do podatkov iz zbirnega katastra GJI je zagotovljen vsem uporabnikom.
Koordinatni sistem je temelj za prostorsko umestitev objektov ali pojavov v prostoru.
Prostorska umestitev pomeni določitev ali pripis koordinat točkam, ki opisujejo objekte ali
pojave, v okviru koordinatnega sistema.
Državni koordinatni sistem je uradno veljavni koordinatni sistem na območju države.
Države imajo za svoja državna ozemlja vzpostavljene državne koordinatne sisteme, ki so
rezultat znanstvenega in tehnološkega razvoja v času njihove vzpostavitve. Državni
koordinatni sistem mora najprej zadovoljiti potrebe države, vendar ob upoštevanju
mednarodnih standardov.
Geodetska uprava Republike Slovenije je pristojna za vzpostavljanje, vzdrževanje in vodenje
državnega koordinatnega sistema.
Državni koordinatni sistem je razdeljen na dve komponenti, in sicer horizontalno in višinsko
komponento. To pomeni, da položaj točke obravnavamo ločeno.
Horizontalno komponento (lego) obravnavamo v okviru horizontalnega koordinatnega
sistema in višinsko komponento (višine) obravnavamo v okviru višinskega (vertikalnega)
koordinatnega sistema.
50
CVIS DRSC (glej sliko 3.32)
CVIS DRSC je na spletnem naslovu: http://nt-gisa.cgsplus.si/ddc/.
Slika 3.32: CVIS DRSC
Vir: CGS plus, d. o. o., januar 2010.
Cestno vremenski informacijski sistem Direkcije Republike Slovenije za ceste v okviru
Ministrstva za promet (CVIS DDC) je izdelal CGS plus, d. o. o. Deluje kot spletna aplikacija
in prikazuje vremenske podatke, ki jih merijo posamezne merilne postaje. Slednje so
postavljene ob državnih cestah. Možno je pregledovati trenutno stanje na vseh postajah.
Prav tako lahko izberemo tabelarični prikaz izmerjenih vrednosti. Poudariti je treba, da je
sistem javno dosegljiv in vsebuje tudi nekatere podatke, ki so zanimivi samo za vzdrževalce
cest, ne pa tudi za splošne uporabnike. Na tej spletni strani so omogočene tudi standardne
funkcije GIS za delo z zemljevidi. Za ogled GIS-a je treba namestiti Active-X kontrolo
Mapguide. Trenutno (januar 2010) je možno spremljati vremenske podatke z 22 vremenskih
postaj. Prikaz podatkov za posamezno merilno mesto je prikazan na sliki 3.33.
51
Slika 3.33: Trenutni podatki za posamezno CVP
Vir: CGS plus, d. o. o., januar 2010.
3.3 Jezik KML Jezik KML ali Keyhole Markup Language (KML) vsebuje slovnico na osnovi XML in definicijo
formata datotek ter je namenjen ustvarjanju in shranjevanju geografskih funkcij, kot so točke,
črte, poligoni in modeli za prikaz v programih Google Zemlja, Google Zemljevidi in drugih.
Jezik KML lahko uporabljate za skupno rabo mest in informacij z drugimi uporabniki teh
programov. Primer datotek KML lahko najdete na spletnem mestu skupnosti Google Zemlja,
ki opisuje zanimive funkcije in mesta (Google, januar 2010).
Datoteko KML program Google Zemlja obdela na podoben način kot spletni brskalniki
datoteke HTML in XML. Podobno kot jezik HTML ima tudi jezik KML strukturo na osnovi
oznak z imeni in atributi za prikaz posebnih značilnosti. Zato program Google Zemlja deluje
kot brskalnik za datoteke KML.
Datoteke formata KML lahko uporabljamo za:
• prikaz ikon in nalepk za označitev posameznih lokacij na Zemljinem površju;
• ustvarjanje različnih pogledov na posamezne enkratne izdelke;
• uporabo prosojnic, dodanih na površje ali zaslon;
• določevanje stilov prikaza;
• pisanje opisov prikazov HTML, vključno s hiperpovezavami in vgrajenimi slikami;
• uporabo imenikov za hierarhično združevanje prikazov;
• dinamično posodabljanje datotek iz oddaljenih ali lokalnih omrežnih mest;
• doseganje podatkov KML, temelječih na spremembah v 3D-pogledu;
• prikaz COLLADA 3D-predmetov.
52
Ustvarjanje in skupna raba datotek KML
Datoteke KML lahko ustvarimo z uporabniškim vmesnikom Google Earth, za kar lahko
uporabimo XML ali preprost urejevalnik besedila, na primer Notepad (Beležnica), ki je že
priložena operacijskim sistemom Windows. Datoteke tega formata morajo imeti ime v obliki
*.kml. Datoteke KML in z njimi povezane slike (če obstajajo) je mogoče z uporabo formata za
stiskanje ZIP skrčiti v datoteke KMZ. Če želimo deliti svoje datoteke KML in KMZ, jih lahko
pošiljamo po e-pošti, lahko gostujejo na lokalnem strežniku za izmenjavo v zasebne namene
ali gostujejo na javnem spletnem strežniku. Tako kot spletni brskalniki prikažejo datoteke
HTML, brskalniki Earth, kot je Google Earth, prikažejo datoteke KML. Ko smo pravilno
nastavili strežnik in spletni naslov naših datotek KML, si jih vsakdo, ki ima nameščen Google
Earth, lahko ogleda preko spletnega strežnika (Google Earth, februar 2010).
Veliko aplikacij omogoča prikaz datotek KMZ: poleg Google Earth, Google Maps in Google
Maps za mobilne naprave tudi NASA WorldWind, ESRI ArcGIS Explorer, Adobe Photoshop,
AutoCAD, in Yahoo! Pipes.
3.4 NET Framework (.NET ogrodje)
Na začetku devetdesetih let prejšnjega stoletja, natančneje leta 1992, se je začel razvoj
svetovnega spleta (WWW oziroma World Wide Web) (Wikipedia, januar 2010). Ravno
svetovni splet je danes najbolj poznan in razširjen del interneta. Svetovni splet je zaradi
svojega hitrega razvoja zelo pripomogel k veliki priljubljenosti interneta po vsem svetu. Pri
mnogih uporabnikih je svetovni splet postal kar sinonim za internet. Tako danes večina ljudi,
ko govori o internetu, govori pravzaprav o svetovnem spletu in o spletnih straneh, čeprav je
internet sam precej več kot to.
Vzporedno z razvojem svetovnega spleta je šel naprej tudi razvoj tehnologij, ki omogočajo
njegovo uporabo na vseh področjih računalništva in še dlje. Zgodovinsko gledano so se
najprej pojavili spletni programski jeziki tipa »Common Gateway Interface« (CGI). Hypertext
Preprocessor (PHP) se je pojavil prvič že leta 1995. Popularen pa je postal šele v svoji tretji
različici iz leta 1997.
Nekoliko pred popularizacijo PHP je v svetovni splet vstopil Microsoft, in sicer z izdajo Option
Packa za operacijski sistem Windows NT Server. V okviru tega paketa je Microsoft uvedel
pomembno novost: prvo različico njegovega spletnega programskega jezika Active Server
Pages (ASP). Dve leti pozneje, z izdajo operacijskega sistema Windows 2000, je izšla
različica ASP 3.0, ki je bila tudi zadnja različica klasičnega ASP-ja.
53
Že takrat se je pokazalo, da Microsoftov ASP po svojih zmogljivostih precej zaostaja za PHP-
jem. Poleg tega pa je imel PHP tudi odprtokodno licenco (Open Source) in je deloval na
brezplačnih operacijskih sistemih, temelječih na tehnologiji Linux/Unix. Ravno zaradi tega je
Microsoft opustil razvoj stare tehnologije in začel razvijati novo tehnologijo, za katero se je
kasneje pokazalo, da predstavlja revolucijo v svetovnem spletu in informatiki na splošno.
V začetku leta 2001 je Microsoft objavil osnovno arhitekturo svoje nove tehnologije,
imenovane .NET. Sredi leta 2002 je bil dokončan izdelek .NET Framefork 1.0 in Visual
Studio 2002.
.NET Framework predstavlja osnovo .NET. Poenostavljeno povedano je to sistem, ki
nadgrajuje zmogljivosti operacijskega sistema. Govorimo o posebnem okolju, ki s svojimi
možnostmi in vnaprej pripravljenimi rešitvami programerjem omogoča enostavnejši in hitrejši
razvoj vseh vrst in oblik aplikacij.
Ogrodje je razdeljeno na tri dele (DePetrillo, 2002: 51):
• izvajalnik kode skupnega jezika (CLR),
• knjižnice razredov in
• storitve (znotraj .NET) in spletne storitve.
Te komponente določajo, kaj je .NET.
Bistveni sestavni del .NET Frameworka se imenuje Common Language Runtime (CLR). CLR
je programski sistem, v katerem se izvaja programska koda. Ko uporabnik požene aplikacijo,
pisano za okolje .NET, jo CLR izvede in poskrbi za njeno stabilnost in funkcionalnost.
Ukazi v programih se v realnem času prevajajo v izvorno strojno kodo, ki jo računalnik
razume. To izvaja prevajalnik JIT (Just In Time Compiler). Ravno to prevajanje v izvorno
kodo je omogočilo prenos tehnologije .NET tudi na druge operacijske sisteme, kot sta na
primer Linux ali MacOS. To se izvede s pomočjo tretjeosebnega »mono« sistema (ime je
izbral razvijalec sistema in v španščini pomeni opica).
Ker prevajanje upočasni delovanje aplikacij, se izvede samo enkrat. Rezultati prevajanja pa
se shranijo za kasnejšo ponovno uporabo brez prevajanja.
54
Programe za okolje .NET lahko pišemo v različnih programskih jezikih, med katerimi so vsi
najpogosteje uporabljani (C#, J#, VB.NET …). Dejstvo je, da CLR ni treba razumeti
nobenega od teh programskih jezikov. Ukaze dobiva izključno v jeziku, imenovanem
Microsoft Intermediate Language (MSIL). Pravila tega jezika temeljijo na specifikaciji
Common Language Specifications (CLS). Iz povedanega izhaja, da mora torej obstajati
prevajalnik, ki bo programski jezik, ki ga uporablja programer, prevedel v MSIL, tako da ga
bo CLR lahko razumel. Te prevajalnike poznamo pod oznako prevajalniki IL. Dostopni so za
veliko število programskih jezikov. Microsoft je izdal prevajalnike IL za pet jezikov: C#, J#,
C++, Visual Basic in JScript. Različni drugi proizvajalci programske opreme pa so pripravili
še prevajalnike IL za mnoge druge jezike, na primer: Perl, Python, Cobol, Eiffel …
Ker se torej vsi omenjeni programski jeziki najprej prevedejo v MSIL, je popolnoma vseeno, v
katerem jeziku bomo programirali. Iz tega izvira tudi druga velika prednost .NET. To je
večjezično pisanje aplikacij. Sedaj ni več potrebno, da vsi programerji, ki delajo na istem
projektu, uporabljajo isti programski jezik. Pomembno je le, da .NET podpira njihov
programski jezik oziroma da obstaja prevajalnik IL za ta jezik.
CLR ponuja izjemne možnosti, ki pa same po sebi niso dovolj uporabne, če jih gledamo z
uporabniškega stališča. Ravno zaradi tega v .NET Frameworku obstajajo nizi razredov, ki
omogočajo hitro in enostavno uporabo številnih uporabnih možnosti, ki jih ponuja CLR.
Prva in osnovna skupina razredov se imenuje Base Class Library (BCL). Vsebuje osnovne
funkcionalnosti, ki se uporabljajo pri programiranju (branje tipkovnice, preverjanje varnostnih
pravic, mrežno komunikacijo, transformacijo besedil …). Posebno nadgradnjo te osnovne
knjižnice predstavlja niz razredov, zadolženih za komunikacijo s podatkovnimi bazami
(ADO.NET) in XML-om. Ti razredi omogočajo komunikacijo s podatkovnimi bazami, kot so
MS Access, SQL server, Oracle … Podpirajo pa tudi upravljanje s podatki v dokumentih
XML.
Web Forms je del skupine razredov, imenovane tudi ASP.NET, in je zadolžen za razvoj
spletnih aplikacij. ASP.NET je naslednik že omenjenega ASP, vendar vsekakor ni njegova
novejša različica. ASP.NET predstavlja prihodnost spletnega programiranja. Tako
imenovane Web Forms vsebujejo vse objekte, ki so potrebni za objektno programiran pristop
h generiranju vsebin HTML, ki predstavljajo končni izdelek tega tipa spletnih aplikacij.
Web Services so namenjeni standardni komunikaciji med aplikacijami s pomočjo sporočil
SOAP, ki se prenašajo po spletu. .NET prinaša novosti na področju spletnega servisa. Pravo
55
moč predstavlja možnost združitve različnih sistemov in aplikacij preko standardiziranega
načina komunikacije. Spletni servisi v bistvu predstavljajo spletne aplikacije, ki oddaljenim
programom omogočajo določene funkcije. Njihova uporaba je enostavna. V svoji aplikaciji
samo dodamo spletno referenco na želen spletni servis in dodamo njegov spletni naslov.
Servis lahko sedaj kličemo neposredno iz svoje aplikacije, kot da imamo opravka s katerim
koli drugim razredom, ki je v aplikaciji in ne dejansko nekje v svetovnem spletu. Seveda pa je
pogoj za delovanje servisa ta, da ima aplikacija dostop do interneta.
Windows Forms so standardni razredi za delo z okoljem Windows. V Microsoftu so na novo
izdelali skoraj vse objekte standardnega Windowsovega vmesnika. Vsekakor je velika novost
tudi tehnologija GDI+, ki omogoča napredno delo z grafiko.
3.5 Programski jezik C# (C Sharp)
C# je brez dvoma pravi jezik za uporabo v okolju .NET. Je čisto nov jezik, brez »prekletstva
združljivosti« in ponuja mnogo novih, vznemirljivih in obetajočih možnosti (Rasheed, 2006:
17).
C# je večmodelni programski jezik, je komponentno objektno orientiran, na razredih temelječ
jezik. Razvit je bil v Microsoftu v okviru pobude .NET.
Kasneje je bil odobren in standardiziran s strani Ecma (ECMA-334) in ISO (ISO/IEC 23270).
C# je eden od programskih jezikov, ki so bili razviti za Common Language Infrastructure
(Wikipedia, januar 2010).
CLI je odprt standard (objavljen pod ECMA-335 in ISO / IEC 23271), ki ga je razvil Microsoft.
Opisuje izvršljive kode v »runtime« okolju, ki tvorijo jedro Microsoft .NET Framework in
brezplačni odprtokodni aplikaciji Mono in Portable.NET. Standard opredeljuje okolje, ki
omogoča uporabo različnih višjih programskih jezikov v različnih operacijskih sistemih, ne da
bi jih bilo treba prevajati za vsak operacijski sistem posebej (glej sliko 3.34).
56
Slika 3.34: Shema CLI
Vir: Wikipedia, januar 2010.
Razvojno ekipo za programski jezik C# je vodil Anders Hejselberg, ki je oblikoval tudi
programski jezik Turbo Pascal podjetja Borland. Za C# je dejal, da njegova objektno
usmerjena sintaksa temelji na jeziku C++ in še na nekaterih drugih. Oblikovalec
programskega jezika Java, James Gosling, je C# označil za imitacijo Jave. Zadnja različica
C# je 3.0 in je bila izdana v povezavi s .NET Framework 3.5 leta 2007. Trenutno je v fazi
razvoja različica C# 4.0.
Uporaba imena C# je bila navdahnjena z glasbeno notacijo, kjer »#« označuje, da mora biti s
tem znakom označena nota zaigrana za pol tona višje. Podobno je tudi z imenom
programskega jezika C++, kjer »++« pomeni, da mora biti spremenljivka povečana za 1.
Znak »#« prav tako razumemo kot mrežo štirih znakov »+«. Tudi to naj bi predstavljalo
nadgradnjo jezika C++. Zaradi tehničnih omejitev in dejstva, da znaka za višaj ni na
standardni tipkovnici, je bil izbran tako imenovani numerični znak »#«. Ta znak je uporabljen
tudi v specifikaciji jezika ECMA-334. V posameznih primerih, kjer je uporaba standardnega
57
višaja možna, pa ga Microsoft še vedno uporablja. Znak »#« se uporablja tudi pri številnih
drugih jezikih .NET, ki so izpeljanke iz že obstoječih jezikov, na primer: J#, A#, Eiffel#. Tudi
nekatere knjižnice so označene s tem znakom, kot na primer Cocoa# ali Qt#, ki so izpeljane
iz osnovnih različic za potrebe .NET.
Kot sem že prej navedel, je programski jezik C# standardiziran. To področje ureja standard
Ecma-3. V nadaljevanju bom nekoliko bolj predstavil ta standard.
Ta mednarodni standard temelji na predlogu Hewlett-Packarda, Intela in Microsofta. C# je bil
razvit v podjetju Microsoft, najpomembnejši ustvarjalci jezika pa so bili Anders Hejselberg,
Scot Witamuth in Peter Golde. Prvo splošno razširjeno različico jezika C# je izdal Microsoft
julija 2000 kot del pobude .NET Framework.
Tehnični odbor Ecma 39 (Technical Committee TC39) delovna skupina 2 (Task Group TG2)
je bila ustanovljena septembra leta 2000. Njen namen je bil izdelati standard za C#. Takrat je
bila ustanovljena tudi delovna skupina (TG3), katere naloga je bila izdelava standarda za
knjižnico in delovno okolje, imenovano Common Language Infrastructure (CLI). CLI temelji
na .NET Framework. V praksi seveda ni nujna uporaba Microsoftovih knjižnic, vendar pa
morajo biti izpolnjene minimalne zahteve za CLI, ki jih uvaja standard C#.
Ob razvoju C# so želeli doseči naslednje cilje:
• C# mora biti preprost, sodoben, večnamenski in objektno orientiran programski jezik.
• Jezik in uporaba le-tega morata zagotavljati podporo določenim programerskim
načelom, kot so: močna kontrola vnosov, preverjanje omejitev razporeditvenih
omejitev, zaznavanje poskusov uporabe neinicializiranih spremenljivk in samodejno
»zbiranje odpadkov«. Pomembne so robustnost, trajnost in učinkovitost programerjev.
• Jezik je namenjen za razvijanje programskih delov, primernih za uporabo v
distribuiranih okoljih.
• Prenosnost izvorne kode je pomembna še posebej za programerje, ki so do zdaj
uporabljali jezika C in C++.
• Zelo pomembna je tudi internacionalizacija jezika.
• C# mora biti primer za izdelavo aplikacij tako za gostiteljske kot tudi za vsebovane
sisteme. Spekter uporabe mora segati od zahtevnih operacijskih sistemov do zelo
majhnih z določenimi funkcijami.
58
• Čeprav naj bi bile aplikacije, izdelane v C#, varčne, kar se tiče porabe spomina in
procesorske moči, ni namen jezika C# tovrstno tekmovanje z jezikom C ali zbirnimi
jeziki.
Projekt standardizacije jezika C# so podprla številna podjetja in ustanove z vsega sveta
(ActiveState, Borland, Netscape, Novell, Sun, Hawlett-Packard, IBM, Intel, Microsoft, IT
University of Copenhagen, Monash University, University of Canterbury …). Razvoj te
različice standarda se je začel januarja 2003.
Mednarodni standard določa obliko in podaja razlago programov, napisanih v jeziku C#.
Tako določa:
• prikaz oziroma izgled programov, izdelanih s C#,
• skladnjo (sintakso) in omejitve jezika C#,
• semantična pravila razlage programov, izdelanih s C# in
• omejitve in zahteve, ki jih postavlja ustrezna uporaba jezika C#.
Standard pa ne določa:
• metode, po kateri naj se C# programe pretvori za uporabo v sistemih za obdelavo
podatkov,
• metode, po kateri naj sistemi za obdelavo podatkov kličejo aplikacije C#,
• metode, po kateri se vhodni podatki pretvorijo v podatke, primerne za uporabo v
aplikaciji C#,
• metode, po kateri naj se pretvarjajo podatki, ki so izhodni produkt aplikacij C#,
• velikosti oziroma zahtevnosti programa in njemu pripadajočih podatkov, ki bi lahko
presegli zmogljivosti posameznega sistema za obdelavo podatkov oziroma zmogljivosti
določenega procesorja, in
• minimalnih zahtev za sistem za obdelavo podatkov, da bi bil še sposoben ustrezno
podpirati uporabo programov C#.
Standard zahteva tudi določene skladnosti. Te so predvsem pomembne za naslednje
uporabnike C#:
• za oblikovalce, uvajalce in vzdrževalce aplikacij C#,
• za državne in poslovne pravne osebe, ki želijo nabavljati aplikacije C#,
59
• za preizkuševalne organizacije, ki želijo izdelati testna poročila o aplikacijah C#,
• za programerje, ki želijo uporabiti določeno kode posamezne aplikacije C# v drugi
aplikaciji C#,
• za predavatelje, ki želijo učiti o standardu C# in
• za avtorje, ki želijo pisati o standardu C#.
Skladnost je torej zelo pomembna in večji del tega mednarodnega standarda je namenjen
prav določitvi značilnosti, ki naj zagotovijo, da bodo programi C# in njihova implementacija
skladni. Večina standarda je normativna, določeni deli besedila pa so zgolj informativne
narave. Normativni del standarda se v nadaljevanju deli na obvezne in pogojne zahteve.
Glede na to tako ločimo strogo skladne in skladne programe. Strogo skladni programi lahko
vsebujejo samo obvezne elemente, medtem ko skladni programi lahko vsebujejo tudi
razširitve in pogojno normativne značilnosti.
Standard Ecma 334 pa se sklicuje tudi na nekatere druge standarde, na primer:
• ISO/IEC 23271:2005,
• ISO 31.11:1992,
• ISO/IEC 2382.1:1993,
• ISO/IEC 10646 in
• IEC 60559:1989.
Kot primer informativnega dela standarda pa lahko navedem odstavek, ki pojasnjuje pomen
posameznih okrajšav, ki so uporabljene v tem standardu.
3.6 MySQL
Avtor originalne različice MySQL je leta 1962 na Finskem rojeni Ulf Michael Widenius
(Wikipedia, januar 2010).
MySQL je sistem za upravljanje podatkovnih baz, napisan je v programskih jezikih C in C++,
ki deluje na različnih komercialnih in odprtokodnih operacijskih sistemih. Bistvene
programske niti so večopravilne. Za učinkovitost delovanja MySQL je pomembno, da lahko
izkoristi vse centralne procesorske enote, ki so na voljo. Programska koda je preizkušena.
60
MySQL najpogosteje uporablja zelo hitre diskovne table s stiskanjem indeksov, imenovane
MyISAM.
MySQL je relacijski sistem za upravljanje podatkovnih baz. Relacijska baza hrani podatke v
različnih ločenih tabelah, kar omogoča hitrost in fleksibilnost. Omenjene tabele so povezane
z relacijami, tako da je mogoče po želji združiti podatke iz več tabel. Del kratice SQL pri
MySQL pomeni »Structured Query Language« – najbolj pogost standardiziran jezik, ki se
uporablja za dostopanje do baze podatkov.
MySQL popolnoma ustreza standardu ANSI SQL 92 (Bilke, 2002: 44-45), vendar ponuja tudi
razne razširitve, čeprav mu po drugi strani manjkajo nekatere funkcije. V MySQL-u veljajo
naslednji dogovori glede imen podatkovnih zbirk, tabel, indeksov in drugih struktur:
• Imena so lahko sestavljena iz črk, številk in podčrtaja. Standardni nabor znakov je v
skladu s standardom ISO-8859-1 Latin 1.
• Imena tabel, indeksov in stolpcev so lahko dolga največ 64 znakov, medtem ko so
nadomestna imena (angl. alias) omejena na 256 znakov.
Imena polj lahko zapisujemo na tri načine:
• polje,
• tabela.polje in
• zbirka.tabela.polje.
Za daljšo obliko zapisa se odločimo le tedaj, ko nekega polja ne moremo enolično določiti.
Poseben pomen ima ničelna vrednost, ki se uporablja za nedefinirano polje ali neobstoječe
podatke. Ničelna vrednost NULL torej nikakor ne predstavlja števila 0 ali praznega niza
znakov » «.
MySQL je odprtokodna (Open Source) programska oprema. Odprti vir lahko uporablja in
spreminja vsak; vsakdo si lahko MySQL naloži z interneta in ga brezplačno uporablja.
MySQL uporablja GPL (GNU General Public Licecence), ki definira, kaj lahko naredimo s
programsko opremo v različnih primerih.
MySQL je zelo hiter, zanesljiv in enostaven za uporabo. Poleg tega ima zelo praktičen niz
značilnosti, ki so razvite v tesnem sodelovanju z uporabniki. MySQL je bil na začetku razvit
61
za hitrejše upravljanje zelo velikih podatkovnih baz. Povezanost z uporabniki, hitrost in
varnost so tisto, kar je naredilo MySQL za zelo uporabno orodje pri dostopu do baz podatkov
na internetu.
MySQL deluje na principu odjemalec – strežnik, pri čemer lahko strežnik namestimo kot
sistem, porazdeljen na več strežnikov. Obstaja veliko število odjemalcev, zbirk ukazov in
programskih vmesnikov za dostop do podatkovne baze MySQL.
4 RAZVOJ PROTOTIPNE APLIKACIJE
4.1 Zgradba sistema CVIS
V tem podpoglavju bom predstavil samo zgradbo sistema za zbiranje podatkov, ki se v
osnovi shranjujejo v napravah za shranjevanje podatkov, t. i. podatkovnikih ali »data
loggerjih« posameznih vremenskih postaj. V tej nalogi bodo uporabljeni podatki, ki jih
omogočajo vremenske postaje nemškega proizvajalca Lufft. V okviru celotnega CVIS se
uporabljajo tudi vremenske postaje drugih proizvajalcev. Shema CVIS je predstavljena na
sliki 4.1.
Slika 4.1: CVIS DARS
Vir: CGS plus, d. o. o. , januar 2010.
62
Izmerjene vrednosti lahko odčitavamo na vremenskih lokacijah neposredno v realnem času
na prikazovalnikih posameznih »data loggerjev« s komercialnim imenom OPUS (Lufft GmbH,
2006: 67–76). Ker pa so vremenske postaje postavljene na oddaljenih in predvsem nevarnih
mestih, je nujen avtomatiziran prenos podatkov v cestno bazo. Prenos podatkov se izvaja po
DARS-ovih optičnih povezavah. OPUS-i imajo standardni serijski priključek RS232, preko
katerega se podatki prenesejo do RS232/Ethernet pretvornika MOXA NPort 5110 ali NPort
5150. Tako preoblikovan signal pa je treba še pretvoriti v signal, ki bo primeren za prenos po
optičnem omrežju DARS-a. V ta namen se uporablja pretvornik proizvajalca Wizlan s
komercialno oznako WIZ 505. Tako preoblikovani podatki so sedaj pripravljeni za prenos v
cestno bazo, kjer jih za načrtovanje svojih akcij uporabljajo vzdrževalci avtocest. Seveda pa
preneseni podatki še niso primerni za takojšnjo uporabo. Potrebna je še programska
oprema, ki nadzoruje prenose, shranjevanje in prikaze teh podatkov na računalniških
zaslonih v cestni bazi. V ta namen se uporablja programska oprema nemškega proizvajalca
Informatik-Werkstatt iz Ulma. Njeno komercialno ime je SmartView3 in je izdelana posebej
za proizvajalca vremenske merilne tehnike Lufft iz Stuttgarta. Programska oprema
Smartview3 je sestavljena iz štirih neodvisnih programov. Njihovo medsebojno delovanje
prikazuje slika (slika 4.2).
Slika 4.2: Programski paket SmartView3
Vir: SmartView3 (version 1.3.10.), marec 2008: 4.
• SmartView Collector se uporablja za komunikacijo z »data loggerji«, za pridobivanje
podatkov iz njih in shranjevanje teh podatkov v podatkovno bazo MySQL.
63
• SmartCom je komunikacijski program, ki se uporablja za komunikacijo med vsemi
programi, ki sestavljajo SmartView3.
• SmartView3 je odjemalski program, ki se uporablja za konfiguracijo vseh modulov
SmartView3. Načrtovana je tudi razširitev tega programa, ki bi omogočala on-line
prikaz in analizo podatkov.
• SmartWeb je program, ki generira celotno spletno stran v obliki strani HTML . Merilni
rezultati so na njih prikazani v tabelah in diagramih.
Collector se izvaja v ozadju. Po zagonu se pomanjša na ikono v sistemski vrstici. Ob
dvojnem kliku na to ikono se nam odpre okno, ki je razdeljeno v dva dela. V zgornjem delu
okna so prikazane vse vremenske postaje in po vrstnem redu klicanja. V spodnjem delu
okna pa so izpisana statusna sporočila v zvezi s komunikacijo med programsko opremo in
vremenskimi postajami. Nastavitve konfiguracije programa Collector so shranjene v
podatkovni bazi MySQL ali pa v datoteki Collector.ini.
Modul SmartCom zagotavlja programoma SmartView3 in SmartWeb dostop do podatkovne
baze MySQL. Prav tako vsebuje funkcije za avtomatski izvoz in uvoz podatkov in funkcije za
pošiljanje alarmnih obvestil preko elektronske pošte. Prav tako kot Collector tudi SmartCom
dostopa do baze MySQL preko knjižnice libmysql.dll, ki jo naložimo skupaj s programsko
opremo MySQL. Seveda mora biti ta knjižnica inštalirana tako, da lahko SmartCom dostopa
do nje, torej v istem imeniku kot SmartCom oziroma v ustreznem sistemskem imeniku
operacijskega sistema Windows. Tudi SmartCom teče v ozadju in je pomanjšan na ikono v
sistemskem vrstici. Ob dvojnem kliku na to ikono se odpre okno, ki je razdeljeno na tri dele.
V zgornjem delu so prikazane izvozno/uvozne dejavnosti. V srednjem delu okna so prikazani
vsi programi, ki so povezani s programom SmartCom. V spodnjem delu pa so prikazana
sporočila o napakah in druga obvestila. Nastavitve modula SmartCom so shranjene v
datoteki SmartCom.ini.
SmartWeb je modul, ki kreira spletne strani in jih nalaga na spletni strežnik (če je nastavljen
ftp protokol za to stran). SmartWeb komunicira z modulom SmartCom in tako posredno
dostopa do podatkov v podatkovni bazi MySQL. Program je zasnovan tako, da stalno teče,
zagotoviti pa moramo, da se modul SmartCom zažene prej kot SmartWeb. Tudi ta modul
teče v ozadju, kar vidimo kot ikono v sistemski vrstici. Dvojni klik na to ikono nam odpre na
dva dela razdeljeno okno. V zgornjem delu okna so izpisane vse generirane spletne strani in
čas njihove zadnje posodobitve. V spodnjem delu okna pa so izpisana sporočila o morebitnih
napakah in druga obvestila v zvezi z delovanjem modula SmartWeb.
64
SmartView3 je odjemalec GUI za operacijski sistem Windows. Uporablja se za nastavitve
vremenskih postaj za modul Collector ter spletnih strani za SmartWeb. SmartView3 preko
modula SmartCom komunicira s podatkovno bazo MySQL.
Za učinkovito delovanja celotne programske opreme SmartView3 morajo biti izpolnjene
določene zahteve v zvezi s strojno opremo in operacijskim sistemom. Proizvajalec navaja
naslednje minimalne zahteve:
• PC z operacijskim sistemom Windows 2000/XP ali njegov ekvivalent;
• minimalno 512 MB RAM-a (priporočljivo 1GB);
• hitrost procesorja je odvisna od števila vremenskih postaj, ki jih mislimo spremljati,
števila merilnih senzorjev na teh postajah, števila strani HTML, ki jih nameravamo
generirati, in intervala pridobivanja podatkov s posameznih merilnih mest. Priporočljiv
je procesor z dvojnim jedrom Pentium 4 /HT/;
• inštalirana mora biti programska oprema MySQL 4.1 ali 5.0 oziroma novejša;
• hitra povezava LAN je potrebna za prenos velike količine podatkov do spletnega
strežnika;
• velikost diska za potrebe podatkovne baze (120 KBytov in še dodatno za vsako postajo
po 1 KByte) je potrebna za konfiguracijske nastavitve. Vsaka senzorska vrednost pa
porabi približno 110 Bytov.) Upoštevati je treba, da zaradi optimizacije in nadgradnje
podatkovne baze rezerviramo vsaj še enkrat toliko prostora na trdem disku.
Priporočljiva minimalna velikost diska je 8 GB;
• določen del prostora na disku pa moramo rezervirati tudi za shranjevanje spletnih
strani, ki jih oblikujemo s pomočjo programa SmartWeb.
Za delovanje celotnega sistema je torej nujna namestitev programske opreme MySQL. Pri tej
namestitvi moramo upoštevati določene zahteve, ki jih postavlja proizvajalec programske
opreme SmartView3. MySQL je treba inštalirati z administratorskimi pooblastili. Po zaključeni
inštalaciji pa moramo računalnik obvezno ponovno zagnati, saj mora delovati servis MySQL ,
da se lahko ustvari podatkovna baza Collector, ki vsebuje vse podatke, potrebne za
delovanje SmartView3. Collector ne uporablja transakcijske podatkovne baze, zato ob
inštalaciji MySQL izberemo možnost »Non-Transactional Database Only«. To zadostuje
vsem potrebam podatkovne baze Collector. SmartView uporablja hitre tabele MyISAM brez
podpore transakcij, predvsem zaradi potreb po hitrem delovanju. Kadar pričakujemo velike
količine podatkov, moramo imenik s podatki generirati na particiji NTFS, ta namreč podpira
samo datoteke do velikosti 4 GByte. Kadar MySQL ni inštaliran na istem računalniku kot
65
SmartView3, moramo za potrebe komunikacije med njima pustiti odprt port 3306 v požarnem
zidu. Ob inštalaciji MySQL definiramo strežnik kot razvojni računalnik in s tem dosežemo, da
strežnik MySQL uporablja minimalno količino delovnega spomina. V pogovornem oknu, kjer
se določa število povezav s strežnikom, izberemo ročno nastavitev in določimo 50 povezav.
Prav tako moramo omogočiti povezave TCP/IP , in sicer na vnaprej določenem portu 3306. V
istem pogovornem oknu ob inštalaciji omogočimo tudi možnost »Enable Strict Mode« in s
tem zagotovimo, da se bo strežnik obnašal kot klasičen podatkovni strežnik. Omogočimo tudi
podporo za večjezičnost in delovanje strežnika kot servis operacijskega sistema Windows z
imenom MySQL ter izberemo avtomatski zagon strežnika. Uporabno je tudi, da dovolimo
dostop do servisa preko ukazne vrstice DOS operacijskega sistem Windows.
Administratorskega dostopnega gesla (ROOT) ni treba spreminjati.
Zaradi vzdrževanja podatkovne baze je koristno, da inštaliramo tudi programsko opremo
administrator MySQL . Administrator MySQL in MySQL lahko brezplačno naložimo s spleta
in uporabljamo v skladu z licenčnimi pogoji.
Inštalaciji strežnika MySQL in administratorja MySQL sledi inštalacija programske opreme
SmartView3. Podrobnejša namestitev je opisana v spremni dokumentaciji programske
opreme različice 1.1.3. Predvsem je pomembno, da pravilno nastavimo parametre za
povezavo s strežnikom MySQL. Predvsem moramo določiti mesto, kjer je MySQL, vpisati
moramo administratorjevo geslo, določiti ime baze ter tudi uporabnika MySQL in njegovo
geslo. Po vnosu teh podatkov program SmartCom ustvari (ob posodobitvah programa
SmartView pa posodobi) podatkovno bazo Collector. Ostale nastavitve se nanašajo na
delovanje in komunikacijo SmartView3 in vremenskih postaj oziroma »data loggerjev«
OPUS200. Treba je tudi poudariti, da obstajata dve vrsti licence za uporabo programske
opreme SmartView3. Minimalna licenca omogoča namestitev in komunikacijo z največ petimi
vremenskimi postajami, razširjena licenca po omogoča neomejeno število vremenskih postaj,
s katerimi lahko SmartView3 komunicira in obdeluje izmerjene vrednosti.
4.2 Opis uporabljene aplikacije GIS Google Earth
Pri praktičnem delu te naloge sem moral najprej izbrati primerno aplikacijo GIS, s pomočjo
katere sem izvedel primer prikaza vremenskih podatkov na javno dostopni spletni strani. Iz
že opisanih razlogov sem primer izvedel kot demo verzijo in prikazuje zgodovinske podatke
oziroma podatke, ki jih je treba ročno vnesti v bazo. Za prikaz teh podatkov sem izbral
program Google Earth oziroma njegovo poslovenjeno različico Google Zemlja (Google Earth
5.1.3533.1731), ki uporablja strežnik kh.google.com.
66
• Plošča »Iskanje« − uporabimo jo za iskanje mest in navodil za pot ter za upravljanje
rezultatov iskanja. V različici Google Zemlja EC so lahko prikazani tudi drugi jezički.
• Pregledni zemljevid − uporabimo ga za dodaten pogled Zemlje.
• Pokaži/skrij stransko vrstico − to možnost kliknemo, če želimo skriti ali prikazati
stransko vrstico (plošče »Iskanje«, »Mesta« in »Sloji«).
• Oznaka položaja − to možnost kliknemo, če želimo označiti lokacijo.
• Poligon − to možnost kliknemo, če želimo dodati poligon.
• Pot − to možnost kliknemo, če želimo dodati pot (črto ali črte).
• Prosojnica s sliko − to možnost kliknemo, če želimo na Zemljo dodati prosojnico s sliko.
• Merjenje − to možnost kliknemo, če želimo izmeriti razdaljo ali velikost območja.
• Sonce − to možnost kliknemo, če želimo po pokrajini prikazati sončno svetlobo.
• Nebo − to možnost kliknemo, če si želimo ogledati zvezde, ozvezdja, galaksije, planete
in Zemljino luno.
• E-pošta − to možnost kliknemo, če želimo po e-pošti poslati pogled ali sliko.
• Tiskanje − to možnost kliknemo, če želimo natisniti trenutni pogled Zemlje.
• Ogled v Google Zemljevidih − to možnost kliknemo, če želimo trenutni pogled prikazati
v Google Zemljevidih v svojem spletnem brskalniku.
• Navigacijski gumbi – uporabimo jih za povečanje ali pomanjšanje, ogled in premikanje.
• Plošča »Sloji« − uporabimo jo za prikaz zanimivosti.
• Plošča »Mesta« − uporabimo jo za iskanje, shranjevanje, urejanje in ponovni obisk
oznak položajev.
• Dodaj vsebino − to možnost kliknemo, ko uvozimo zanimivo vsebino iz galerije KML.
• Pregledovalnik 3D − v tem oknu si ogledamo Zemljo in njen relief.
• Vrstica stanja − tukaj si ogledamo koordinate, nadmorsko višino, datum posnetka in
stanje pretoka.
Pet zanimivih in preprostih stvari, ki nam jih omogoča program Google Zemlja:
Ogled katere koli lokacije na Zemlji:
• kliknemo Pojdi do. V vnosno polje vnesemo lokacijo in kliknemo gumb za iskanje. V
rezultatih iskanja (plošča »Mesta«) dvokliknemo lokacijo. Program Google Zemlja nas
bo popeljal na želeno lokacijo.
67
Predstavitev sveta:
• na plošči »Mesta« odpremo mapo Nauči se in raziskuj in dvakrat kliknemo Razišči.
Izris poti z ene lokacije na drugo:
• pridobimo lahko navodila za vožnjo iz enega mesta v drugo in se popeljemo po celotni
poti.
Ogledamo si lahko različne zanimive lokacije in funkcije, ki so jih ustvarili drugi uporabniki
progama Google Zemlja:
• na plošči »Sloji« označimo možnost Predstavitev skupnosti. V pregledovalniku 3D se
prikažejo zanimive oznake položajev in druge funkcije. Če si želimo ogledati te
zanimivosti in jih raziskati, jih dvakrat kliknemo.
Ogledamo si lahko 3D-relief mesta:
• ta možnost je zanimivejša, če si ogledujemo hribovit ali gorat relief, na primer Veliki
kanjon. Pomaknemo se na želeno lokacijo, ko se v pogledu prikaže lokacija, z
drsnikom za povečanje/pomanjšanje nagnemo relief.
Nove funkcije v različici 5.0
V tej različici programa Google Zemlja so na voljo številne nove zanimive funkcije, kot so:
• Ocean – letimo in krmarimo pod oceanom ter raziskujemo podvodni relief. Prikažemo
lahko tudi gladino oceana.
• Predstavitev – lahko posnamemo, predvajamo in z drugimi delimo predstavitve po
meri, ki zabeležijo naša dejanja in premike v programu Google Zemlja.
• Zgodovinski posnetki – raziskujemo lahko nedavne in starejše slike.
• Mars – ogledamo si lahko posnetke in relief rdečega planeta.
68
Sistemske zahteve:
Če želimo program Google Zemlja uporabljati na osebnem računalniku z operacijskim
sistemom Windows, potrebujemo vsaj naslednje:
• operacijski sistem: Windows 2000, Windows XP, Windows Vista;
• procesor: 500 Mhz, Pentium 3;
• sistemski pomnilnik (RAM): najmanj 256 MB, priporočamo 512 MB;
• trdi disk: 400 MB nezasedenega prostora;
• hitrost omrežja: 128 Kbit/sek;
• grafična kartica: 3D s 16 MB VRAM-a;
• zaslon: 1024 × 768, 16-bitna barvna paleta »High Color«;
• DirectX 9 (za delovanje v načinu Direct X).
Če želimo program Google Zemlja uporabljati v operacijskem sistemu Mac, potrebujemo vsaj
naslednje:
• operacijski sistem: Mac OS X 10.4 ali novejšo različico;
• procesor: G4, 1 GHz ali hitrejši;
• sistemski pomnilnik (RAM): najmanj 256 MB, priporočamo 512 MB;
• trdi disk: 400 MB praznega prostora;
• hitrost omrežja: 128 Kbit/sek;
• grafična kartica: 3D z 32 MB VRAM-a;
• zaslon: 1024 x 768, »Thousands of Colors«.
Za Linux je bil program Google Zemlja preizkušen v operacijskem sistemu Ubuntu, različica
6.06, zagotovo pa deluje tudi v drugih. Strojne zahteve so naslednje:
• procesor: 500 Mhz, Pentium 3;
• sistemski pomnilnik (RAM): 256 MB;
• trdi disk: 500 MB nezasedenega prostora;
• hitrost omrežja: 128 Kbit/sek;
• grafična kartica: 3D s 16 MB VRAM-a;
• zaslon: 1024 x 768, 16-bitna barvna paleta »High Color«.
69
Od vseh naštetih funkcionalnosti, ki jih nudi splošno dostopna programska oprema Google
Zemlja, sem pri svoji nalogi izkoristil možnost dodajanja servisa KML za prikaz podatkov z
vremenskih postaj, ki so ob slovenskih avtocestah. Za ta prikaz je treba pripraviti ustrezno
datoteko v formatu KML, ki ga Google Zemlja uporablja. Google Zemlja lahko neposredno
uporabi tudi datoteko skrčenega formata KMZ.
4.3 Uporaba programskega jezika C# (C Sharp)
Programski jezik C# smo uporabili za izdelavo »data inserterja« in generatorja KML. Primer
generirane datoteke KML je prikazan v prilogi 1. Kot razvojno orodje smo uporabili
Microsoftov izdelek Visual Studio 2008. Programska koda je prikazana v prilogi 2. »Data
inserter« je program, ki poskrbi, da se generirajo naključni podatki, ki se kopirajo v
podatkovno bazo MySQL.
Za dostop do podatkov v podatkovni bazi in preverjanje podatkovne strukture baze smo
uporabili MySQL Workbench (SQL Development).
4.4 Uporaba jezika KML
Jezik KML je uporabljen za prikaz treh cestno vremenskih postaj na zemljevidu programske
opreme Google Earth. Naključni podatki se generirajo vsakih deset minut, aplikacija Google
Earth pa je nastavljena tako, da se osvežuje vsakih pet minut. Na ta način dosežemo, da
prikazani podatki res niso starejši kot deset minut. Naslednja slika prikazuje prikazno okno z
nastavitvami osveževanja (slika 4.3).
70
Slika 4.3: Nastavitev časa osveževanja
Vir: Lastni prikaz, marec 2010.
Slika 4.4 prikazuje izgled okna programske opreme Google Earth. Na njej vidimo prikazane
vse tri vremenske postaje (CVP Verd, CVP Šentjakob in CVP Prilipe). Vsaka postaja je
ponazorjena z ikono »sonček«. S klikom na ikono se nam odpre tako imenovani balon, v
katerem so trenutni vremenski podatki na izbrani cestno vremenski postaji. Prav tako imamo
izpisan tudi čas meritve. Standardna funkcija Google Earth pa nudi tudi storitev Do sem – Od
tu. Ta storitev omogoča prikaz najkrajše poti med dvema izbranima točkama na zemljevidu.
Enake podatke si je možno ogledati tudi s pomočjo različnih spletnih brskalnikov na spletni
strani http://maps.google.com/.
71
Slika 4.4: Prikaz podatkov z Google Earth
Vir: Lastni prikaz, marec 2010.
Slika 4.5 prikazuje izgled prikaza podatkov na strani Google maps.
Slika 4.5: Prikaz podatkov na spletni stani Google maps
Vir: Lastni prikaz, marec 2010.
72
Programska koda KML je prikazana v prilogi 1.
4.5 Struktura MySQL podatkovne baze Collector
Podatkovna baza, v kateri se shranjujejo vsi podatki v zvezi s cestno vremenskimi postajami
proizvajalca Lufft, se imenuje Collector. Aplikacija administrator MySQL nam omogoča
enostavno vzdrževanje in vpogled v MySQL podatkovno bazo Collector, ki jo prikazuje slika
4.6.
Slika 4.6: MySQL podatkovna baza COLLECTOR
Vir: Lastni prikaz, januar 2010.
Podatkovna baza se kreira (oziroma posodobi) ob prvem zagonu programa SmartView3. Za
vse aplikacije, ki uporabljajo podatke iz te podatkovne baze bodisi za analizo ali pa za
pregled meritev, velja, da berejo informacije iz naslednjih tabel: »stations« (vremenske
postaje, glej sliko 4.4), »sensor_values« (vrednosti senzorjev, glej sliko 4.5), »sensors«
(senzorji, glej sliko 4.7) in »units« (merske enote, glej sliko 4.7). Celotna baza Collector pa
skupaj vsebuje 40 različnih tabel.
73
Tabela »stations« zagotavlja podatek o času zadnjega uspešnega klicanja (pollinga)
posamezne vremenske postaje. To pomeni, da se stolpec »last_data« osveži vsakič, ko
postaja uspešno pošlje podatke v podatkovno bazo. Tabela »sensor_values« vsebuje
vrednosti, ki jih posamezni senzorji izmerijo. Podatki o vrstah senzorjev, ki so priključeni na
posamezno vremensko postajo, se hranijo v tabeli »station_sensors«. Tabela »sensors«
vsebuje splošne podatke o senzorjih (na primer: ime senzorja). V tabeli »units« pa so opisi
merskih enot za senzorske vrednosti. Vse ostale tabele so v glavnem namenjene
informacijam o nastavitvah, ki jih uporablja programski modul Collector.
74
Slika 4.7: Tabela »stations«
Vir: SmartView3 (version 1.3.10.), marec 2008: 91.
Tabela »stations« torej vsebuje vse podatke o posamezni cestno vremenski postaji. Nekateri
stolpci te tabele se osvežujejo ob vsakem klicanju postaje.
75
Slika 4.8: Tabela »sensor_values«
Vir: SmartView3 (version 1.3.10.), marec 2008: 91.
Tabela vsebuje vrednosti, ki jih izmerijo posamezni senzorji in jih vremenska postaja
posreduje v podatkovno bazo. Za vsako izmerjeno vrednost se vstavi v tabelo nova vrstica.
Glede na nastavitve »data loggerjev« na vremenski postaji se za vsak senzor lahko pojavijo
štiri različne vrednosti (povprečna, minimalna, maksimalna in skupna). Tip vrednosti je
določen v stolpcu »value_type«. Primarni ključi za to tabelo so: measure_time (čas meritve),
station_id (identifikacijska oznaka vremenske postaje), sub_id (identifikacijska oznaka »data
loggerja«), channel (kanal na »data loggerju«) in value_type (tip vrednosti). Tak enkratni
primarni ključ omogoča hiter dostop do iskane vrednosti v podatkovni bazi.
Indeks (station_id) je sestavljen iz station_id, sub_id, channel in measure_time ter omogoča
hiter dostop do zadnje izmerjene vrednosti za posamezni senzor.
Slika 4.9: Tabela »sensors«
Vir: SmartView3 (version 1.3.10.), marec 2008: 93.
76
Slika 4.10: Tabela »units«
Vir: SmartView3 (version 1.3.10.), marec 2008: 93.
Potrebni stavki SQL za poizvedbo v bazi MySQL so prikazani v prilogi 3.
4.6 Metodologija razvoja prototipne aplikacije
4.6.1 Extreme Prototyping
Extreme Prototyping je arhitekturni proces za razvoj aplikacij (predvsem spletnih aplikacij) v
smislu povečanja uporabnosti prototipov. Na višjem nivoju razdeli razvoj na tri faze
(Wikipedia, januar 2010). Prva faza je statični prototip, ki je sestavljen iz strani HTML in po
možnosti logičnega modela podatkov za podporo teh strani. Druga faza je proces kodiranja v
izbrani spletni okvir, s katerim se že pripravi popolnoma funkcionalne zaslonske slike. V tretji
fazi pa se že uvede izdelane storitve v uporabo. Proces se imenuje Extreme Prototyping
predvsem z namenom, da se opozori na drugo fazo postopka. V tej fazi se razvije
popolnoma uporaben uporabniški vmesnik (User Interface – UI). Značilno zanj je, da
upošteva predvsem storitve, ki so bile predvidene v pogodbi o izdelavi programske opreme
med naročnikom in izdelovalcem. Tak izdelek, podobno kot statični prototip HTML, se lahko
šteje kot prototip, čeprav je dinamičen.
Z uporabo Extreme Prototypinga se lahko bistveno skrajšajo razvojni cikli. Extreme
Prototyping omogoča doslednejše ocenjevanje in izdelavo projektov. Delo poteka hitreje,
ceneje in bolje. Extreme Prototyping pripomore k tem rezultatom predvsem z razdelitvijo
dolžnosti in nalog med več ekip in na ta način omogočenim vzporednim razvojem. Extreme
Prototyping posveča še dodaten poudarek končnim izdelkom.
Iterativni pristopi, kot je Extreme Programming, priporočajo gradnjo in oddajo delujočih
programov z majhnimi in pogostimi koraki. Še zlasti izvršljivo kodo je priporočljivo podajati
dnevno ali vsaj tedensko. Za dobro delovanje tega načina pa je kljub temu treba upoštevati
še nekatere predpostavke. Ekipa mora biti dovolj majhna, da dovoljuje stalne povratne
informacije. Kadar ekipa dela pri projektih, pri katerih se lahko pričakuje preklic le-teh, je tak
77
pristop še posebej upravičen. Extreme Programming deluje najbolje, če so vse delovne
skupine popolnoma predane delu pri projektu do njegovega konca.
Extreme Prototyping je s svojim trifaznim pristopom še posebej povezan z iterativnimi
procesi. Statična faza projektne izdelave prototipov zagotavlja prevzem problema iz
poslovanja. Dinamična faza izdelave prototipov zagotavlja hitro dobavo, ne glede na nivo
izvajanja storitev. Dobava in demonstracija v fazi dinamičnega prototipa uporabnikom
zagotavlja povratne informacije že na sredini projekta. Faza uvajanja storitev se lahko začne
vzporedno z dinamičnim prototipom. Tu se že jasno pokaže, kako je naročilo storitev
izpolnjeno. Primerno je, da se v vsaki fazi izvedejo iteracije.
Veliko projektov IT se začne z zahtevo po izdelavi modelov use-case. Od poslovnih
uporabnikov se pričakuje, da bodo te modele razumeli in podpisali pogodbo. Pogosto pa se
zgodi, da se poslovni tim izgubi med izmuzljivimi številkami in diagrami potekov. Toliko časa
se porabi za izdelavo teh diagramov poteka, da se na koncu porabi že vsa predvidena
sredstva, še preden je napisana ena sam vrstica kode. Ključ do uspeha je v čimprejšnji
izdelavi in uporabi prototipa HTML. Ta prototip mora biti karseda popoln. Tako se prototip
lažje preverja in se dogovarja o njegovi vsebini. Preglednost prototipov bo delovala kot
katalizator za dokončni izdelek.
Extreme Prototyping lahko prek statičnih prototipov predstavlja pomoč pri načrtovanju in
pripravi proračuna. Ocena proračuna ne sme temeljiti samo na dokumentu o viziji.
Vključevati mora vse faze projekta, vključno z izgradnjo in uvedbo. Ocene, ki temeljijo na tem
dokumentu, so subjektivne in zelo spremenljive. Preveliki pričakovani stroški lahko povzročijo
predčasen zaključek projekta. Namesto dajanja zahtev za predlog (request for proposal –
RFP) za celotno področje projekta lahko poslovna ekipa da RFP samo za statični prototip.
Tako imamo opravka s fiksnimi stroški in ocenjevanje je enostavnejše. Naslednje faze je
potem posledično lažje ovrednotiti in načrtovati.
Statični prototip lahko pomaga pri izogibanju tehnoloških tveganjem. Statični prototipi so
razviti z dobro znanimi in manj tveganimi tehnologijami, kot so HTML, CSS in JavaScript. Ker
so te tehnologije preverjene in zanesljive, je malo verjetno, da bo statični prototip zamujal ali
stal več, kot je bilo pričakovano. V nasprotju s tem bi z neposrednim prehodom v
ponavljajočo se fazo s končno tehnologijo že od začetka lahko naleteli na blokade in potrebe
po učenju. Ukvarjanje s temi izzivi v občutljivi, negotovi in ključni fazi zahtev je nespametno.
78
Pregled procesa Extreme Prototyping za razvoj spletne aplikacije:
• faza statičnega prototipa (statični prototip, glavne strani, ozadja, CSS, JavaScript,
poslovna pravila, diagrami procesov);
• faza razširjenega statičnega prototipa (vse že zgoraj omenjeno in logični podatkovni
model za podporo zaslonskim slikam);
• dinamični prototip (faza ekstremnega prototipa; uporabniški vmesnik prilagojen za
izbran spletni okvir, delujoča izvršilna koda, preverjanje vnosnih polj je delujoče,
premikanje po zaslonih je delujoče, podpisne storitve so preverjene, uporabniški
vmesnik je popolnoma delujoč brez izvajanj v ozadju);
• faza uvajanja storitve (dokumentacija API, vse storitve se izvajajo s klicanjem
podatkovne baz ali drugih virov, integracija).
Extreme Prototyping se začne kot kateri koli drug dobro načrtovan projekt s statičnim
prototipom, razlikuje pa se samo v fazi kodiranja uporabniškega vmesnika. Extreme
Prototyping si prizadeva za prikaz uporabniškega vmesnika kot drugega prototipa s temeljito
specifikacijo vseh plasti storitev. V tem smislu uporabniški vmesnik opredeljuje API
(Application Programming Interface) za uvajalce storitev. To je podobno, kakor se razvijajo
različni JSR (Java Specification Request). En objekt določa standard in API. Veliko podjetij je
uvedlo ta standard z uporabo enakega API. Uvedbi uporabniškega vmesnika nato sledi
uvedba storitev (Onjava, februar 2010).
4.7 Izdelava prototipa
Končni cilj te naloge je bil izdelava javno dostopne spletne strani, na kateri bo možno v
realnem času spremljati vremenske podatke, ki jih posredujejo vse cestno vremenske
postaje, ki so vključene v DARS-ovo mrežo merilnih postaj ob slovenskih avtocestah. Ker
zaradi že opisanih dejstev to trenutno ni mogoče, smo izdelali prototip te spletne strani in
predstavitve podatkov. Slika 4.11 prikazuje arhitekturo informacijskega sistema od zajema,
preko obdelave do prikaza podatkov.
V prvi fazi smo izdelali generator KML, ki je generiral datoteko KML za prikaz podatkov v
Google Earth. Podatke je bilo možno pregledovati samo preko aplikacije Google Earth. V
naslednji fazi smo namestili vtičnik za Google Earth, ki je omogočal pregled podatkov tudi v
spletnih brskalnikih. V tretji fazi smo programsko kodo KML prilagodili tako, da je omogočala
ogled podatkov direktno v spletnih brskalniki preko spletne strani Google Maps. V zadnji fazi
79
pa smo s pomočjo spletne strani Google Sites (Google spletna mesta) izdelali enostavno
spletno stran, ki vključuje osnovne podatke o avtorjih in prikaže trenutne vremenske podatke
na treh vremenskih postajah.
Slika 4.11: Arhitektura informacijskega sistema
Vir: Lastni prikaz, marec 2010.
4.8 Opis izdelka
Končni izdelek je prikazan na sliki 48. Trenutno (maj 2010) je stran na spletnem naslovu:
http://sites.google.com/site/vremesmolic/.
To spletno mesto je oblikovano s pomočjo spletne storitve Google spletna mesta. Za
uporabo te storitve se je treba registrirati oziroma odpreti elektronski poštni račun pri Googlu.
Ta spletna storitev omogoča enostavno oblikovanje spletne strani. Z Googlovim
pripomočkom (Google Maps API within a Gadget) pa na spletno stran dodamo tudi Googlov
spletni zemljevid, na katerem so preko datoteke KML prikazane tri vremenske postaje. Izgled
spletne strani prikazuje slika 4.12.
80
Slika 4.12: Izgled prototipne spletne strani
Vir: Lastni prikaz, marec 2010.
S klikom na izbrano postajo se nam prikažejo v balonu tudi »trenutni« vremenski podatki, ki
niso starejši kot deset minut. Prikaz vremenskih podatkov vidimo na sliki 4.13.
Slika 4.13: Prikaz vremenskih podatkov za CVP Šentjakob
Vir: Lastni prikaz, marec 2010.
81
Že omenjeni Googlov pripomoček za delo z zemljevidi nam omogoča pet različnih pogledov
(zemljevid, satelit, hibridni pogled, teren in zemljo). Omogoča tudi standardno navigacijo po
zemljevidu oziroma Zemljini površini. Na izhodiščno točko se vrnemo s klikom na povezavo
VREME NA CESTAH.
V levi stranski vrstici so prikazani kontaktni podatki avtorjev in povezave na spletne strani
proizvajalca merilne opreme Lufft in vzdrževalca avtocest DARS. Dodano je tudi opozorilo
glede veljavnosti prikazanih podatkov.
5 ZAKLJUČEK
Vrednotenje lastnega izdelka je prav gotovo najtežji del te naloge. Na videz je končni izdelek
preprosta spletna stran. Če pogledamo sliko, ki prikazuje arhitekturo tega informacijskega
sistema, pa vidimo, da je v ozadju skritega precej dela. Začne se s poznavanjem merilne
opreme in načinov merjenja vremenskih podatkov za potrebe DARS-a. Temu sledijo postopki
prenosa podatkov do nadzornega centra DARS. Podatki se nato shranjujejo v podatkovno
bazo. Seveda je treba te podatke na primeren način prikazati končnemu uporabniku. Ker je
bil cilj moje naloge prikaz podatkov na javno dostopni spletni strani pomočjo GIS tehnologije,
je bilo nujno tudi poznavanje le-te. Tu mislim predvsem tisto tehnologijo, ki omogoča
enostavno uporabo in dovolj dobre rezultate. Kot sem že v uvodu pojasnil, sem uporabil v
glavnem Googlovo tehnologijo, ki kljub svoji nekomercialni obliki omogoča zadovoljive
rešitve. Vrednost končnega izdelka vidim predvsem v možnosti enostavne nadgradnje, s
katero bi lahko prikazovali podatke z vseh merilnih mest ob slovenskih avtocestah v realnem
času. Prototipna aplikacija je zasnovana tako, da omogoča dodajanje CVP in prikaz
podatkov z vseh treh uporabljanih tipov opreme. Zaradi uporabe identične strukture
podatkovne baze, v katero se zapisujejo naključno generirani podatki, in dejansko
uporabljene baze na DARS, je tudi na tem nivoji omogočena enostavna integracija. Potreben
je zgolj preklop vira podatkov in virtualnega na realnega.
Za programsko opremo velja, da ni nikoli dokončana. Cilj je vsekakor komercializacija te
prototipne spletne strani in javni dostop do izmerjenih podatkov. Upam, da bo k uresničitve te
ideje prispevala tudi javna predstavitev prototipne spletne strani na letošnji konferenci CGS.
V smislu te ideje menim, da bo v primeru dogovora z odgovornimi na DARS-u na strežniku
za cestno vremenske postaje treba pripraviti ločeno podatkovno bazo MySQL, ki bo
vsebovala samo za uporabnike avtocest koristne podatke. Ko bosta glavna in pomožna baza
ločeni, bo precej manj možnosti za zunanje zlorabe podatkov, shranjenih v glavni podatkovni
bazi. Podatke iz pomožne podatkovne baze bo potem že izdelana programska oprema,
82
preko generiranja servisne datoteke KML, prikazala v aplikacijah GIS Google Earth in
Google Maps ter na prosto dostopni spletni strani. Preko mobilnih naprav z dostopom do
interneta bo možno te podatke spremljati tudi v vozilih. Zanimiva se mi zdi tudi ideja o
povezavi javljanja nevarnosti poledice z RDS sistemom. S to povezavo bi bil s stanjem na
cesti seznanjen še mnogo širši krog voznikov.
V primeru uspešnega dogovora z DARS-om bo treba pripraviti tudi prevod spletne strani v
angleški, nemški, italijanski in ruski jezik.
83
6 LITERATURA
1. Bilke, Petra (2002): Spoznajmo PHP in MySQL. Nova Gorica: Flamingo Založba.
2. Brank, Ljuba (2006): Vpliv udobnega dostopanja v gorski svet na okolje (seminarska
naloga). Ljubljana: Planinska zveza Slovenije, str.: 21-22.
3. C#, Language Specification (2005): Standard ECMA – 334 (3. Izdaja),
(CSharpECMA-334, 3rd edition, June 2005.pdf).
4. Čarman, Samo (2009): Novosti s tržišča cestnih senzorjev. Ljubljana: Dimensio št.:
14, str.: 25.
5. Čarman, Samo (2009): Cestnovremenski Informacijski sistemi v luči ITS
(CGS_konferenca_2009_Samo_CVIS in ITS.pdf). Ljubljana: CGS plus d. o. o.
6. Damij, Talib (1998): Poslovna informatika. Ljubljana: Ekonomska fakulteta UL.
7. DePetrillo, Bart, A. (2002): Razumeti Microsoft .NET. Ljubljana: Pasadena.
8. Dolžan, Janez (2001): Informacijski sistemi (zapiski s predavanj). Ljubljana, Visoka
upravna šola UL.
9. Ivačič, Matjaž in Čarman, Samo (2008): Cestnovremenski informacijski sistem (CVIS)
na slovenskih avtocestah. Ljubljana: Dimensio št.: 13, str.: 12.
10. Kostrevc, Ljubomir (1997): Računalništvo in informatika. Ljubljana: Pasadena.
11. Lufft, GmbH (2006): Anual No. 125. Fellbach (Nemčija): Lufft GmbH, str.: 67-76.
12. Mohorič, Tomaž (1991): Podatkovne baze. Ljubljana: Fakulteta za elektrotehniko in
računalništvo UL.
13. Mrhar, Peter (2002): Uvod v SQL. Nova Gorica: Flamingo Založba.
14. Rasheed, Faraz: C# School. Fuengirola (Španija) (2006): Synchron Data S.L.
Dostopno prek: http://www.programmersheaven.com (10. 1. 2010).
15. Rau, Peter (2008): SmartView3 (version 1.3.10.) (Navodila za uporabo). Ulm
(Nemčija): Die Informatik-Werkstatt GmbH.
16. Rodič, Blaž (2008): Distribuirani sistemi za podporo odločanju in programski agenti.
Nova Gorica: Fakulteta za uporabne družbene študije.
17. Šajn, Slak Alenka in Čarman, Samo (2006): Projekt cestno vremenskih postaj.
Ljubljana: Dimensio št.: 11, str.: 13.
18. Šajn, Slak Alenka (2009): Cestnovremenski informacijski sistemi v luči inteligentnih
sistemov. Ljubljana: Dimensio št.: 14, str.: 24.
84
7 VIRI
1. http://code.google.com/intl/sl/apis/kml/documentation (4.1.2010).
2. http://earth.google.com/intl/sl/userguide/v4/ug_kml.html (6.2.2010).
3. http://en.wikipedia.org/wiki/.net_framework (4.1.2010).
4. http://en.wikipedia.org/wiki/ANSI-SPARC_Architecture (4. 1. 2010).
5. http://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29 (4.1.2010).
6. http://en.wikipedia.org/wiki/Canada_Geographic_Information_System (22.12.2009).
7. http://en.wikipedia.org/wiki/Michael_Widenius (4.1.2010).
8. http://en.wikipedia.org/wiki/ Software_prototyping#Extreme_prototyping (4.1.2010).
9. http://e-prostor.gov.si (4.1.2010).
10. http://files.gsobar.uni.cc/GRADIVA_informatika_omrezja_baze/colos/racunalnistvo/
RACUNALNISTVO/INFORMATIKA/index.html (26.1.2009).
11. http://gis.arso.gov.si (4.1.2010).
12. http://gis.zrc-sazu.si/zrcgis (4.1.2010).
13. http://grass.osgeo.org (4.1.2010).
14. http://maps.google.com (4.1.2010).
15. http://maps.yahoo.com (4.1.2010).
16. http://nt-gisa.cgsplus.si/ddc/ (14.12.2009).
17. http://nt-gisa.cgsplus.si/ddc/default.aspx?tab=2 (14.12.2009).
18. http://onjava.com/onjava/2006/11/15/reshaping-it-project-delivery-through-extreme-
prototyping.html (9.2.2010).
19. http://rkg.gov.si/GERK/viewer.jsp (4.1.2010).
20. http://sl.wikipedia.org/wiki/Slika:Lascaux2.jpg (4.1.2010).
21. http://www.avtoin.com/novica/2033 (4.1.2010).
22. http://www.avtoin.com/zoom.php?id=7348 (4.1.2010).
23. http://www.bing.com/maps (4.1.2010).
24. http://www.esri.com (4.1.2010).
25. http://www.geopedia.si (4.1.2010).
26. http://www.geoservis.si/uporabno/gis/gis.htm (16.12.2009).
27. http://www.geostik.com (4.1.2010).
28. http://www.gimvic.org/predmeti/informatika/pouk/Baze_3.srecanje.ppt (15.12.2009).
29. http://www.itis.si/Page_Map.aspx (4.1.2010).
30. http://www.novitednik.com/zapisi.php?id=544&id_zapis=1723&m=11&l=2009 (1.12.2009).
31. http://zemljevid.najdi.si (4.1.2010).
Opomba: Viri s spletne strani WIKIPEDIA niso strokovno preverjeni
85
PRILOGE
Priloga 1: Koda – konfiguracija prikaza
Priloga 2: Programska koda generatorja kode KML
Priloga 3: Potrebni SQL-stavki za poizvedbo v bazi MySQL
Priloga 1
Koda – konfiguracija prikaza: <?xml version="1.0" encoding="utf-8" ?>
<KmlDataConfiguration
xmlns="http://tempuri.org/KmlDataConfiguration.xsd">
<Document Document_Id="0">
<name>Vremenske postaje - Smolič Franci</name>
<description></description>
<dataObject>
<pk_dataObjectId>1</pk_dataObjectId>
<Document_Id>0</Document_Id>
<MapServerDSN>Smolic_MYS</MapServerDSN>
<DataSourceType>mys</DataSourceType>
<ConnectionString>STMT=;OPTION=3;DSN=Collector;UID=smolic;PASSWORD=franci;S
OCKET=;DESC=MySQL ODBC 3.51 Driver DSN;DATABASE=BSS;SERVER=nt-
topobase;PORT=3306</ConnectionString>
</dataObject>
<GroundOverlay/>
<Folder Document_Id="0" Folder_Id="0" >
<description>Podatki CVP</description>
<name>Podatki CVP</name>
<visibility>1</visibility>
<open>1</open>
<Placemark Folder_Id="0" Placemark_Id="0">
<dataObject_Id>1</dataObject_Id>
<description></description>
<GeometryType>point</GeometryType>
<SQLQuery>1</SQLQuery>
<StyleMap_Id>0</StyleMap_Id>
<Model_Id>0</Model_Id>
</Placemark>
</Folder>
<Style id="sn_sunny" Document_Id="0" Style_Id="0">
<IconStyle IconStyle_Id="0" Style_Id="0">
<scale>1.2</scale>
<Icon IconStyle_Id="0">
<href>http://maps.google.com/mapfiles/kml/shapes/sunny.png</href>
</Icon>
</IconStyle>
<LineStyle></LineStyle>
</Style>
<Style id="sh_sunny" Document_Id="0" Style_Id="1">
<IconStyle IconStyle_Id="1" Style_Id="1">
<scale>1.4</scale>
<Icon IconStyle_Id="1">
<href>http://maps.google.com/mapfiles/kml/shapes/sunny.png</href>
</Icon>
</IconStyle>
<LineStyle></LineStyle>
</Style>
<StyleMap Document_Id="0" StyleMap_Id="0" >
<id>msn_sunny</id>
<Pair>
<key>normal</key>
<styleUrl>#sn_sunny</styleUrl>
</Pair>
<Pair>
<key>highlight</key>
<styleUrl>#sh_sunny</styleUrl>
</Pair>
</StyleMap>
</Document>
</KmlDataConfiguration>
Priloga 2
Programska koda generatorja kode KML: using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using SmolicKML.Data;
using SmolicKML.Common;
using System.IO;
using System.Text;
using SmolicKML.Data.DataSetVremeTableAdapters;
namespace SmolicKML
{
public partial class _Default : System.Web.UI.Page
{
protected KmlConfiguration dsConfig;
protected byte[] crunchedData = null;
private void Page_Load(object sender, System.EventArgs e)
{
// get configuration DataSet
dsConfig = new
KmlConfiguration(System.Configuration.ConfigurationSettings.AppSettings["CG
SGis.KmlData.Configuration"]);
//
KML20 kml1 = new KML20();
kml1 = generateKML_Start();
kml1 = generateKML(kml1);
generateKML_End(kml1);
}
private KML20 generateKML_Start()
{
// Document constants and variables
string sDocumentVisibility = "1";
string sDocumentOpen = "1";
// Style constants and variables
string sStyleName = "";
string sIconStyleScale = "";
string sIconStyleHref = "";
string sBalloonbgColor = "";
string iBalloonStyleText = "";
string sBalloonDisMode = "default";
string sBalloonTextColor = "cc00cc";
decimal iHotX = 0;
decimal iHotY = 0;
string ihotXunits = "fraction";
string ihotYunits = "fraction";
string sServer =
System.Configuration.ConfigurationSettings.AppSettings["CGSGis.Server"];
//Counters
int iIconStyleCount = 0;
KML20 kml1 = new KML20();
//Generate Document
kml1.Document.AddDocumentRow(dsConfig.DSConfig.Document[0].name,
sDocumentVisibility, sDocumentOpen,
dsConfig.DSConfig.Document[0].description);
//Generate Styles
for (int iiStyle = 0; iiStyle <
dsConfig.DSConfig.Style.Count; iiStyle++)
{
//dsConfig.DSConfig.Style.
if
(!dsConfig.DSConfig.Style[iiStyle].IsNull(dsConfig.DSConfig.Style.idColumn.
ColumnName))
sStyleName = dsConfig.DSConfig.Style[iiStyle].id;
kml1.Style.AddStyleRow(kml1.Document[0], sStyleName);
kml1.Style.Columns["id"].ColumnMapping =
MappingType.Attribute;
//Generate IconStyle for Style
if
(dsConfig.DSConfig.IconStyle.Select(dsConfig.DSConfig.IconStyle.Style_IdCol
umn.ColumnName.ToLower() + "=" + iiStyle.ToString()).Length > 0)
{
DataRow dr =
dsConfig.DSConfig.IconStyle.Select(dsConfig.DSConfig.IconStyle.Style_IdColu
mn.ColumnName.ToLower() + "=" + iiStyle.ToString())[0];
sIconStyleScale =
dr[dsConfig.DSConfig.IconStyle.scaleColumn.ColumnName].ToString();
kml1.IconStyle.AddIconStyleRow(Convert.ToDecimal(sIconStyleScale),
kml1.Style[iiStyle]);
DataRow drIcon =
dsConfig.DSConfig.Icon.Select(dsConfig.DSConfig.Icon.IconStyle_IdColumn.Col
umnName.ToLower() + "=" +
dr[dsConfig.DSConfig.IconStyle.IconStyle_IdColumn].ToString())[0];
sIconStyleHref =
drIcon[dsConfig.DSConfig.Icon.hrefColumn].ToString();
kml1.Icon.AddIconRow(kml1.IconStyle[iIconStyleCount], sIconStyleHref);
iHotX = Convert.ToDecimal(0.5);
iHotY = Convert.ToDecimal(0);
ihotXunits = "fraction";
ihotYunits = "fraction";
//DataRow drH =
dsConfig.DSConfig.IconStyle.Select(dsConfig.DSConfig.IconStyle.Style_IdColu
mn.ColumnName.ToLower() + "=" + iiStyle.ToString())[0];
kml1.hotSpot.AddhotSpotRow(iHotY, iHotX,
ihotXunits, ihotYunits, kml1.IconStyle[iIconStyleCount]);
kml1.hotSpot.Columns["x"].ColumnMapping =
MappingType.Attribute;
kml1.hotSpot.Columns["y"].ColumnMapping =
MappingType.Attribute;
kml1.hotSpot.Columns["xunits"].ColumnMapping =
MappingType.Attribute;
kml1.hotSpot.Columns["yunits"].ColumnMapping =
MappingType.Attribute;
iIconStyleCount++;
}
//Generate BalloonStyle for Style
if
(dsConfig.DSConfig.BalloonStyle.Select(dsConfig.DSConfig.BalloonStyle.Style
_idColumn.ColumnName.ToLower() + "=" + iiStyle.ToString()).Length > 0)
{
DataRow dr =
dsConfig.DSConfig.BalloonStyle.Select(dsConfig.DSConfig.BalloonStyle.Style_
idColumn.ColumnName.ToLower() + "=" + iiStyle.ToString())[0];
sBalloonbgColor =
dr[dsConfig.DSConfig.BalloonStyle.bgColorColumn].ToString();
sBalloonTextColor =
dr[dsConfig.DSConfig.BalloonStyle.textColorColumn].ToString();
sBalloonDisMode =
dr[dsConfig.DSConfig.BalloonStyle.displayModeColumn].ToString();
if
(dr[dsConfig.DSConfig.BalloonStyle.textColumn].ToString() != "")
iBalloonStyleText =
dr[dsConfig.DSConfig.BalloonStyle.textColumn].ToString();
else
iBalloonStyleText = "";
kml1.BalloonStyle.AddBalloonStyleRow(dsConfig.DSConfig.Style[iiStyle].id +
"_BS_" + iiStyle.ToString(), sBalloonbgColor, sBalloonTextColor,
iBalloonStyleText, sBalloonDisMode, kml1.Style[iiStyle]);
}
}
//Generate Style Map
for (int iiStyleMap = 0; iiStyleMap <
dsConfig.DSConfig.StyleMap.Count; iiStyleMap++)
{
kml1.StyleMap.AddStyleMapRow(kml1.Document[0],
dsConfig.DSConfig.StyleMap[iiStyleMap].id);
for (int iiStyleMapPair = 0; iiStyleMapPair <
dsConfig.DSConfig.Pair.Count; iiStyleMapPair++)
{
kml1.Pair.AddPairRow(kml1.StyleMap[0],dsConfig.DSConfig.Pair[iiStyleMapPair
].key,dsConfig.DSConfig.Pair[iiStyleMapPair].styleUrl);
}
}
kml1.StyleMap.Columns["id"].ColumnMapping =
MappingType.Attribute;
return kml1;
}
private KML20 generateKML(KML20 kml1)
{
// Folder constants and variables
string sFolderId = "FId";
string sFolderVisibility = "1";
string sFolderOpen = "1";
// Object constants and variables
string sX = "";
string sY = "";
string sZ = "";
string sObjectCoordinates = "";
string sObjectName = "";
string sObjectDescription = "";
string sObjectSnippet = "";
string sObjectGeometryType = "";
string sObjectStyle = "";
string sObjectAltitudeMode = "relativeToGround";
int iObjectVisibility = 1;
int iObjectOpen = 0;
int iObjectExtrude = 1;
//Counters
int iPlacemarkCount = 0;
int iObjectCount = 0;
for (int iiFolder = 0; iiFolder <
dsConfig.DSConfig.Folder.Count; iiFolder++)
{
//Generate Folders
if
(!dsConfig.DSConfig.Folder[iiFolder].IsvisibilityNull())
sFolderVisibility =
dsConfig.DSConfig.Folder[iiFolder].visibility.ToString();
if (!dsConfig.DSConfig.Folder[iiFolder].IsopenNull())
sFolderOpen =
dsConfig.DSConfig.Folder[iiFolder].open.ToString();
kml1.Folder.AddFolderRow(dsConfig.DSConfig.Folder[iiFolder].description,
dsConfig.DSConfig.Folder[iiFolder].name, sFolderVisibility, sFolderOpen,
sFolderId + iiFolder.ToString(), kml1.Document[0]);
//Generate Placemarks
if
(dsConfig.DSConfig.Placemark.Select(dsConfig.DSConfig.Placemark.Folder_IdCo
lumn.ColumnName + "=" + iiFolder.ToString()).Length > 0)
{
if
(dsConfig.DSConfig.Placemark[iiFolder].StyleMap_Id.ToString() != "")
sObjectStyle = "#" +
dsConfig.DSConfig.StyleMap[int.Parse(dsConfig.DSConfig.Placemark[iiFolder].
StyleMap_Id.ToString())].id;
sObjectGeometryType =
dsConfig.DSConfig.Placemark[iiFolder].GeometryType;
switch (sObjectGeometryType.ToLower())
{
case "point":
//Generate Points
DataSet ds = new DataSet();
ds =
getData(int.Parse(dsConfig.DSConfig.Placemark[iiFolder].dataObject_Id.ToStr
ing()), "1");
for (int iiObject = 0; iiObject <
ds.Tables[0].Rows.Count; iiObject++)
{
//KOORDINATE
sX =
ds.Tables[0].Rows[iiObject][4].ToString().Replace(",", ".");
sY =
ds.Tables[0].Rows[iiObject][5].ToString().Replace(",", ".");
sZ =
ds.Tables[0].Rows[iiObject][3].ToString().Replace(",", ".");
sObjectCoordinates = sY + "," + sX +
"," + sZ;
long iSDate =
System.DateTime.Parse("1900-01-01").Ticks / 10000000;
long iNDate = System.DateTime.Now.Ticks
/ 10000000;
long iDate =
long.Parse(ds.Tables[0].Rows[iiObject][7].ToString()) + iSDate;
string sDatum =
System.DateTime.MinValue.AddSeconds(iDate).ToString("dd.MM.yyyy HH:mm");
string sID =
ds.Tables[0].Rows[iiObject][0].ToString();
string sName =
ds.Tables[0].Rows[iiObject][1].ToString();
string sLocation =
ds.Tables[0].Rows[iiObject][2].ToString();
//IME OBJEKTA
sObjectName = sName;
sObjectSnippet = "Čas meritve : " +
sDatum;
sObjectDescription =
System.Environment.NewLine + "Čas meritve: " + sDatum +
System.Environment.NewLine + System.Environment.NewLine;
// meritve
DataView dvmes =
ds.Tables[1].DefaultView;
string[] sAllMess = new string[] {"1",
"2", "16", "17", "41", "42"};
foreach (string sMid in sAllMess)
{
string sFilter = "station_id = " +
sID + " AND sensor_id = " + sMid;
dvmes.RowFilter = sFilter;
if (dvmes.Count > 0)
{
sObjectDescription +=
dvmes[0][7].ToString() + " " + dvmes[0][8].ToString() + " [" +
dvmes[0][6].ToString() + "]" + System.Environment.NewLine;
}
}
sObjectDescription +=
System.Environment.NewLine;
kml1.Placemark.AddPlacemarkRow(kml1.Folder[iiFolder], sObjectDescription,
"PId_" + iiFolder.ToString() + "_" + iiObject.ToString(), sObjectName,
iObjectVisibility.ToString(), iObjectOpen.ToString(), sObjectStyle,
sObjectSnippet);
kml1.MultiGeometry.AddMultiGeometryRow(kml1.Placemark[iPlacemarkCount]);
kml1.Point.AddPointRow(kml1.MultiGeometry[iObjectCount], "OId_" +
iiFolder.ToString() + "_" + iiObject.ToString(), sObjectAltitudeMode,
iObjectExtrude, sObjectCoordinates);
iPlacemarkCount++;
iObjectCount++;
}
break;
default:
break;
}
}
}
return kml1;
}
private void generateKML_End(KML20 kml1)
{
//Start output
string sOutput = "";
MemoryStream stream = new MemoryStream();
System.Xml.XmlTextWriter myXmlWriter = new
System.Xml.XmlTextWriter(stream, System.Text.Encoding.Unicode);
myXmlWriter.WriteStartDocument();
myXmlWriter.WriteStartElement("kml",
"http://www.opengis.net/kml/2.2");
myXmlWriter.WriteStartAttribute("gx", "kml",
"http://www.google.com/kml/ext/2.2");
kml1.WriteXml(myXmlWriter);
myXmlWriter.WriteEndElement();
int count = (int)stream.Length;
byte[] arr = new byte[count];
stream.Seek(0, SeekOrigin.Begin);
stream.Read(arr, 0, count);
UnicodeEncoding utf = new UnicodeEncoding();
sOutput = utf.GetString(arr).Trim();
//Correct XML to KML Sintaks
sOutput = sOutput.Replace("utf-16", "utf-8");
sOutput = sOutput.Replace("KML20", "kml");
sOutput = sOutput.Replace("><kml xmlns=", " xmlns:temp=");
sOutput = sOutput.Replace("IconScreen", "Icon");
sOutput = sOutput.Replace("IconGround", "Icon");
sOutput = sOutput.Replace("LatLonQuad", "gx:LatLonQuad");
sOutput = sOutput.Replace("d4p1:", "");
//Do output
Response.Clear();
Response.ContentType = "application/vnd.google-earth.kml
kml";
Response.AppendHeader("Content-Disposition",
"filename=\"Simobil.kml\"");
Response.BufferOutput = true;
Response.Write(sOutput);
}
private DataSet getData(int iDataObjectId, string sqlString)
{
TrenutnaTableAdapter tadata = new TrenutnaTableAdapter();
DataSetVreme.TrenutnaDataTable dtsv = new
DataSetVreme.TrenutnaDataTable();
stationsTableAdapter taStations = new
stationsTableAdapter();
DataSetVreme.stationsDataTable dtst = new
DataSetVreme.stationsDataTable();
tadata.FillTrenutniPodatki(dtsv);
taStations.FillStations(dtst);
DataSet ds = new DataSet();
ds.Tables.Add((DataTable)dtst);
ds.Tables.Add((DataTable)dtsv);
return ds;
}
}
}
Priloga 3
Potrebni SQL-stavki za poizvedbo v bazi MySQL:
Pridobi trenutno meritev na vseh postajah: SELECT stations.station_id, stations.name, stations.latitude AS
Lat, stations.longitude AS Lon, last_sensor_values.poll_time,
stations.last_data, units.unit AS Enota,
sensors.name AS Meritev, last_sensor_values.value
AS MGSM, sensors.sensor_id
FROM units INNER JOIN
sensors ON units.unit_id = sensors.unit_id INNER
JOIN
last_sensor_values ON sensors.sensor_id =
last_sensor_values.sensor_id INNER JOIN
stations ON last_sensor_values.station_id =
stations.station_id AND last_sensor_values.measure_time >=
stations.last_data
WHERE (stations.is_active = 1) AND (last_sensor_values.error = 0)
AND (sensors.sensor_id = @MeasurementID)
Pridobi vse trenutne meritve na vseh postajah: SELECT stations.station_id, stations.name, stations.latitude AS
Lat, stations.longitude AS Lon, last_sensor_values.poll_time,
stations.last_data, units.unit AS Enota,
sensors.name AS Meritev, last_sensor_values.value
AS MGSM, sensors.sensor_id
FROM units INNER JOIN
sensors ON units.unit_id = sensors.unit_id INNER
JOIN
last_sensor_values ON sensors.sensor_id =
last_sensor_values.sensor_id INNER JOIN
stations ON last_sensor_values.station_id =
stations.station_id AND last_sensor_values.measure_time >=
stations.last_data
WHERE (stations.is_active = 1) AND (last_sensor_values.error = 0)
Pridobi vse aktivne postaje: SELECT station_id, name, location, altitude, latitude, longitude,
is_active, last_data
FROM stations
WHERE (is_active = 1)