Zahvala Kazalo Seznam uporabljenih kratic in simbolov 1 Povzetek 2 Abstract 3 Uvod 4 Opis problema 5 Načrt sistema 6 Podatkovni model 7 Geokodiranje 8 Nasprotno geokodiranje 9 Usmerjanje 10 Izkušnje in nadaljnje delo 11 Sklep Dodatek A Navodila za uporabo sistema Literatura
- Naslov
- Razvoj naprednih storitev za GIS
- Del
- 3 Uvod
- Datum vsebine
- 21. 11. 2009
- Original
- RazvojNaprednihStoritevZaGIS.pdf
- Vrsta
- diplomska naloga
- Jezik
- slovenščina
- Različica
- 1.0
- Ustanova
- Fakulteta za računalništvo in informatiko, Univerza v Ljubljani
- Študij
- Univerzitetni, računalništvo in informatika, logika in sistemi
- Predmet
- -
- Mentor
- doc. dr. Mojca Ciglarič
- Avtor
- Tine Lesjak
- Ocena
- 10 od 1-10
Gre za celotno diplomsko delo s predstavitvijo.
Dodatne objave dela:
- ePrints.FRI: ID 933
- COBISS: ID 7349844
- predstavitev.pdf
- Predstavitev diplomskega dela na zagovoru (dne 22. 10. 2009).
- projekti.zip
- Vsa izvorna koda v obliki SpringSource Tool Suite projektov (združljivi z Eclipseom) pod licenco Creative Commons Attribution 2.5 Slovenia License
- primeri.zip
- Primeri, predstavljeni kot izvlečki kode v diplomskem delu.
- tinel-gis-geocoding.war
- Storitev geokodiranja.
- tinel-gis-reversegeocoding.war
- Storitev nasprotnega geokodiranja.
- tinel-gis-routing.war
- Storitev usmerjanja.
V svojem diplomskem delu sem se lotil geografskega informacijskega sistema (GIS).
GIS je obširen računalniško voden informacijski sistem za zajemanje, hranjenje, urejanje, analiziranje, prikazovanje in deljenje prostorskih podatkov. Znotraj področja analiziranja podatkov med drugim spadajo tudi orodja, ki sem jih razvil za podjetje in jih bom predstavil v tem delu.
V podjetju Autronic, d.o.o., iz Ljubljane, pri katerem sem delal, smo razvijali sistem sledenja objektov v realnem času, kjer je prikaz lokacij na karti ključnega pomena. Prišli smo do točke, ko smo v sistem želeli vključiti več naprednih orodij, ki so si jih zaželele stranke. Ta prinašajo tudi konkurenčno prednost. To so geokodiranje, nasprotno geokodiranje in usmerjanje. Poleg samih orodij smo nujno potrebovali tudi nov podatkovni model, v katerem lahko hranimo obstoječe geografske podatke.
Geokodiranje pride prav uporabnikom, ki želijo izvedeti, kje se nahaja določen geografski kraj (npr. naslov, cesta, zgradba ipd.), pri tem pa poznajo samo ime kraja. Geokodiranje se uporablja s t.i. iskalcem, ki ga uporabnik natančno nastavi, tudi po kateri vrsti krajev naj išče.
Za naprednejše iskanje bi lahko uporabili celobesedilno iskanje, ki sem ga tudi preizkusil.
Nasprotno geokodiranje določeni lokaciji poišče najbližje geografske kraje. Primer uporabe: lastniku vozila se namesto koordinat v odjemalcu prikaže najbližji naslov, kjer stoji vozilo. Enako kot geokodiranje se tudi nasprotno geokodiranje uporablja z iskalci, ki natančno definirajo iskanje. Nasprotno geokodiranje išče najbližje kraje na podlagi najkrajših razdalj med dvema lokacijama na modelu sfere, ki predstavlja površino Zemlje. Iskati je možno naslove, ceste in zgradbe.
Usmerjanje uporabniku izračuna najcenejšo pot iz začetne lokacije v ciljno. Najcenejša pot je lahko najkrajša ali pa najhitrejša. Uporablja se hevristični usmerjevalni algoritem A*, ki mu uporabnik lahko nastavlja bistvena parametra: funkcijo ocenjevanje že obdelane poti in funkcijo hevrističnega ocenjevanja poti do cilja.
Ključno pri vseh orodjih je, da so zgrajena v obliki strežniških storitev, ki uporabljajo le en podatkovni model. Podatki se ne podvajajo in so dostopni na enem mestu. To bistveno pripomore tako k vzdrževanju podatkovne zbirke kot samih podatkov.
V podatkovni model lahko vstavimo podatke z vsega sveta in jih med seboj tudi analiziramo. Zaželeno je, da je dovolj fleksibilen, da ga lahko kasneje enostavno razširimo. Podatkovni model definira domeno in vnaprej pripravljene dostope do podatkov v zbirki.
Pri razvoju podatkovnega modela in storitev sem upošteval nekaj dejstev, ki veljajo za podjetje. Obstoječ grafični odjemalec je namizna aplikacija, spisana v tehnologiji Java. Podjetje ima lastne geografske podatke, ki so jih kupili ali izdelali sami, zato pridejo v poštev samo poceni ali zastonjske rešitve, ki so hkrati dovolj fleksibilne za prilagajanje in preproste za vzdrževanje in uporabo. Sistem je zato prilagojen za namiznega odjemalca v javi, uporablja lastne podatke, je fleksibilen za morebitne razširitve in je čim bolj preprost.
Veliki GIS-i so domena le nekaterih velikih podjetij in državnih agencij. Slednje so načeloma zaprte vase. Zelo razširjeni spletni zemljevidi sicer omogočajo geokodiranje in usmerjanje, a so prilagojeni le za splet. Namizne in strežniške aplikacije so večinoma velike in okorne, cene so zelo visoke.
Sistem sem napisal v programskem jeziku Java, ki ga obvladam, je objektno usmerjen, najbolj priljubljen in zaželen s strani podjetja. Uporabljena je običajna relacijska podatkovna zbirka PostgreSQL skupaj z dodatkom za geografske podatke PostGIS, ki je ekonomična in preverjena izbira. Za poenostavitev je zelo primerna tehnologija preslikave relacijskih podatkov v objekte - na tem področju kraljuje knjižnica Hibernate, ki svoje naredi tudi s posebnim objektno usmerjenim poizvedovalnim jezikom HQL. Vse aplikacijske dele je bilo najlažje med seboj povezati z ogrodjem Spring Framework. Ta vsebuje tudi množico orodij, ki olajšajo razvoj, med drugim tudi tehnologijo HTTP Invoker, s katero je izvedena povezava med strežnikom in odjemalcem. Vse tehnologije so na voljo brezplačno.
Celoten sistem je sestavljen modularno iz treh končnih paketov; to so strežniški deli (storitve) v obliki spletnih aplikacij. Te za delovanje potrebujejo vsebnik. Vsi paketi poleg definicij storitev za odjemalce za delovanje potrebujejo še lastne in zunanje knjižnice.
Sistem je delujoč, a za uporabno delovanje potrebuje lastne geografske podatke, ki mu niso priloženi.
V naslednjem poglavju si bomo podrobneje pogledali, kakšni so bili problemi, nameni, razlogi in cilji sistema. Dotaknili se bomo tudi možnih alternativ.
V poglavju Načrt sistema si bomo ogledali, kaj vse sistem zaokrožuje, vsebuje in na kakšnih tehnologijah so zgrajeni njegovi temelji.
Sledijo poglavja o glavnih delih sistema: v prvem poglavju bo beseda tekla o zgradbi in uporabi podatkovnega modela, v ostalih poglavjih pa si bomo podrobneje ogledali vse tri storitve (geokodiranje, nasprotno geokodiranje in usmerjanje), predvsem algoritme, ter njihovo zmogljivost.
V sklepnih poglavjih so zbrane izkušnje, prednosti, slabosti in predlogi za nadaljnje delo.
V dodatku A so osnovna navodila za uporabo sistema, predvsem iz razvojnega vidika.
Izvorna koda se nahaja v prilogi projekti.zip.