95
 Eötvös Loránd Tudományegyet em Informa tikai Kar Térképtudomá nyi és Geoinformatikai T anszék Digitális térképek automatikus generalizálása Dr.  Elek  István Habilitált egyetemi docens Nguyen Thai Binh Programtervező Matematikus Budapest, 2012

Digitális térképek automatikus generalizálása

Embed Size (px)

DESCRIPTION

Diplomamunka 2012

Citation preview

Etvs Lornd Tudomnyegyetem Informatikai Kar Trkptudomnyi s Geoinformatikai Tanszk

Digitlis trkpek automatikus generalizlsa

Dr. Elek Istvn Habilitlt egyetemi docens

Nguyen Thai Binh Programtervez Matematikus

Budapest, 2012

2

Tartalomjegyzk

1. Bevezets 1.1. Objektv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Struktra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. Trkptervezs

7 7 8 11

2.1. Mirt ksztnk trkpet . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2. Generalizls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.1. Alapfogalmak . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.2. Szempontok . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.3. Idzetek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.4. Kifejezkpessg . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.5. Ht alapszably . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3. Tpfer-fle gykszably . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4. Jelkulcs s jelmagyarzat . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4.1. Trgyi trvnyszersgek . . . . . . . . . . . . . . . . . . . . . 15 2.4.2. Rajzi trvnyszersg . . . . . . . . . . . . . . . . . . . . . . . 15 3. Szaktrkpek brzolsa 17

3.1. Szaktrkpek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.1.1. Analitikus szaktrkpek . . . . . . . . . . . . . . . . . . . . . . 17 3.1.2. Komplex szaktrkpek . . . . . . . . . . . . . . . . . . . . . . . 18 3.1.3. Szintetikus szaktrkpek . . . . . . . . . . . . . . . . . . . . . . 18 3.1.4. Szinoptikus szaktrkpek . . . . . . . . . . . . . . . . . . . . . 18 3

4 3.2. Trkptpusok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.2.1. Statikus trkpek . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.2.2. Dinamikus trkpek . . . . . . . . . . . . . . . . . . . . . . . . 18 3.2.3. Genetikus trkpek . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.3. ttekints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4. Digitlis trkpek 21

4.1. Trinformatika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.2. Digitlis kartogra . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.3. Mirt ksztnk trkpet . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.4. Adatforrs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.4.1. Internetes forrsok . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.4.1.1. Befoglal ngyzet alap adat kinyers . . . . . . . . . . 25 4.4.1.2. Tmrtett llomny . . . . . . . . . . . . . . . . . . . 26 4.4.1.3. Fizets forrs . . . . . . . . . . . . . . . . . . . . . . 26 4.5. Vektoros adat tpusok . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.5.1. File alap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.5.1.1. GML . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.5.1.2. KML . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.5.1.3. Binris formtumok . . . . . . . . . . . . . . . . . . . 33 4.5.1.4. GeoJSON . . . . . . . . . . . . . . . . . . . . . . . . 34 4.5.1.5. Well-Known-Text-Format . . . . . . . . . . . . . . . . 37 4.5.2. Adatbzis alap . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.5.2.1. OGC - Open GeoSpatial Consortium . . . . . . . . . . 39 4.5.2.2. MySQL spatial . . . . . . . . . . . . . . . . . . . . . . 40 4.5.2.3. PostGIS . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.6. Alkalmazs terletek . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.6.1. Dekstop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.6.2. Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.7. Hordozhat eszkzk . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5. Generalizls s topolgia 47

5.1. Bevezets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.2. Vektoros adatmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.2.1. Szegmens trols . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.2.2. Spagetti modell . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5 5.2.3. Topologikus modell 5.3. NoSQL vektoros adatmodell 5.3.1. Mi a NoSQL? . . . 5.3.2. Brewer CAP ttele . 5.3.3. NoSQL adatmodell . 6. Transzformcis algoritmusok 6.1. Bevezets . . . . . . . . . . 6.2. sszevons . . . . . . . . . 6.3. Egyszersts . . . . . . . . 6.4. Eltols . . . . . . . . . . . 7. Alkalmazs fejleszts 7.1. Felpts . . . . . . . . . . 7.1.1. Kiszolgl - Szerver 7.1.2. Kr - Kliens . . . . 7.1.3. Komnunikci . . . 7.2. Ipari felhasznls . . . . . . 7.2.1. Web Map Service . 7.3. Kutatsi felhasznls . . . . 8. sszegzs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 61 62 62 67 73 73 76 77 79 81 82 82 84 85 86 87 89 93

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

6

1 Bevezets

Kartogra egy sszetett sz, felbontva, khartisz latinul azt jelenti, hogy hrtya, krtya valamint graphein azt jelenti, hogy rs, rajzols. Kartogra a trkp kszts tudomnya. Egy trkp mind reprezentcis s vizualizcis szempontbl rendkvl kifejez, brki tudja hasznlni elismeret szksgessge nlkl, emiatt rendkvl tgondolt, gondos, kvetkezetes s alapos munkt ignyel. A XX.szzad vgn az informatikai vilg technikalag s technolgialag robbans szer fejldsnek indult, amely magval vont ms tudomnygak rohamos fejldst. gy a trkpszet mint tudomny is gyors vltozsokon ment, megy keresztl, s vrhatan mg a kzeljvben is mind technolgialag s mdszertanilag erteljes fejlds vrhat. 1.1. Objektv

Clom, hogy egy tfog kpet adjak klnbz trkpek ksztsnek menetrl, kitrve az adatforrs beszerzse, adatforrs feldolgozs, adattrols tmkat. Ezenkvl olyan mdszereket szeretnk is ismertetek, amelyek segtsgvel a generalizls folyamatot rszben lehet automatizlni. Tbb szempontbl is fontos megvizsglni az automatizlt generalizls lehetsgt s a lehetsges megvalstsi irnyelveket. Az egyik szempont a hatkonysg, sajnos jelenleg a legtbb trinformatikai szoftver s adattrol rendszerek nem kezeli kiemelten az adatok redundancijval, hitelessgvel valamint az id alap meggyelsekkel kapcsolatos kvetelmnyeket, arra a mai technikra jellemz kedvez tulajdonsgra hivatkozva, hogy a trhely kapacits mr nem szmt kritikus pontnak egy informatikai rendszerben. A msik kritikus 7

8

1. BEVEZETS

szempont az adatok rzkenysge, mint adatfeldolgozs, adatkinyers, trbeli objektumok egymshoz viszonytott relcija, objektumok kirajzolsa, adatok szolgltatsi sebessgre vonatkoz kritriumoknak trtn megfelels. Hatkonysg. Az adatok struktrlis felptsnek javtsval sokat lehetne javtani a redundancin s a hatkonysgon. Erre tbb adatmodelll is ltezik, mint hlozati modell, objektum orientlt modell, topolgikus modell, amely lekpezhet trinformatikai adatbzisrendszerekre. Az MRDB - Multiple Representation Database, azaz sszetett brzol adatbzis nem ms mint egy trinformatikai adatbzis, csak azzal a klnbsggel, hogy elre denilt tbb mretarnyban, felbontsban, kategrikban trolja az adatokat. Jelenleg trkp szerverekkel oldjk meg a klnbz felbontsok megjelentst, amely kpeket generl elre minden egyes felbontsi szintrl. Ez azonban gondot okozhat, ha kzben vltozik a trkp, ami megkveteli a trkp szervertl az sszes lehetsges felbontsi szintrl ksztsen j kpeket az adott terletrl. 1.2. Struktra

Msodik fejezet Trkp szerkesztsi s tervezsi alapfogalmakat szeretnm bevezetni (mi a trkp, mi a generalizlt trkp, stb). Milyen szempontokat kell vizsglni generalizls sorn. Trgyi s rajzi trvnyszersgek bemutatsa. Harmadik fejezet Szaktrkpek, trkptpusok (statikus, dinamikus, genetikus) s brzolsi szablyokkal szeretnm bemutatni. Negyedik fejezet Digitlis trkpek. A fejezet vgig kisr egy digitlis trkp ltrehozsnak a folyamata, kezdve az adatok beszerzstl, azok trolsn t a felhasznlsukig. Adatforrsok elrhetsge, internetes, oine md, valamint nylt forrskd s zets adatok tdik fejezet Adat modellek. Milyen lehetsgek vannak az adatok szervezsre s hogyan kapcsoldnak a tpusmegoldsok a generalizlshoz. Spagetti modell htrnyai. Mirt jobb a topolgikus modell? Topolgikus modell felptsnek bemutatsa pldn keresztl. Hatodik fejezet Transzformcis algoritmusok, amelyek segtsgvel klnbz generalizls mveleteket lehet vgrehajtani.

1.2. STRUKTRA

9

Hetedik fejezet Koncepci egy lehetsges automatizlt generalizl rendszerre.

10

1. BEVEZETS

2 Trkptervezs

Egy Trkp hrom alapkve: Graka Vals objektumok brzolsa egy trkpen. llts Informci kzls. Meghatrozs Objektumok trbeli megfeleltetse. Lthat s nem lthat adatok, mennyisgek reprezentlsa.

2.1.

Mirt ksztnk trkpet

Mielt nekiltunk egy trkp ksztsnek, a kvetkez alapvet krdsekre kell tudnunk egyrtelm s vilgos vlaszt adni. 1. Mi a clja? 2. Kik fogjk hasznlni? 3. Ignyel-e elkpzettsget? A kvetkezkben a trkpszerkeszts illetve-tervezssel kapcsolatos feladatokrl, kvetelmnyekrl lesz sz. Az egyik legfontosabb tmakr a generalizls, amely minden trkptpusnl klns gyelmet ignyel. Ezt sajnos sokan nem veszik gyelembe. A kvetkez fejezetben szeretnk nhny dolgot kiemelni, illetve rszletesebben trgyalni. 11

12 2.2. Generalizls

2. TRKPTERVEZS

Valamilyen cl rdekben egy adott mretarnynak megfelelen generalizlunk, egyszerstjk a trkpi tartalmat, egyttal elksztjk a kialaktand trkp brzolsi rendszert is. Grakus megjelentskor, gyakorlatilag a jelkulcsokat deniltuk az brzolsi rendszerrel. 2.2.1. Alapfogalmak

Trkp tpusoktl fggen ms s ms generalizlsi ignyek merlnek fel, ezeket a ksbbiekben fogjuk trgyalni. 1. Denici. Trkp, lehet informcirgzt, kzvett vagy tjkoztat. Ms esetben pedig informciforrsknt szolgl, amely az objektv valsg megismershez nyjthat segtsget. 2. Denici. Az egyensly megtartsa. Az informci mennyisg s egyrtelm ttekints, megrts, valamint minsg kztt mindig meg kell tallni az egyenslyt. 3. Denici (Topograi trkp). Azon trkpeket nevezzk topograi trkpnek, amelynek a skrajz, vzrajz, felszni formk, nvnytakar s egy sor egyb, az ltalnos tjkozdshoz szksges feltntetett trgy a f eleme s amelyet a nvrajz rszletesen magyarz. Ide tartoznak a 1. Generalizlt nagy-, kzp- vagy kismretarny topograi trkp. 2. Clgeneralizlt nagy-, kzp- vagy kismretarny topograi trkp. 3. Szaktrkpek, ezzel fogunk most rszletesebben foglalkozni. 4. Denici (Szaktrkpek). Egy trkpi alapon az objektumok, tnyek, jelensgek, folyamatok skban, trben elhelyezked egyttest , azaz termszeti s trsadalmi jelensgek szerkezett, funkcijt, egymsrahatst, adatok, analzisekbl s szintzisekbl kapott rtkek rvn, mltra, jelenre, jvre vonatkozan vagy egyttesen mutatjk be, mint informcihordozk - sajtosan generalizlt mdon - s ezltal jabb informcik, inspircik forrsaiv vlhatnak.

2.2. GENERALIZLS 2.2.2. Szempontok

13

Generalizls folyamata sorn az brzolsi md szab hatrt az egyszersts mrtknek. Pldul kt hasonl mretarnyban lv trkpnl de jellegben ms tpusak, eltrhetnek adat befogad kpessg szempontjbl. A kvetkez generalizlsi mdokrl beszlhetnk az adatok oldalrl vizsglva: mennyisgi minsgi trbeli idbeli Ezeket nem tudjuk teljes mrtkben egyenrangan rvnyesteni. Ezrt vlogatni kell az brzolsi lehetsgek szerint, ezt a folyamatot nevezzk generalizlsnak. A generalizls ms szval lehet kivlaszts, vlogats, egyszersts vagy ltalnosts. 2.2.3. Idzetek

Kt idzetet szeretnk megemlteni, amelyek megvilgtjk a krdskrt. 1. Imhof: "Minden kartograi generalizls arra trekszik, hogy a mr lekicsinytett s olvashatatlann vlt kpet olvashatv tegye. Ez bizonyos sajtossgok sszevonsval, kihagysval s kiemelsvel rhet el." 2. Robinson: "Minden trkpen, amely a topograi mretarnyoknl kisebb, ki kell vlasztani az brzoland trgyakat, egyszersteni kell formjukat s rtkelni kell a clnak megfelel viszonylagos jelentsgket, hogy a fontos elemek jobban kiemelkedjenek. Ez a folyamat a kartograi generalizls." 2.2.4. Kifejezkpessg

Egy trkp kifejez erejt a tartalmi generalizls, valamint a rajzi megoldsok hatrozzk meg. Innen ltjuk, hogy a generalizls folyamatnak kt aspektusa van: 1. tartalmi: trkp tartalmi, mretarny, objektumok szelektlsa, sszevonsa, kiemelse, osztlyozst, amely az brzolsi jellegt adja. 2. formai: trkp lokalizlst, hatrvonalak, kontrok, nvrajzi anyagok sszhangjra szpontost a formai nzet.

14 2.2.5. Ht alapszably

2. TRKPTERVEZS

A generalizlst ht alapszbllyal lehet jellemezni: Mrtani 1. az egyszersts 2. a nagyobbts 3. az eltols Mennyisgi 1. az sszevons 2. a kivlaszts Minsgi 1. a tipizls 2. a hangslyozs

2.3.

Tpfer-fle gykszably

gy gondolom, elengedhetetlen megemlteni a Tpfer-fle gykszablyt, amely a mennyisgi oldalrl kzelti meg a generalizls krdst. Az albbi formula adja a szably alapjt: MA nF = nA MF , ahol nF = objektumok mennyisge a ksztend krkpen nA = objektumok szma az alaptrkpen MF = levezetett j mretarny MA = alaptrkp mretarnya Azonban, a szablyt csak topograi trkpeknl alkalmazhat, kisebb mretarny trkpek esetn nem alkalmazhat.

2.4. JELKULCS S JELMAGYARZAT 2.4. Jelkulcs s jelmagyarzat

15

A jelkulcsnak kifejeznek kell lennie, hogy kiemelje az brzoland trkp lnyegt, tematikjt. Ahhoz, hogy jl meghatrozzuk a jelkulcsot, kt szempontot kell megvizsglnunk. Az egyik a trgyi tvnyszersgek, amelyek az brzoland objektumok ismrvei, a msik a rajzi trvnyszersg, amelyek az brzolsi mdot hatrozza meg. 2.4.1. Trgyi trvnyszersgek

Az albbiakban szempontokat sorolok fel: Minsg s mennyisg: hol mi van? illetve hol mennyi van? Diszkrtumok s kontinumok: trben lehatrolhatk (pl. t, erd), illetve trben nem hatrolhatk (pl. csapadk, hmrsklet). Statikus s dinamikus: egy adott llapotot rnak le, vagy a vltozst szemlltetik. Eredeti s levezetett objektumok: eredeti objektumok, szlelhet vagy egy terlet trbeli s idbeli vltozsa. Jelensgek s tnyllsok: objektumok, illetve gondolati fogalmak. 2.4.2. Rajzi trvnyszersg

Az albbiakban szempontokat sorolok fel: Trkpelemek, brzolsi elemek minimlis mretei. Az brzols helyzethsge, alaprajzhoz hasonlsga. Fontos a kzepes s kismretarny trkpeknl a tartalom generalizlsa. Tartalommal folyton bvl trkpek esetben megfelel egyedi jelkulcsot ksztnk, az azonos elemeket egysges mdon kell a jelkulcsba szerkeszteni, ezzel az egysgessget s sszetartozst reprezentljuk. A jelkulcs a trkp ksztje szmra kszl. A jelkulcsok jelmagyarzatt rvid, tmrsgre kell trekedni. A terjengs jelmagyarzatok zavaross, ttekinthetetlenn teszik az gsz tartalmi anyagot. A jelmagyarzati szveget ltalban egyesszmban rjuk s nagybetvel kezdjk. A

16

2. TRKPTERVEZS

jelmagyarzatban tmkra bontjuk a trkpi tartalmat, a sorrendisgre nincs lers. A jelmagyarzatok lehetleg legyenek xek, vagy kivehetek a trkpbl.

3 Szaktrkpek brzolsa

A kvetkezkben denilni fogjuk a topograi trkp fogalmt:

3.1.

Szaktrkpek

A kvetkezkben a szaktrkpekrl szeretnk egy keveset ismertetni. A trkpi elemek jellik azokat a trgyakat s jelensgeket, amelyek a trkpre kerlnek. Az brzols maga, brzolsi elemek segtsgvel trtnik. Az brzolsi elemek egyttese adja a trkptartalmat. A szaktrkp nmagban egy zrt, a valsgot a mennyisgi, minsgi, elforduls, intenzits, idpont vagy idtartam szerint brzolhatjuk. A szaktrkpek elvi kivitelezsket tekintve ngy alapvet csoportba sorolhatak: 1. Analitikus szaktrkpek 2. Komplex szaktrkpek 3. Szintetikus szaktrkpek 4. Szinoptikus szaktrkpek

3.1.1.

Analitikus szaktrkpek

Jelensgeket, tnyeket, folyamatokat stb. egy flrendelt formai vagy funkcionlis szerkezet rszeknt bontjuk fel elemekre. 17

18 3.1.2. Komplex szaktrkpek

3. SZAKTRKPEK BRZOLSA

Egyms mellett tbbfajta jelensget, tnyt, folyamatot stb. brzolunk, azaz tbb analitikus trkpet szeretnnk egy trkpen szemlltetni. 3.1.3. Szintetikus szaktrkpek

Ezeken a trkpeken a formai vagy funkcionlis szerkezeten bell a valsgot szintetikus sszetev, egysgest jelleggel brzoljuk. Analitikus + Komplex = Szintetikus. Pl.: tjtpustrkp. 3.1.4. Szinoptikus szaktrkpek

Tbbfajta jelensget ttekint, sszefoglal mdon brzol, s gy egyttes hatsukat is szemllteti. Pl.: tjtpusok, klmatpusok egymsra hatsa, rgik. 3.2. Trkptpusok

A trkpek tervezsnl s megjelentsnl sok szempontot kell gyelembe venni, mint az tlthatsg, egyrtelmsg s kzlkenysg. Egy nagyon fontos tnyez, amely mg mindig fejfjst okoz egy szaktrkp szerkesztsnl, az id, azaz a negyedik dimenzi. Az brzols megoldsval kapcsolatos prblkozsok tbbirnyak voltak, s nhny j trkptpust eredmnyeztek: 1. Statikus trkpek 2. Dinamikus trkpek 3. Genetikus trkpek 3.2.1. Statikus trkpek

Egy bizonyos folyamatot, jelensget, egy megadott idpontra jellemz llapotban brzoljk. 3.2.2. Dinamikus trkpek

Egy bizonyos folyamatot, jelensget, egy megadott idpontra jellemz llapotban brzoljk, de jelekkel, nyilakkal, szmokkal a dinamikjt prbljk rzkeltetni.

3.3. TTEKINTS 3.2.3. Genetikus trkpek

19

A fejlds trkpek vagy vltozstrkpek bonyolult jelensgeket, folyamatokat stb. igyekeznek keletkezskben fejldskben ngydimenzis formjban brzolni. 3.3. ttekints

A ngy szaktrkpcsoportok (analitikus, komplex, szintetikus, szinoptikus), tovbb statikus, dinamikus s genetikus jelleg, s a mennyisgi, minsgi brzols variciibl, s az brzoland megjelentsi lehetsgeibl addik, hogy a szaktrkpek szerkesztsi sklja elmletileg vgtelen, azaz a legklnbzbb tmkbl vgtelen sok trkpet lehet szerkeszteni. A generalizlsi szablyok betartsval s a tartalom mennyisgi illetve minsgi arnyok gyelembe vtelvel lehet meghatrozni az brzols lehetsgt s jellegt. A trkpi brzols elemei: pont vonal terlet trhats jelek sznvaricik szveges lersok Gondos s tgondolt brzolsi elemek egyttese (j tartalmi s technikai generalizls) biztostja az objektv valsgot, jl olvashatsgot, s nem utols sorban eszttikailag kellemes megjelens trkpet. A jelkulcs megszerkesztsekor, a jeleket gy kell megvlasztni, hogy a felhasznl klnsebb gondolkods nlkl rismerjen a tmra, amelyet a jel szimbolizl. Ha ez valamilyen oknl fogva nem oldhat meg, akkor vissza kell trni az alapvet knnyen rthet jelekhez, mint a kr, hromszg. Fontos, hogy a jelek az els pillantsra megklnbztethetek legyenek, azonkvl egysgesnek kell lennik, azaz azonos tulajdonsgokat (minsgi) lehetleg azonos nagysg s formj jelekkel brzoljuk.

20

3. SZAKTRKPEK BRZOLSA

4 Digitlis trkpek

4.1.

Trinformatika

Trinformatika vagy Geoinformatika magba foglalja a digitlis fldrajzi adatok elemzst; trinformatikai adatbzisok tervezse valamint kezels; informcis rendszerek s alkalmazsok tervezse s megvalstsa mind asztali s mobil eszkzkre; GPS technolgia; Mhold felvtelek elemzse s feldolgozsa. Trinformatika a kvetkez gakat tartalmazza: Kartogra. Geodzia. Geo-Informcis rendszerek GIS (adatok elemzse). Navigcis rendszerek. Tvrzkels. Webes trkpek. Hogyan ksztnk trkpet? Adatforrsok meghatrozsa, s elfeldolgozsa utn. Az adatmodell ptsvel s azok elrsvel szeretnnk foglalkozni. 4.2. Digitlis kartogra

Digitlis trkpszet (digitlis kartogra) egy folyamat, amely adott adat halmaz feldolgozsa utn vgeredmnyknt virtulis trkpeket kapunk. 21

22

4. DIGITLIS TRKPEK

Digitlis trkpek elnyei: papr trkpeket nem lehet javtani, informcikat frissteni. Mivel digitlis formtumban vannak trolva le vagy adatbzis szinten, ezrt brmikor frissthetjk, javthatunk, kivehetnk illetve hozzadhatunk adatokat. Ezeken kvl szmos szolgltatssal tudjuk mg kiegszteni digitlis trkpnket mint: Helyzet meghatrozs. Trkp rtegek dinamikus kezelse. Tvolsg, terlet szmts. Digitlis trkpek htrnyai: Adatok helyes megjelentse. Sok adat esetn nehz megtallni az egyenslyt minsgi s mennyisgi tulajdonsgok kztt. Pl.: ebben az

4.1. bra. Ingatlanok listja Los Angelesben esetben, minsgi s informci kzl szempontbl semmitmond ez a trkp, mivel rengeteg marker lthat a trkpen s zavaross teszi a trkpet.

4.2. DIGITLIS KARTOGRFIA Megoldsok: adat csoportostssal

23

4.2. bra. Marker Cluster plda alkalmazs szn kombincikkal

4.3. bra. USA elnk vlasztsi trkp szn kombincikkal

generalizlssal

4.4. bra. Objektumok generalizlsra egy plda

24 4.3. Mirt ksztnk trkpet

4. DIGITLIS TRKPEK

Mielt nekiltunk egy trkp ksztsnek, a kvetkez alapvet krdsekre kell tudnunk egyrtelm s vilgos vlaszt adni. 1. Mi a clja? 2. Kik fogjk hasznlni? 3. Ignyel-e elkpzettsget? 4.4. Adatforrs

Miutn meghatroztuk trkpnk mirtjt, a kvetkez krds az hogy, honnan tudjuk beszerezni az adatforrsokat, ennek tbb mdja lehet: Ingyenes adatforrsok (egy pr plda forrs cmet megadni) Fizets (elfogadhat, drga, megzethetetlen) kategrik Nylvnval, hogy az adatforrsok ra, egyenesen arnyos az adatok rzkenysgvel valamint aktualitsval. Fontos mg megemlteni, hogy az adatok beszerzsnek a kltsge elenysz az adatok feldolgozsnak a kltsghez kpest, erre nzznk egy egyszer pdt: 1. Letltttnk adatllomnyokat az internetrl. 2. Megfelel eszkzt kell tallni, amely kpes feldolgozni az adatllomnyt. 3. Importljuk az adatllomnyokat egy spatial adatbzisba. 4. Adat nomts, azaz, ki kell szrni, hogy mely adatokra van szksgnk. 5. Adat transzformci. Megfelel vetleti rendszerbe val konverzi s adatok csoportostsa. 6. Szrs utn thelyezzk ket egy mr szmunkra megfelel struktrba s tblatrbe. 7. Esetleg feldolgozott adatok exportls.

4.4. ADATFORRS

25

gy gondolom ez a plda elg meggyz ahhoz, hogy mg mielt brmilyen adatot is kezdnk gyjteni, bizonyosodjunk meg arrl, hogy melyek azok az adatok amelyekre elengedhetetlenl szksgnk van s szerves alkot elemei trkpnknek mg mieltt elkezdennk adatokat gyjteni s feldolgozni. Ahhoz, hogy trkpeket ksztsnk, alaptrkpekre van szksgnk. Ezeket honnan tudjuk beszerezni? Az interneten, tanroktl vagy esetleg hivatalos szervektl? Vizsgljuk meg a lehetsgeinket. 4.4.1. Internetes forrsok

Jelenleg egyetlen egy ingyenes open source alap, rszletes s aktv internetes adatforrsunk van, az Open Street Map (OSM) 1 . OSM kt lehetsget ad az adatok letltsre: 1. OSM trkpen keresztl befoglal ngyzet megadsval. 2. Tmrtett llomnyban. 4.4.1.1. B EFOGLAL NGYZET ALAP ADAT KINYERS

Miutn letltttk az (.osm) llomnyt, ami valjban egy xml le, JOSM alkalmazssal lehet megtekinteni az adatokat. Mivel az xml le-ok tmrtettlensgk miatt nagyon nagyra nhetnek s feldolgozsuk idignyes ezrt csak kis terletre ajnlott a hasznlatuk. Azonban az (.osm) le-ok xml tulajdosguk miatt knnyen olvashatk, rtelmezhetk s platform fggetlensge miatt hasznljuk most. Plda: 1

http://www.openstreetmap.org/

26

4. DIGITLIS TRKPEK

4.4.1.2.

T MRTETT LLOMNY

A kvetkez linken keresztl lehet letlteni az adatforrsokat bz2 tmrtsben, kontinens-rgi-orszg bontsban http://download.geofabrik.de/osm/. Tmogatott adatbzisok: 1. PostgreSQL - relcis. 2. MySQL - relcis. 3. SQLite - relcis. 4. MongoDB - noSQL. 5. CouchDB - noSQL. Az llomnyokat rdemes a kvetkez alkalmazsokkal feldolgozni: 1. osm2pgsql: Postgresql adatbzisrendszerbe importlja az adatokat. 2. osmosis: Postgresql valamint Mysql adatbzisrendszerbe importlja az adatokat. 3. osm2postgresql: Postgresql adatbzisba importlja.

Ha nem elsdleges szempont a rszletessg s az adatok frissessge, akkor http://downloads.cloudmade.c weboldalrl a vektoros adatok elrhetek szinte mindegyik orszgrl osm.bz2, ESRI shape formtumban, amelyeket mr tetszleges mdon feldolgozhatunk s-vagy eltrolhatunk. Az adatok kontinens-rgi-orszg szintre vannak bontva, innen tudjuk kivlasztani, hogy milyen adatllomnyokat szeretnnk letlteni. 4.4.1.3. F IZET OS FORRS

Navteq 2 1985-ben alakult, GIS adatokat szolgltat cg. Az elejn Nokia ltal szponzorlt, aki ksbb 2007-ben megvette a cget, de tovbbra is Navteq-knt van jelen a piacon. Trinformatikai adatbzisokat ad el szles krben, amely magba foglalja2

http://www.navteq.com/

4.4. ADATFORRS 1. Navigcis eszkzkre sznt trkpek.

27

2. Nokia mobil telefonokra teleptett trkpes valamint navigcis szolgltatsokat. Adat felpts szempontjbl Topologikus hierarchit kveti, ezrt nagyon rugalmas s pontos. Fejleszti k ltrehozsa utn, ingyenesen hozz lehet frni bizonyos orszgok, vrosok adataihoz, mint: Nevada Prizs Liszabon Rma Adatformtumok: 1. ESRI Shape le. 2. Nyers RDBMS dump. 3. AutoCAD Dat le. 4. Mapinfo Tab le. Jelenleg a NavTEQ Developer oldaln kt verziban tlthet le az adatbzis. 1. RDF - Relcis alap, amely elmletileg minden relcis adatbzisra alkalmazhat. Gyakorlatban ez nem biztos, mivel a dokumentcik alapjn jelenleg ersen ajnlott a PostgreSQL valamint gyengn tmogatott a MySQL. 2. ODF - Oracle Data Format, azaz Oracle specikus data dump. Ezt jval knnyebb feltenni s hasznlni mint az RDF verzit. RDF - Relational Data Format mint Relcis Adat formtum, egyszer adatbzis szerkezet, nem tartalmazza a spatial adatokat. 109 tblt tartalmaz adatbzis sma, rengeteg informcival szolgl, ezek kzl csak azokat szeretnm megemlteni, amelyek elengedhetetlenek a NAVTEQ RDF adatbzis sma megrtse s hasznlathoz. Mit szolgltat: NAVTEQ ltal denilt adat struktra. Relcis alap.

28

4. DIGITLIS TRKPEK

Adat migrci leegyszerstve, mivel szinte akrmilyen relcis adatbzisra lefektethet. ODF - Oracle Data Format Oracle specikus struktra. Spatial adatbzisra van tervezve, kontinensekre bontva (Eurpa, szak-Amerika, stb...). Mit szolgltat: Geocoding - geokdols felhasznlva Oracle Spatial Geocoder-t. Routing - tvonal tervezs felhasznlva Oracle Spatial Routing motorjt. Map Display - Trkp megjelents felhasznlva Oracle Application Server Trkp megjelent rendszert. RDF - relcis adatstruktra Kt rszre osztjuk az adat tblk megismerst: Struktrlis adattblk. 1. RDF_LINK: lek halmaza. 2. RDF_POI: Point of Interest pontok halmaza. 3. RDF_LOCATION: Pozcik halmaza. 4. RDF_NODE: Cscsok halmaza. 5. RDF_ROAD_LINK: Utcahlzattal kapcsolatos lek halmaza. Rtegek. 1. POI: Point of interest. 2. Location: Pontos informict ad egy pontrl. 3. tvonal hlzat. 4. tjelzk. Tele Atlas - Tom Tom tartozik: 1. Digitlis trkpek.3

3

1984-ben alakult Hollandiban. Szolgltatsai kz

http://www.tomtom.com/

4.5. VEKTOROS ADAT TPUSOK 2. Dinamikus navigcis szolgltats. 3. Helyzet alap szolgltatsok (LBS).

29

2008-ban Tom Tom navigcis cg felvsrolta. Azta nem lehet elrni a fejleszti adatokat, Web szolgltatsok adatait. 4.5. Vektoros adat tpusok

GIS adatok lehetnek vektoros valamint raszteres alapak. Raszteres adatokkal most nem foglalkozom. Vektoros adat tpusokat kt csoportba lehet sorolni: 1. File alap. 2. Adatbzis alap. Absztrakcis szinten az adatokat reprezentcis jellegk alapjn lehet kategorizlni ket, mint pont, vonal, poligon objektumok. Minden egyes objektumhoz tartozik ler adatok is tartoznak, amelyek numerikus valamint karakteres rtkeket vehetnek fel. Egy ler adat ltalban kulcs-rtk prosbl tevdik ssze, pl.: (name, "Peter"), (age, 47), ... Vektoros adatok alapja a pont objektum, amely (X,Y) koordintkbl tevdik ssze, megjegyzem, szndkosan nem emltettem Z magassgi koordintt, mivel a mreszkzk, mg nem tudjk pontosan s megbzhatan meghatrozni egy adott pozciban a Z magassgi adatot. Pont objektum. ltalban nem szomszdos, klnll objektumok vagy absztakt adatok reprezentlsa hasznljuk. Egy pont null mrtk, ezrt sem hosszt, terletet nem lehet vele mrni. Plda: 1. Iskola. 2. Templom. 3. Point of interest (POI). 4. Vros. 5. Helysgek.

30

4. DIGITLIS TRKPEK

4.5. bra. WorldAtlas: Eurpa orszgok fvrosai Vonal objektumok. ltalban lineris objektumok reprezentlsra hasznljuk. Mivel egy dimenzis adatokrl van sz ezrt csak a hosszukat tudjuk meghatrozni az egyes objektumokrl. Kezdeti s vgpontbl tevdik ssze. Vonal vastagsg, szn alapjn lehet vonal objektumok jellegt csoportokba sorolni. Plda: 1. Border lines. 2. tvonal. 3. Vzrajz.

4.6. bra. WorldAtlas: Eurpa vzrajza

4.5. VEKTOROS ADAT TPUSOK

31

Poligon objektumok. ltalban zrt terletek brzolsra hasznljuk. Kt dimenzis adat, teht egyes objektumokrl meg tudjuk hatrozni a terletetket valamint kerletetket. Poligon objektumok abban trnek el a vonal objektumoktl, hogy a kezdeti s vgpont megegyezik. Szn kombincikkal, mintzattal, szn tmenetekkel tudjuk csoportokba sorolni az egyes objektumokat. Plda: 1. Vros. 2. T. 3. Erd. 4. Orszg. 5. Fldrszlet.

4.7. bra. Yahoo Maps: Ponomo tavak

4.5.1.

File alap

Desktop-os alkalmazsok ltal hasznlt le formtumok tpusa nagy szmossg, ezek kzl vannak binris valamint xml alapak. XML( Extended Markup Language ) ltalnos ler nyelv. Nzznk meg nhny elnyt ember s gp szmra olvashat. ndokumentl formtum.

32 szigor szintaktika. unicode tmogats. internetes technolgik kzkedvelt formtuma. platform fggetlen, mivel le alap. valamint htrnyait: szigor szintaktika miatt, nagyon srlkeny.

4. DIGITLIS TRKPEK

nincs kzvetlen elrs a dokumentum tetszleges rszre. XML s Objektum orientlt megvalsts rugalmatlan. Ezek kzl kt legelterjedtebb: 1. GML ( Geography Markup Language ) 2. KML ( Keyhole Markup Language ) 4.5.1.1. GML4

OGC (Open Geospatial Consortium) ltal denilt. GML Feature. Geometry. Vetleti rendszer SRID-ben megadva. Id. Mrtkegysg meghatrozs. Irnyok

alap tag-ek:

GML geometrik: Point, LineString s Polygon adottak 2.0 verziig, 3.0-tl Raster s Coverage informickkal is rendelkezhet. Pldul: 45.67, 88.56 55.56,89.44 4

http://en.wikipedia.org/wiki/Geography_Markup_Language

4.5. VEKTOROS ADAT TPUSOK 4.5.1.2. KML

33

Keyhole-markup language 5 szintn xml alap. Eredetileg Google-Earth program hasznlta elssorban kt-valamint hrom dimenzis adatok trolsra. rdekessgkppen, eredetileg Google Earth-t Keyhole Earth viewer-nek neveztk, valamint OGC ltal elfogadott szabvny. Egy KML llomny feature-kbl (polygon, pont, kp, text, ...) ll. Pldul: Budapest Magyarorszg fvrosa 47.471944,19.050278,0

Vajon mi a klnbsg KML s GML kztt: 1. KML formtum GML-re alapozva kizrlag Google Earth-re lett tszabva. 2. Brmely GML formtum konvertlhat KML-re, fordtva ltalban nem lehetsges adatvesztssel. 4.5.1.3. B INRIS FORMTUMOK

A hrom legelterjedtebb: Shape (shp) le formtum. Mapinfo (tab) le formtum. DAT (dat) le formtum.5

https://developers.google.com/kml/documentation/

34 4.5.1.4. G EO JSON

4. DIGITLIS TRKPEK

GeoJSON 6 geometriai adatok trolsra alkalmas text alap formtum. GeoJSON a JSON kztes adat kommunikcis formtum kiegsztse. Nagyon knnyen olvashat s szerkeszthet s valamennyivel knnyebben lehet feldolgozni, parse-olni. Nyelvi fggetlensge miatt nagyon gyorsan terjedt el a webes vilgban. Felptse: 1. (Kulcs-rtk) prok gyjtemnye 2. Rendezett rtkekbl ll lista. {"menu": { "id": "file", "value": "File", "popup": { "menuitem": [ {"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } }}

XML megfelelje:

Vizsgljuk meg, hogy mik az elnyei s htrnyai az XML formtummal szemben 7 :6 7

http://geojson.org http://myarch.com/json-pros-and-cons

4.5. VEKTOROS ADAT TPUSOK Elnyei JSON XML

35

Javascript ltal tmogatott automati- Fejlesztnek kell megrnia a Javascript zlt feldolgozs kdot Jl tmogatott minden bngszben XML feldolgozs eltrhet bngsznknt nvterek,

Rvid tmr lers (kulcs-rtk) felp- Bbeszd attribtumok, tsnek ksznheten tagek miatt Gyors de-s-serializls Jobban tmogatott Javascript third party AJAX komponensek ltal Lassabb deserializls

Mra sajnos kevsb tmogatott

Nagyon egyszer knnyen rthet API- Bonyolult, fleg hibakezels szempontkkal van tmogatva jbl Htrnyai JSON Sajnos nincs hozz validtor XML Bevlt s hatkonyan mkdik az XML DTD

Mg nem tmogatott a nvterek hasz- Alapbl tmogatott nlata Egy GeoJSON objektum a kvetkez tag-gekbl tevdik: geometria (geometry) "geometry": { ... }

jelleg (feature) "type": "Feature", "geometry": { ... }

36 jellegek egy halmazt (feature collection) "type": "FeatureCollection", "features": [ ... ]

4. DIGITLIS TRKPEK

A kvetkez alap geometria tpusokat tmogat: 1. Point 2. LineString 3. Polygon 4. MultiPoint 5. MultiLineString 6. Multipolygon 7. GeometryCollection (a fent emltett tpusok egy halmaza) Ezen kvl, minden egyes geometria objektumhoz csatolhatunk mg egyb text alap ler adatokat is. Plda: { "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": { "type": "LineString", "coordinates": [ [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0] ] }, "properties": { "length": 12, "unit": "metric" }

4.5. VEKTOROS ADAT TPUSOK

37

}, { "type": "Feature", "geometry": { "type": "Polygon", "coordinates": [ [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ] ] }, "properties": { "name": "Dummy", "dates": {"published": "1999-12-31", "accepted": "2000-03-12"} } } ]

4.5.1.5.

W ELL -K NOWN -T EXT-F ORMAT

WKT 8 egy hiperszveges jellnyelv, amely vektoros geometria adatok reprezentlsra alkalmas formtum. Binris megfelelje WKB (Well-Known-Binary-Format) adatok trolsra alkalmas GIS adatbzisokban, mint PostGIS, Oracle Spatial. Alap geometria tpusokon kvl, minden egyes geometria adatra megadhatjuk azok vetleti rendszert is. Plda: GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10)) POINT ZM (1 1 5 60) POINT M (1 1 80) POINT EMPTY MULTIPOLYGON EMPTY

4.5.2.

Adatbzis alap

Egy relcis adatbzis alap adattpusai mellett vannak kiegsztett trbeli tpusok is, valamint ezekhez kapcsold program csomagok. ltalban kiegszt programmal8

http://en.wikipedia.org/wiki/Wellknown_text

38

4. DIGITLIS TRKPEK

lehet feltelepteni a meglv relcis adatbzis mell. Kiegsztett program csomag ltalban a kvetkez alap szolgltatsokat tartalmazza: 1. Trbeli mrsek (pont s polygon kzti tvolsg, terleti szmtsok). 2. Trbeli fggvnyek (geometria objektumok konstruktorai s hozzjuk tartoz manipulcis fggvnyek). 3. Trbeli lltsokat lekrdez fggvnyek (adott pont benne van-e egy polygonban, metszik-e egymst, rintik-e egymst, . . . ). 4. Meggyel fggvnyek (adott polygon slypontja, kzppontja) Trbeli lekrdsek nagyon kltsgesek ezrt trbeli indexek (spatial indexes) segtsgvel tudjuk felgyorstani. Open source spatial adatbzis rendszerek: 1. PostgreSQL - PostGIS extension. 2. MySQL Spatial. 3. Spatial Lite - SQLite alapon. 4. MongoDB Jelenleg PostGIS a legfejlettebb s a legjobban tmogatott programozsi API-k s opercis rendszerek szempontjbl. Sklzhatsgval sajnos mg nem tud versenyezni. Kereskedelmi spatial adatbzis rendszerek: 1. Oracle Spatial. 2. Microsoft SQL Server. 3. IBM DB2. Ezek kzl Oracle spatial terjedt el a legjobban, robosztussga s sklzhatsg miatt. Ezenkvl Oracle Express10 (Oracle XE) fejleszti adatbzissal is tmogatja a programozkat. Oracle XE szinte minden funkcit tartalmaz mint egy hagyomnyos Oracle relcis adatbzisban, kivve a kvetkez korltozsokat:9 10

9

http://en.wikipedia.org/wiki/Spatial_database http://www.oracle.com/technetwork/products/expressedition/overview/index.html

4.5. VEKTOROS ADAT TPUSOK Csak 1 processzort hasznl. Maximlis RAM kihasznltsg: 1GB. Adatbzis mrete 4GB-ra van korltozva. Particionlt objektumokat nem lehet ltrehozni. Nincs beptett JVM (Java Virtual Machine). 4.5.2.1. OGC - O PEN G EO S PATIAL C ONSORTIUM

39

A fent emltett trinformatikai adatbzisok tbbsge az Open GeoSpatial Consortium (OGC) 11 ltal meghatrozott geometriai modelleket tmogatjk. Hierarchikus felsorolsban: Geometry (nem incializlhat) + Point (incializlhat) + Curve (nem incializlhat) . LineString - Line - LinearRing + Surface (nem incializlhat) . Polygon + GeometryCollection (nem incializlhat) . MultiPoint . MultiCurve - MultiLineString . MultiSurface - MultiPolygon

Egy geometria alaprtelmezett attribtumai lehetnek: type tpusa, azaz melyik OGC modell ltal megadott osztly egy pldnya. SRID melyik vetleti rendszerben van. Coordinates coordintk rendezett sorozata. Dimension dimenzi hatroz.11

http://www.opengeospatial.org/

40

4. DIGITLIS TRKPEK

4.8. bra. OGC Geometria objektum orientlt model szerkezeti felptse 4.5.2.2. M Y SQLSPATIAL

MYSQL spatial kiegszt csomagja tmogatja a trbeli adatok 1. Generlsa. 2. Trolsa. 3. Feldolgozsa. szolgl fggvnyeket, valamint Adat optimalizcis szoftver komponenseket. 4.5.2.3. P OST GIS

PostGIS egy szoftver csomag PostgreSQL adatbzishoz. Szabvnyos OGC adattpusokat tmogatja. A trkpi adatokat ktflekppen lehet trolni: geometry - skbeli adatok trolsra. geography - geodziai adatok trolsra. Rengeteg generls, feldolgozs, trolsi fggvnyt tartalmaz. Ezenkvl nagyon sok vetleti rendszert tmogat, mg sajt magunk is denilhatunk vetleti rendszert. GIST tpus trbeli indexelst hasznl. 4.6. Alkalmazs terletek

Hrom alkalmazsi terletre csoportosthat. 1. Desktop-os alkalmazsok.

4.6. ALKALMAZS TERLETEK 2. Web-es alap alkalmazsok. 3. Hordozhat eszkzkn fut mobil alkalmazsok. 4.6.1. Dekstop

41

4.9. bra. Quantum GIS - Opensource alkalmazs A dekstop-os alkalmazsokkal elnyei: Nagy tuds. Jl dokumentlt. Robosztus. Nagy adattmeg feldolgozsa, kihasznlja az ers gpi adottsgokat. Megbzhat. valamint htrnyai: Drga liszenc. Nha rugalmatlan, pl. csak a sjt le formtumait tmogatja. Nagy erforrs igny. Nha elkpzettsget, vagy betantst ignyel, mivel nehz a hasznlata. rvek szlnak.

42 4.6.2. Web

4. DIGITLIS TRKPEK

A webes alkalmazsok mr alig trnek el a dekstop-os alkalmazsoktl, miutn megjelent a HTML5 szabvny gy gondolom, hogy nem sokra ugyanazokat a funkcikat tudjk teljesteni, mint brmely desktopos alkalmazs. Javascript motor az egsznek a lelke, amely minden bngszben ott van. Radsul a Javasrcipt kliens oldalon fut kd. Javascript mellett szl rvek: 1. Platform fggetlen. 2. Knnyen megtanulhat. 3. Szles krben tmogatott. 4. Jl dokumentlt. 5. Rengeteg opensource program knyvtr nyjt segtsget a gyorsabb fejleszts rdekben. Radsul, nem rg megjelent HTML5 szabvny rengeteg jjts tartalmaz, fleg graka tren. Nzzk meg a HTML5 szabvny fbb API-jait: Canvas Grakai elemek megjelentse. Eurpai trkp kirajzolsa canvas segtsgvel.

4.10. bra. Eurpa orszghatrai kirajzolsa canvas segtsgvel

Audio s Vide Hang s vide anyagok lejtszsa, Flash plugin nlkl.

4.6. ALKALMAZS TERLETEK

43

Geolocation Helyzet meghatr programozi fellet. Bngsz tmogatsa s felhasznli engedlyezs szksges. Plda kd:

if( navigator.geolocation ){ navigator.geolocation.getCurrentPosition(handleGeolocationResults); } function handleGeolocationResults(position){ console.log(position.coords.latitude); }

Secured Communication Biztonsgos kliens-kliens, kliens-szerver kztti kommunikci. Formok Alaprtelmezett web-form elemek. Workers Httrben fut szlak. Storage Loklis s webes felhasznli adatok trolsa bngsz szinten. WebGL Webes grakai feldolgozs s megjelents loklis gp videkrtya felhasznlsval (pl. Doom). Jelenleg szmos kontra rv szl a webes technolgikkal szemben, mint Felhasznli adatok biztonsg, web-es security. Internet kapcsolat szksgessge. Lassabb mint desktop-os alkalmazsok tbbsge. Adatok biztonsgos kezelse (pl. archivls). azonban elterjedtsge s platform fggetlensge miatt sokkal rugalmasabban hasznlhat.

44 4.7. Hordozhat eszkzk

4. DIGITLIS TRKPEK

Jelenleg a legelterjedtebb mobil keretrendszerek s hozz tartoz fejlesztsi nyelv: 1. Android OS - JAVA. 2. iOS - Objective C/C++. 3. Blackberry OS - JAVA. 4. Windows Phone - .NET C#. 5. Symbian - Symbian C++. 6. MeeGo - C++ s QT. 7. JAVA Micro Edition - "Minied" JAVA. Sajnos ezek kzl a Symbian s MeeGo keretrendszerek fejlesztst felfggesztettk. Ennek ellenre Symbian opercis rendszereken fut telefonok jelenleg is a mobil telefonok piacn egy jelents rszt kpviselik. Mobil alkalmazsok lehetnek natv, azaz a keretrendszer sajt fejlesztsi nyelvvel elksztett, illetve webes alap. Natv alkalmazsoknl, trkp megjelentsi szempontbl az egyik legfontosabb tnyez a grakus knyvtr hasznlhatsga s kpessge. Jelenleg OpenGL ES (OpenGL for Embedded Systems) program knyvtr ltezik mobil eszkzkre, amelyek alkalmasak 3D grakai megjelentsre is, valamint Windows Phone alatt DirectX, ami sajnos nem nylt forrskd. Webes alkalmazsok graphikai megjelentsre csak HTML5 szabvny szerinti WebGL (Web Graphics Library) 12 javascript alap program knyvtr ltezik, amely szintn alkalmas 3D grakai megjelentsre web bngszn keresztl. Webes alap alkalmazsok ltalban kliens-szerver architektrjuak, amelyek internet hozzfrst ignyelnek, de futhatnak oine zemmdban is. Mirt is van szksg webes alap mobil alkalmazsokra? Erre a vlasz egy krds: Mirt kell minden egyes platformra kln-kln implementlni egy alkalmazst, amikor elg egyszer megrni egy olyan alkalmazst, amely futtathat minden platformon? Jelenleg a legelterjedtebb webes-mobil javascript alap keretrendszerek a kvetkezek:12

http://en.wikipedia.org/wiki/WebGL

4.7. HORDOZHAT ESZKZK jQTouch13

45

Sencha Touch 2 iUi15

14

iScroll

16

Vizsgljuk meg, hogy milyen szempontokat kell mrlegelnnk, amikor el kell dnteni, hogy webes alap vagy natv alap legyen egy mobil alkalmazs. Natv alkalmazsokra vonatkoz elnyk: 1. Kompatibilis telefonon fut ms alkalmazsokkal, mint kamera, GPS, Driverek, ... 2. Gyors, erforrst kml. Natv alkalmazsokra vonatkoz htrnyai: 1. Szinte minden egyes mobil platformra meg kell rni vagy portolni az alkalmazst. 2. Letltst, valamint teleptst ignyel. 3. Keretrendszert kibocst cg ltal elfogadottnak kell lennie (certied). Webes mobil alkalmazsokra vonatkoz elnyk: 1. Nem kell keretrendszer kibocst cg ltal elfogadottnak lennie (certied). 2. Nincs letlts valamint telepts. Webes mobil alkalmazsokra vonatkoz htrnyok: 1. Nem fr hozz ms rendszer alkalmazsokhoz. 2. Nem kpes oine mdban futni. 3. Adatkapcsolatot ignyel. 4. Korltozott hardver erforrs felhasznls.13 14

http://www.jqtouch.com/ http://www.sencha.com/products/touch/ 15 http://code.google.com/p/iui/ 16 http://cubiq.org/iscroll

46

4. DIGITLIS TRKPEK

5 Generalizls s topolgia

5.1.

Bevezets

Ahhoz hogy a nagymretarny trkpbl kisebb mretarny trkpet hozhassunk ltre a meglv llomnyokat oly mdon kell ritktani, hogy a lnyeg megmaradjon, ugyanakkor flsleges vonalak, a krdses mretarnyban brzolhatatlan rszletek ne terheljk a trkp ttekinthetsgt s ne nveljk az ellltshoz szksges adatllomnyt. Ezt a bonyolult mvelet sort a kartogrfusok generalizlsnak nevezik. A generalizlst hierarchia szintjei. Az els szint azoknak az objektumoknak a megvlasztsa, amelyeknek a krdses trkpen egyltaln szerepelnie kell. Gondoljunk arra, hogy mg egy turista trkpen feltntetjk az sszes fldutat, turista utat, turista hzat, tzrakhelyet, stb. a sokkal kisebb mretarny auttrkpen ezek kzl csak a fontosabbak kerlnek brzolsra. A msodik szint az objektumok sszevonsa trtnik sszefoglal objektumokk pld. a klnll hzakbl tmbket alaktunk ki vagy a mretarny tovbbi cskkentse esetn a tmbkbl csak a hatrvonalukkal brzolt teleplseket. A kvetkez hierarchia szint a megmaradt egyszer vagy sszetett objektumokat vizsgljuk meg abbl a szempontbl, hogy vals mreteik meghaladjk-e a mretarnyhoz rendelt minimumot, ha igen gy a kvetkez lpsben egyszerstnk a (kr)vonalaikon, ha nem adott mret egyezmnyes jellel helyettestjk. 47

48

5. GENERALIZLS S TOPOLGIA A kvetkez lpsben egyszerstjk a nem egyezmnyes jellel brzolt, megmaradt objektumok hatrvonalait, ezt nevezzk vonalgeneralizlsnak.

A vektoros adatkszletek szerkezete, kategorik: 1. Alappontok 2. Teleplsek 3. Ltestmnyek 4. Kzlekeds 5. Hidak 6. Vzrajz 7. Vzi s hajzsi ltestmnyek 8. Domborzat 9. Nvnyzet 10. Hatrok 11. Szveges informcik Generalizlsnak klns szerepe van a vonalas objektumoknak, folyk, utak, vasutak, stb. kategrikban. Ezek az objektumok ugyanis els lpsben egy vonall olvadnak ssze. Az automatikus generalizls ignye egyids a digitlis trkpkoncepci megszletsvel, valban hatkony flautomatikus programrendszerek csak az utbbi nhny vben jelentek meg. A generalizls teljes automatizlsa, vagy ahogy ms elnevezssel illetik a tbb mretarny adatbzisok redundancia mentes kialaktsra mg nincs kiforradt technika, algoritmus vagy mdszertan. Generalizls sok kategriban lehet, kell alkalmazni, azonban ezek kzl a legfontosabbak: 1. Vzrajz generalizlsa. 2. Kzlekedsi utak generalizlsa. 3. plet generalizls.

5.2. VEKTOROS ADATMODELL 4. Zrt terletek generalizlsa.

49

Vzrajz generalizlsnl nem szabad eltrnnk tlsgosan az eredeti geometritl, mivel ez az elsdleges tmpont, brmilyen tpus trkprl is van sz. Kzlekedsi utak generalizlsnl, mr egy kicsivel tbb szabadsgfokot kapunk, azonban mrlegelni kell, hogy mennyire fontos a pontossg megtartsa. Egy navigcis kszlk esetben, a pontossg nem elhanyagolhat tnyez. Kvetkezskppen a generalizlst, nem tudjuk teljesen automatizlni, mivel trkp jellege alapjn kell dnteni, hogy mely kategrik adatait kell elsdlegesnek, s melyeket szabad msodlagosnak tekinteni. Azonban, egy j adatmodelll felpts sokat segthet a generalizls folyamata sorn. Mivel kategorik, priorits, rang s objektumok kzti relci alapjn mr eldnthet, hogy mely objektumokat vonhatunk ssze, mely vonalakat egyszersthetnk. A kvetkez fejezet bemutatja, jelenleg milyen adatmodelll felptsek vannak alkalmazsban s tulajdonsgaikat vizsglja generalizls szempontjbl.

5.2.

Vektoros adatmodell

1985-ben Grnreich [3] adott egy modellt a generalizlsi folyamatra, amely a kvetkez hrom lpsbl ll: 1. Objektum generalizls. A valsgban lev adatokat abszrakcis szinten val vizsglata s megvalstsa adatbzis szinten. Eredmnye az elsdleges modell (Digital Spatial Primary Model). 2. Modell generalizls. Az elsdleges modelben lev adatoknak (nem geoemtriai adatokra vonatkozan) az egyszerstse, generalizlsa statisztikai adatok alapjn s emberi beavatkozs mellett, eredmnye a msodlagos model (Digital Spatial Secondary Model). 3. Kartograi generalizls. Fleg a megjelentsi adatok generalizlsra koncentrldik. Sokan a generalizlsi folyamatt ezzel a lpssel azonostjk, azonban mint lthatjuk, az els kt lps nlkl, nem lenne pontos s helyes a generalizlsi folyamat.

50

5. GENERALIZLS S TOPOLGIA

5.1. bra. Grnreich generalizcis modell - 1985 ESRI GIS szerint: 5. Denici (GIS adatmodell). A vals vilg lekpezse pontok, vonalak s poligonok felhasznlsval. Vektoros model klnll hatrvonalakkal elvlasztott adatok trolsra alkalmas, mint orszg hatr, fldrszletek, vagy utck.1 A fldrajzi objektumok jellemzsre a helyzeti-, a leradatok (azonost, geokd, szakadatok, minsgi adatok) s a trbeli kapcsolatok vannak 2 . Vektoros adatmodelll szempontjbl a 5 jellemz : 1. Trbeli adatok - koordintkkal brzolva. 2. Objektum azonost - egyedi kulcs, amellyel egyrtelmen. meghatrozhat egy objektum. 3. Szakadatok - klnbz attribtum tblkba foglalt ler adatok. 4. Minsgi adatok - klnbz forrsokbl szrmaz adatok minsgi s megbzhatsg lersra szolgl adatok. 5. Topolgia adatok - objektumok kztti trbeli kapcsolatok lersra vonatkoz adatok. Az objektumokhoz tartoz ler adatok, objektum osztlyonknt vltoznak. Az utak objektum osztly ler adatai lehetnek pl.:1 2

http://support.esri.com/en/knowledgebase/GISDictionary/term/vector%20data%20model http://www.geo.u-szeged.hu/oe/fotogrammetria/GeoInfo/geoinfo5.htm j

5.2. VEKTOROS ADATMODELL szlessg. burkolat minsg. terherbrs. svok szma. ...

51

Azonban, egy vzrajz objektum osztlyhoz ms ler adatok tartozhatnank mint folyamirny szlessg mlysg idszakossg rtr ... Teht a vektoros adatmodelll egy geometriai (grakai) s ler (szveges) kettsbl tevdik ssze. Rugalmatlansg. a legnagyobb problmja a modellnek, mivel j objektum osztly esetben, j ler struktrt kell ltrehozni, s struktrhoz tartoz lekrdez felletet is meg kell valstani. sszetett lekrdezsek esetn rendkvl bonyoulult s hatkonysgi szempontbl sem meggyz. Megolds?. Nzznk erre egy-kt megoldsi lehetsget. 5.2.1. Szegmens trols

Vektoros adatmodelllben. minden helyzetet (x,y) koordintkkal reprezentljuk. A pontokat egyszer koordintk alapjn troljuk. A vonalakat rendezett pont koordintk sorozataknt troljuk. Poligonokat vagy terleteket szintn rendezett pont koordintk sorozataknt troljuk mg egy megktssel, hogy a kezdeti s vg pontok megegyeznek.

52

5. GENERALIZLS S TOPOLGIA

1. Geomeriai s szveges adatok szegmens trolsa, azaz a geometriai s szveges adatok egyttes trolsa. Objektum orientlt felpts esetn rendkvl gyors az elemek keresse, listzsa, megjelentse. Adat mdosts s topolgia kialaktsa rendkvl krlmnyes s sok munkval jr, nem automatizlhat. 2. Geometriai adatokat kln osztlyonknt troljuk, a szveges adatokat egy helyen troljuk. Grakus lekrdezsek s szerkesztse gyorsabb, azonban szveges elemeket kln kell szerkeszteni s rugalmatlan a struktrja. gy ktszeres kltsggel jr. 3. Geometriai adatokat kln osztlyonknt, szveges adatokat is kln osztlyonknt troljuk. Geometriai objektumok keresse s szerkesztse lassabb, azonban a topolgia felptse knnyebb.

5.2. bra. Egy szegmensen belli trols

5.3. bra. Geometriai osztlyozs - szveges adatok egy szegmensen Jelenleg a legelterjedtebb adatmodelllezs a Spagetti modell, egyszersge miatt alkalmazzk.

5.2. VEKTOROS ADATMODELL

53

5.4. bra. Geometriai osztlyozs s szveges adatok osztlyozs szerint vlasztva 5.2.2. Spagetti modell

A spagetti modell a lehet legegyszerbb adatmodelll, mivel nem kvn semmilyen megktst azon kvl, hogy a pontok s azok sszekttetsre tesz megszortsokat. Teht nem trolja az objektumok kapcsolatt, mint szomszdsgi, tartalmazsi, tvolsgi tulajdonsgokat. Olyan esetekben ajnlott a spagetti model hasznlata, amikor nem fontos: Adatok analzise. Hibs adatok. Adatok inkonzisztencija azaz redundancia. Szerkeszts pontossga. Nzznk erre egy pldt: vagy csak megjelentsi szempontbl szeretnnk felhasznlni a vektoros adatokat. Ezenkvl fldmrs, nyilvntarts alkalmazsi szempontjbl hasznlhatatlan, mivel az objektumok tfedse megengedett. Pldul az ESRI Shape le-ok spagetti modellben vannak trolva. 5.2.3. Topologikus modell

A topolgia a geometriai elemek trbeli kapcsolatt rja le. Vektoros adatok elemzsben, valamint fldmrs s nyilvntarts alkalmazsi szempontbl elengedhetetlen. A nem topologikus adatmodellleknl lthattunk, hogy nem csak az objektumok analzist, hanem az adatok redundancijt sem tudjuk kikerlni, azaz tbb trhelyet ignyel. 6. Denici (Topolgia). Trbeli viszonyt denil objektumok kztt, mind szomszdsgi s kapcsolati tren. Megadja az objektumok kztti s helyzeti kapcsolatot.

54

5. GENERALIZLS S TOPOLGIA

5.5. bra. Objektumok tfedse s pontok redundancija

5.6. bra. Struktrlatlan adatmodelll trols A topolgikus adatmodelllnek a kvetkez kritriumokat kell teljestenie: 1. Objektumok kztti topolgiai viszonyok trolsa. 2. Hibs objektumok felvtelnek tiltsa, mint nyitott poligon, adat redundancia. 3. Egyszer s sszetett poligonok trolsnak engedlyezse. 4. Adott objektum- objektum osztly ler adatainak hatkony trolsa. 5. Topolgikus lekrdezsek lehetsge. Knnyen kell tudnia vlaszolnia, mint mely telkek szomszdosak a 41399/2 HRSZ ingatlannal. 6. Elosztott geometrik kezelse, jobb adat minsget biztostsa. 7. Adat integrits s rendundancia kikszblse. Topolgikus trols sokkal elnysebb a spagetti modellhez kpest, mivel kevesebb kltsggel jr egy objektum szerkesztse gy, hogy megtartsj a fent emltett

5.2. VEKTOROS ADATMODELL

55

5.7. bra. Topolgiai komponensek kritriumokat, ezenkvl mg a trbeli hibkat is ki tudja kszblni mint, csompont hiba (node error), kapcsolat hiba (connectivity), vagy terlet hiba (area denition error). Mit is jelentenek ezek a hibk: 1. Node Error: egy adott pont jellege vltozhat, attl fggen, hogy milyen objektumok hivatkoznak r. Pldul: Ha a csomponthoz egy vonal kapcsoldik, akkor az vgpont, amely lehet hzag vagy tlnyls eredmnye. Ha kt vonal kapcsoldik, akkor nem csompontrl, hanem trspontrl van sz. 2. Terleti hiba: Amennyiben a kt terletrsz kztt kis hzagok, digitalizlsi hibk tallhatk, akkor a kt terletrsz az adatbzisban, nem kvnatos mdon egy terletknt fog megjelenni. Ezenkvl, az nll terletek hinynak feldertsben kap nagy szerepet ez a hibakeressi mdszer. Egy topolgikus trkpen nem csak a geometriai adatok ltjuk, hanem tartalmazza az objektumok kzti topologikus viszonyokat is. Lehetsges topolgiai viszonyok: 1. Kapcsolati (connectivity): vonal objektumok, hol metszik, vagy kapcsoldnak. 2. Irny: Honnan hov avagy forrs s cl (from-node, to-node). 3. Szomszdsgi: Bal illetve job oldali szomszd. 4. Tartalmazs: Adott objektum benne van-e, vagy tartalmaz-e ms objektumokat. Minden egyes objektum, lekpezhet az alap topolgia komponensek kombincijaknt. Az albbi brn lthatjuk, hogy igazbl csak terminolgiailag van klnbsg a string s chain objektumok, ring s simple polygon objektumok kztt. Alap topolgiai komponensek:

56 1. Point: egyszer pont.

5. GENERALIZLS S TOPOLGIA

2. Node: tkzsi pont, kitntetett pont, ahol tbb vonal tallkozik. 3. Line Segment: egyszer szakasz. 4. Link: Kt szakaszt sszekt szakasz. 5. Directed Link: irnytott szakasz. 6. String: szakaszok sorozata. 7. Chain: irnytott szakaszok sorozata. 8. Arc: v. 9. Ring: Zrt szakaszok sorozata. 10. Simple Polygon: Egyszer poligon, nincs tartalmazs. 11. Complex Polygon: sszetett poligon. Ha kvetjk a pont-vonal-terlet felptst, akkor a topolgia az egyes ptelemek kztti lpcsfokot jelenti. Termszetesen ktirny kapcsolatrl van sz, pldul: vonal-terlet s terlet-vonal kapcsolat. A pont-vonal-terlet topolgia kzl nzzk meg a legjellemzbbeket: Terlet-vonal topolgia. Ez a kapcsolds azt rja le, hogy egy terletrszt mely egymssal sszekapcsold vonalak hatrolnak. A terleteket nem cscspontok, hanem a hatrol vonalelemek megadsval rjuk le. A digitlis trkpezs is intuitve azt diktlja, hogy a hatrol elemeket digitalizljuk s a kzttk lv terletrszeket pedig a hatrol elemek megfelel oldalhoz kapcsoljuk. Kt terletet nagyon sokszor egy vonalas ltestmny (t, vast) vlaszt el egymstl. A topolgira alapozva elegend a vonalas objektumot trkpezni s a terleteket a vonal kt oldalhoz kapcsolni. Felesleges kln a terleteket s kln a vonalat geometriai elemekkel brzolni. Nem beszlve arrl, hogy ha kln trkpezzk ket, akkor hatatlanul egymsra rajzoldnak s a hrom elembl csak egyet fogunk ltni. Csak a terletvonal topolgival lehet olyan problmkat megoldani, mint az elklnl, darabolt terletek (szigetek, osztott erdrszletek), vagy az egyik terleten bell egy vagy tbb msik, szigetszer terletelem lersa.

5.2. VEKTOROS ADATMODELL

57

Vonal-terlet topolgia. Az elbbi kapcsolattpus fordtottja, amely nem azt mondja meg, hogy egy terletet mely vonalak hatrolnak krbe, hanem azt, hogy a vonal bal s jobb oldaln milyen terletek tallhatk. Ez a kapcsolat biztostja az egyes terletek szomszdsgi viszonyainak meghatrozst. A bal s jobb terletek azonossga, klnbzsge alapjn meghatrozhatjuk a vonal kirajzolsnak mikntjt. Ha a bal s jobb terlet azonostja megegyezik, akkor a vonalra kirajzolhatunk egy kapcsoljelet (klammer), ha a terletekhez rendelt attribtumok valamelyike egyezik meg, akkor a vonalat elhagyhatjuk. Ha a vonalas elem egy foly geometriai modelljt kpviseli s a vonal bal s jobb oldaln lv terletek nem azonos orszghoz tartoznak, akkor a vonal egyben llamhatr is. Ez a plda arra vilgt r, hogy digitalizls, az adatbzis kialaktsa sorn a termszetes hatrokat kell trkpeznnk, a mestersges hatrok rendszerint levezethetk a vonal-terlet topolgia gyelembe vtelvel. Vonal-csompont topolgia. Ez a kapcsolat rja le, hogy az egyes vonalak mely csompontok kztt hzdnak. A vonalas trbeli kapcsoldsok elemzsre hasznlhatjuk. Alapvet szerepe van a kvetkez topolgia kialaktsnl. Csompont-vonal-csompont topolgia. Ez a kombinlt trbeli kapcsolds az alapja a hlzat-analzisnek. A topolgia segtsgvel knnyedn megmondhatjuk, hogy milyen tvonalakon juthatunk el az egyik csompontbl egy msikba. Az tvonalak kzl az rintett vonalak hosszsgnak ismeretben kivlaszthatjuk a legrvidebbet. A hlzat-elemzsen kvl ez a kapcsolds alkalmas a topolgiai hibk feldertsre is. A topolgikus adatmodelllt tmogat rendszerek ktflekpp vgezhetik el a trbeli kapcsolatok kialaktst: 1. Szakaszosan (o-line topology): Geometriai objektumok szerkesztse utn egy menetben kerl kialaktsra a topolgia. Sok objektum esetn sok idt vesz ignybe. Ha kevs vagy csak egy-kt objektumot vltoztatunk, akkor is az egsz adathalmazon kell vgig menni. Lass s nem hatkony mdszer. 2. Vals idben (online vagy realtime topology): Ha futsidben meg tudjuk hatrozni a trbeli kapcsolatokat az aktulis szerkesztett objektum, s krnyezete kztt, akkor nagy adat vltozatats sorn sincs nagy feldolgozsi id, vagy

58

5. GENERALIZLS S TOPOLGIA szmtsi igny. Gyakori geometriai objektumok szerkesztsnl ajnlott a realtime topolgia hasznlata.

Topolgikus lpcsk egy lehetsges implementcija:

1. Pont topolgia: (x:valsszm, y:valsszm).

2. Node topolgia: (pont, ).

3. Arc topolgia: (kezdeti_node, vg_node, jobboldali poligon objektum, baloldali poligon objektum, ).

4. Polygon topolgia: ().

5. Region topolgia: (egy vagy tbb poligon objektumok listja).

Plda. Az brn hrom objektum tallhat, A,B s C. A node-okat Nx y jellsek, valamint az vek Lx y jellsk. A s B objektumok relcijt szeretnm szemlltetni, mint poligon-poligon kzti kapcsolatot. C objektum s ARC1 v kzti bal poligon s jobb poligon relcijt szeretnm szemlltetni.

5.2. VEKTOROS ADATMODELL

59

5.8. bra. Node-Arc-Polygon adatmodelll

PontNodeArcPolygon. topologikus adatmodelllje. Egy node egy ponttal s vek listjval van reprezentlva. Ha egy node vek listja res, akkor izollt pontrl van sz. Izollt pontokkal brzoljuk pozcikat, helyszneket vagy olyan jellegeket, amelyek az egyszersg miatt pontknt van denilva, pldul torony, terek, . . . . Egy poligont, vek listjbl tevdik ssze, az vek tbb poligonhoz is tartozhatnak. Entits diagramja s plda alapjn kinyert adat mezk:

5.9. bra. Pontok topolgija

60 Point P1 P2 ...

5. GENERALIZLS S TOPOLGIA X 1 1 ... Y 2 8 ...

5.10. bra. Node-ok topolgija

Node N1 N13 N6

Arcs L1, L5 L10, L13 L6, L8

Polygons A C B, A

5.11. bra. vek topolgija

Arc L1 L6 L13

Start N1 N6 N13

End N2 N7 N14

LPolygon A B C

RPolygon A C

5.12. bra. Poligonok topolgija

5.3. NOSQL VEKTOROS ADATMODELL Polygon B A C Arcs L6, L7, L8 L1 - L5 L9 - L12 InPolygon A ContainsPolygon B Neighbours C C A, B

61

5.13. bra. Rgik topolgija

Region R1

Polygons A, B

5.3.

NoSQL vektoros adatmodell

A weben megjelen alkalmazsok j kihvsok el lltottk az RDBMS rendszereket: hatalmas adatmennyisgbl a msodperc trt rsze alatt kell eredmnyeket produklniuk. Relcis adatbzisok addig tudtk a lpst tartani, amg az internetes trsadalom szmossga rohamosan megnvekedett, ezltal az nagy mennyisg adatok egyidej elrsnek ignye egyenes arnyban ntt a felhasznlk szmval. Ezrt a hagyomnyos relcis adatbzisok manapsg nehzkesen tudjk kielgteni az informcis technolgik ltal szabott ignyeket, mint struktrlatlan adatok kezelse. szleskr sklzhatsg. mobil s felh alkalmazsok szmtsok tmogatsa. NoSQL adatbzisok tervezsekor ezeket a pontokat tztk ki clul, kevesebb hangslyt fektetve Codd (1970) ltal denilt RDBMS relcis modelre valamint Gray (1983) ltal denilt ACID (Atomic, Consistent, Integerity, Durability) modeljre . Az egyik ilyen ttr cg a NoSQL fejlesztsben Apache, nagy szerepet vllalt, hogy ilyen tempban, minsgben, s nem utolssorban ingyenesen elrhetek a NoSQL adatbzisok. Manapsg rengeteg Web 2.0 alkalmazs, Amazon, Google ilyen fajta

62

5. GENERALIZLS S TOPOLGIA

adattrolsi modelt hasznlnak. A kvetkez fejezetben szeretnk bemutatni nhny NoSQL adatbzis rendszert, amely trbeli informcik trolsra alkalmas. Azok tulajdonsgaira, hasznlhatsgra, adattroli s lekrdez lehetsgeire. 5.3.1. Mi a NoSQL?

Tisztznunk kell azt, hogy NoSQL nem ekvivalens az "anti-SQL" fogalommal. NoSQL ekvivalens a "Not only SQL" fogalommal, amely hangslyozni szeretn azt a tnyt, hogy nem a hagyomnyos relcis lekrdezseket hasznlva krdezi le az adatokat, ebbl az is kvetkezik, hogy ezen adatbzisok felptse nagyban tr el az RDBMS adatbzisok felptstl. Wikpedia dencija szerint: nem ignyel x tbla struktrt s ltalban nem javasoljk a join mveletet. Ez azt jelenti, hogy nincs ktttsg az adatstruktrra vonatkozan, egy adat minden informcit kell, hogy tartalmazzon egy helyen, nem kellenek klnbz forrs tblbl vagy ms adatbzisbl lekrdezni. Sklzhatsga egyszersgben rejlik, mivel nem ignyel sok kongurcit, mert hardware-esen megoldhat tovbbi gpek hozzadsval cluster-ben trtnik. 5.3.2. Brewer CAP ttele

Brewer szerint, kompomisszumot kell ktnnk, magas elrs rendszerek tervezsekor. Hrom f rendszer szint kvetelmyt adott meg, elosztott rendszer esetben, amelyek hlozaton keresztl kommuniklnak. 1. Magas konzistencia, ellentmonds mentes (Consistency). 2. Magas rendelkezsre lls (Availability) 3. Magas partci tolerancia (Partition tolerance). Ezeket rviden CAP-nek (Consistency, Availability, Partition tolerance) nevezzk. Konzisztencia A konzisztencia fogalma az elosztott rendszerek esetn azt jelenti, hogy a trol egy vltoztatst egyik pillanatrl a msikra hajt vgre. Nem trtnhet olyan eset, hogy a rendszer egyes elemei klnbz vlaszokat szolgltatnak a klienseknek. Egy adatbzis konzisztens, ha brmely csompontjbl brmely idpontban ugyanazon informcit kapja vissza a kliens. A konzisztencia klnsen a kritikus s rzkeny adatokkal dolgoz rendszereknl fontos. Ezek pldul a

5.3. NOSQL VEKTOROS ADATMODELL

63

bankok, replterek, llami nylvntart s minden olyan rendszer, ahol hibkat okozhat az inkonzisztens adat megjelense. A NoSQL adatbzisoknl gyengbb elvrsok jelentek meg a konzisztencia fel. Az ezeket az adatbzisokat hasznl rendszereknl gyakran nem okoz problmt, ha egy adatsor nem a legfrissebb vltozatt kapja vissza a kliens. Rendelkezsre lls A rendelkezsre lls szzalkban kifejezhet rtk, amely megmutatja hogy az adott rendszer X idtartambl mekkora Y idtartamban volt elrhet, azaz krsre vlaszolt (responde), termszetesen elfogadhat vlaszidn bell. A legsebezhetbb az egy csompontot tartalmaz rendszer, mert az adatok 100% a eltnik a csompont kiesse esetn. Tbb csompont esetn a hozzfrhetsg mrse bonyolultabb vlik. Ezekben az esetekben elkpzelhet, hogy a rendszer nagy rsze elrhet, de a benne tallhat egyes csompontok kiesse miatt a teljes adattartalmat mg sem tudja elrni a kliens. Load balancing egy megolds az ilyen esetekben relcis adatbzisoknl. Partci Tolerancia A partci tolerancia akkor merl fel egy rendszernl, amikor az azt alkot csompontok kztti hlzatban hiba keletkezik, vagy megsznik a kapcsolat. Ekkor az adatbzis kt klnll hlzatra szakad. A rendszer ekkor vlaszts el kerl: folytathatja a mkdst, vagy lell. A kt hlzat ilyenkor nem tud egyms mkdsrl, teljesen fggetlenl vltoznak a kapcsolat megszakadsa utn. Amikor a hiba megsznik, s a kt hlzat jra egyesl, a rendszernek kpesnek kell lennie az adatokat szinkronba hozni, hogy megszakts nlkl folytathat legyen az adatbzis mkdse. A ttelbl kvetkezik, egyszerre csak kt tulajdonsgot tudunk kielgteni. Ez alapjn hrom tpusba tudjuk besorolni az adatbzisokat: CA (Consistency s Availability) A konzisztencit s a rendelkezsre llst tartjk szem eltt, egy hlzat sztesse esetn mkdskptelenn vlnak a csompontok.Olyan esetekben vannak problmk, amikor repliklni kell az adatbzist vagy tbb gpre kell partcionlni. Az ilyen elven mkd rendszerek: Traditional RDBMSs like Postgres, MySQL, . . . (relcis) Vertica (oszlop orientlt) Aster Data (relcis) Greenplum (relcis)

64

5. GENERALIZLS S TOPOLGIA

AP (Availability s Partition tolerance) Ezek a rendszerek a lehetsgekhez kpest mindig elrhetek, s jl mkdnek a hlzat sztesse esetn is, cserbe feladjk a konzisztencia tulajdonsgot. Ilyenek pldul: Dynamo (key-value) Voldemort (key-value) Tokyo Cabinet (key-value) KAI (key-value) Cassandra (column-oriented/tabular) CouchDB (document-oriented) SimpleDB (document-oriented) Riak (document-oriented) CP (Consistency s Partition tolerance) Konzisztens mkds s partci tolerancia tulajdonsgok vrhatak el az ilyen adatbzis rendszerektl. Hlozat kiess esetn is mkdkpesek, azonban felkellett adni az elrhetsg tulajdonsgot. Neves kpviseli: BigTable (column-oriented/tabular) Hypertable (column-oriented/tabular) HBase (column-oriented/tabular) MongoDB (document-oriented) Terrastore (document-oriented) Redis (key-value) Scalaris (key-value) MemcacheDB (key-value) Berkeley DB (key-value)

5.3. NOSQL VEKTOROS ADATMODELL

65

5.14. bra. Brewer CAP ttele A NoSQL adatbzisok egy msik lehetsges kategorizlsa, felhasznlsi terletk alapjn, ngyet emltenk meg ezek kzl. Ezek fleg az adatstruktra kezelsben s a CAP ttelbl ereden ms-ms kitztt clban trnek el egymstl. Ez a feloszts azonban mr egyre felletesebb, sokkal rugalmasabb kritriumok alapjn lehet ket besorolni valamelyik kategriba, ez abbl is ltszik, hogy a nosql-database.org-on a kezdeti ngy kategribl mra tz lett. Key/Value stores A kulcs/rtk trolk a legegyszerbb szerkezet a ngy csoportbl. Ennl az adatmodelllnl az adott informcit tartalmaz adatrekord egy kulcs segtsgvel lehet egyrtelmen azonostani. A kulcsot a felhasznl maga vlaszthatja meg, esetleg a trolra is bzhatja annak generlst. A tipikus kulcs/rtk trolk string kulcsokkal s string rtkekkel dolgoznak, melyeket byte tmbkk alaktanak. Az rtkek ltalban binrisan biztonsgosan (binary safe) troldnak, gy lehetsg nylik sorostott (szerializlt) objektumok vagy binris fjlok trolsra is. Ezek a trolk gyakran az adatok nagy rszt vagy egszt a memriban tartjk, ezzel gyorstjk a kiszolglst. A cache rendszerektl (pl. Memcached) azonban ezeket az klnbzteti meg, hogy az adatokat valamilyen nem illkony troln is lementik annak rdekben, hogy egy esetleges nem vrt esemny (pl. ramsznet) utn is vissza tudjk lltani

66

5. GENERALIZLS S TOPOLGIA azokat. A jelentsebb trolk ebben a tpusban: Amazon SimpleDB, Microsoft Azure Table Storage, Redis, Tokio Cabinet, Scalien Keyspace (magyar fejleszts), Berkley DB, MemcacheDB

Document stores Dokumentum trolk. Erre a tpusra is jellemz, hogy az adatokat valamilyen hash alapjn trolja az adatbzisban, de magnak a letrolt adatoknak adott szerkezettel rendelkeznek, ezltal az adatbzis kpes az adatstruktra alapjn keresseket s gyjtseket vgezni. Teht struktrlt adattrolsrl van sz. A fejlesztsk mozgatrugja az, hogy a fejlesztk gyakran az adatbzisokban dokumentumokat trolnak, melyeket sokszor csak egy kulccsal (elsdleges kulcs) rnek el. St a vlaszidt cskkense rdekben a normalizlstl, s knyszeren redundancikat vezetnek be az adattrolsi struktrban. Ezeket a rendszereket valsznleg sokkal jobban ki tudja szolglni egy dokumentum trol. A dokumentum trolk legnpszerbb adatstruktra ler nyelve a JSON, amit mr a fenti adatforrs fejezetben rszleteztem egy pr pldval. A jelentsebb dokumentum trolk: CouchDB, MongoDB. Bigtable implementations, Column stores Bigtable implementcik vagy oszloptrolk A Google 2006-ban publiklta a legtbb szolgltatshoz hasznlt Bigtable adattrol specikcijt. Ebben kell rszletessggel lertk, hogy milyen mdon valstottk meg a hatalmasra ntt adatbzisainak trolst. Tbb fejleszts is megindult, hogy a specikciban lert trolhoz hasonl alkalmazsokat dolgozzanak ki. Ezek kzl szmos megolds nylt forrskd, elrhet mindenki szmra. Az RDBMS rendszerek egy tblban a sorokat egyms utn troljk. Ha csak egy mezre van szksge a kliens alkalmazsnak, elszr a sort keresik ki, majd a sorban a megfelel oszlopot. Ettl eltren az oszlopokat sztbontva is lehet szervezni a trol rendszert. Ez az alapja az oszloptrol rendszereknek. Gyakori igny az adatok klnbz verziinak megrzse. Ezt ltalban ezek a rendszerek egy j dimenzi bevezetsvel, a verzival valstjk meg. Plda implementcik: Hadoop, Cassandra, Google BigTable. Graph stores Grftrolk. A Web 2.0 j kihvsok el lltotta azokat a fejlesztknek, akik social networking-el vagy webkettes portlokkal foglalkoztak. Hatalmas s mly hlzatokat, grfokat kell egy-egy portlnak kezelnie, s azokbl kimutatsokat ksztenie. Elg, ha a kzssgi portlok egyik alap funkcijra, a kzs ismersk megtallsra gondolunk. Erre az RDBMS

5.3. NOSQL VEKTOROS ADATMODELL

67

adatbzisok igen gyenge megoldst knlnak, mivel sokszor tbbszrs JOINokkal kell egy-egy informcit kinyerni. Termszetesnek tnik teht, hogy valamilyen ms mdszerrel troljk le ezeket az adatokat. Erre a gondolatra plve fejldtek ki a grf trolk, melyek a grfok feldolgozsa sorn felmerl nehzsgeket szeretnk megknnyteni. A kzssgi hlk utn a msodik felhasznlsi terlete az ilyen tpus trolknak a szemantikus web. A W3C az RDF ajnlssal kvn egy olyan nyelvet a felhasznlk kezbe adni, amivel az egyszer adatokbl strukturlt informciv alakthat a web. Az adatobjektumok kztti hivatkozsok trolshoz az egyik legjobb lehetsg a grf trolk alkalmazsa. Jelentsebb trolk a kategriban: Neo4J, InfoGrid. 5.3.3. NoSQL adatmodell

Nzzk meg, hogyan lehet felpteni az adatmodellt NoSQL adatbzis rendszerekben, topologikus model szablyait betartva. 3 Tekintsk a skrajz eptelemeit: 1. vzrajz 2. hatrok 3. ptett lehatrolsok 4. kzlekedsi elemek 5. vezetkek 6. fldfelszn nvnyzeti s ptett fedettsge Ezen elemek fogjk adni a geometriai objektumok csoportjait. Csoporton bell is lehet tovbbi lebonts, mint pldul a kzlekedsi elemeket tovbb bontjuk jogi besorolsuk szerint: Autplya. Autt. Elsrend orszgos ftvonal. Msodrend orszgos ftvonal.3

http://mercator.elte.hu/ farago/

68 Mellkutak.

5. GENERALIZLS S TOPOLGIA

vagy minsgi, burklati szempontokat vizsglva kategorizlhatjuk: Autplya. Tbbsvost. Mt. Talajt. svny. Dokumentum alap adatbzist fogok felhasznlni, hogy bemutatssam hogyan lehet topolgikus modelt pteni. MongoDB lesz a cl adatbzis, rviden egy pr szt magrl az adatbzis rendszer szerkezetrl.

Struktra. Adatbzis-Collection-Document a felptse. Collection-t gy lehet tekinteni, mint egy tblt sma megktsek nlkl. Egy rekordot JSON formtumban lehet elhelyezeni a collection-be. Minden egyes rekordhoz, rendszer szinten automatikusan ltrejn egy egyedi azonost, termszetesen ezenkvl is hozzadhatunk egyedi kulcsokat. Mivel struktrlt adattrolsi rendszerrl van sz, gy a lekrdezseket is struktrltan kell megadni. Egy nagyon nagy htrnya a JSON formtumnak, hogy nincs hozz mg adat struktra denil dokumentum, mint XML-ben a DTD, ezrt, csak akkor tudjuk meg, hogy rossz a lekrdezs struktrja, ha megkaptuk a "hibs lekrdezst" vlaszt az adatbzistl.

SQL - MongoDB query megfeleltets. Elszr is nzzk meg a szoksos parancssoros eszkzket MySQL, Oracle s MongoDB-n. MySQL eszkzk mysqld (dmon) mysql (kliens) Oracle eszkzk oracle sqlplus (kliens) MongoDB eszkzk mongod (dmon) mongo (kliens)

Fogalmak megfeleltetse MySQL s MongoDB kztt:

5.3. NOSQL VEKTOROS ADATMODELL MySQL terminolgik database table index row, tuple column join elsdleges kulcs - primary key group by MongoDB terminolgik s koncepcik database collection index BSON objektum BSON mez embedding and linking _id mez aggregation

69

SQL lekrdezsek nhny nyelvi elemeinek a megfeleltetse:

70 SQL lekrdezsek

5. GENERALIZLS S TOPOLGIA MongoDB lekrdezsek

CREATE TABLE USERS (a Number, db.createCollection("mycoll") b Number) ALTER TABLE users ADD ... INSERT INTO USERS VALUES(3,5) SELECT a,b FROM users SELECT * FROM users SELECT * FROM users WHERE age=33 SELECT a,b FROM users WHERE age=33 SELECT * FROM users WHERE age=33 ORDER BY name SELECT * FROM users WHERE age>33 SELECT * FROM users WHERE age!=33 SELECT * FROM users WHERE name LIKE "%Joe%" implicit db.users.insert(a:3,b:5) db.users.nd(, a:1,b:1) db.users.nd() db.users.nd(age:33) db.users.nd(age:33, a:1,b:1) db.users.nd(age:33).sort(name:1) db.users.nd(age:$gt:33) db.users.nd(age:$ne:33) db.users.nd(name:/Joe/)

SELECT * FROM users ORDER BY db.users.nd().sort(name:-1) name DESC SELECT * FROM users LIMIT 10 SKIP 20 SELECT * FROM users LIMIT 1 SELECT order_id FROM orders o, order_line_items li WHERE li.order_id=o.order_id AND li.sku=12345 db.users.nd().limit(10).skip(20) db.users.ndOne() db.orders.nd("items.sku":12345,_id:1)

SELECT customer.name FROM custo- var o = db.orders.ndOne(_id:"q179"); mers,orders WHERE orders.id="q179" var name = AND orders.custid=customer.id db.customers.ndOne(_id:o.custid) SELECT DISTINCT FROM users last_name db.users.distinct(last_name)

Spatial opertorok MongoDB-ben:

5.3. NOSQL VEKTOROS ADATMODELL 1. $near [x_coordinate, y_coordinate]. 2. $within benne van-e egy bounding box-n bell. 3. $box, befoglal tglalap. 4. $center, kr kzp pontja krli lemez. 5. $polygon, konvex vagy konkv poligonok.

71

Hogyan is nz ki az adatbzis felptse. Mivel a topolgikus szablyokat beszeretnnk tartani, gy mindenflekppen szksgnk van egy Point nev collection-re, ahol troljuk a pont geometrikat. Most kln-kln ltrehozhatnnk geometriai kategrinknt egy-egy collection-t, azonban tudjuk, hogy NoSQL adatbzisokban a join mvelet nem tmogatott, vagy ha mgis akkor nagyon kltsges, ezrt az sszes objektumot tegyk be egy plane_geometry collection-be. Hogy is nz ki egy rekord: Pontok felptse. { _id: ObjectId("4e77bb3b8a3e000000004f7a"), "type": "Feature", "geometry": {"type": "Point", "coordinates": [102.0, 0.5]} }, { _id: ObjectId("4e77bb3b8a3e000000004f7b"), "type": "Feature", "geometry": {"type": "Point", "coordinates": [103.0, 1.0]} }, { _id: ObjectId("4e77bb3b8a3e000000004f7c"), "type": "Feature", "geometry": {"type": "Point", "coordinates": [104.0, 0.0]} }, { _id: ObjectId("4e77bb3b8a3e000000004f7d"), "type": "Feature", "geometry": {"type": "Point", "coordinates": [105.0, 1.0]} }

72 tszakasz felptse.

5. GENERALIZLS S TOPOLGIA

{ "type": "Feature", "geometry": { "type": "LineString", "coordinates": [ p1_id, p2_id, p3_id, p4_id ] }, "properties": { "Category": "Kzlekedsi elem", "Sub_category": { "type": ["Ft", "Elsrend or "description": "7-es ft" }, "topology":{ "Left_Polygon" : polygon_id1, "Right_Polygon" : polygon_id2, "Start_node": p1_id, "End_node": p2_id } } } Lekrdezsek.

szgos ftvonal"],

polygon_id1 szomszdjai db.plane_geometry.find({ $or : [ {properties.topology.Left_Polygon : polygon_id1}, {properties.topology.Right_Polygon: polygon_id1} ]})

6 Transzformcis algoritmusok

6.1.

Bevezets

Vilgoss vlt, hogy klnbz feladatokhoz klnbz mretarny trkpekre van szksg. ltalnos ttekintsre olyan trkpre van szksgnk, mely az egsz rdekldsre szmot tart rgit olyan mret lapon brzolja, hogy az emberi rzkszervekkel azonnal felfoghat legyen, ha viszont egy konkrt teret vagy utca keresztezdst keresnk, akkor olyan trkpre van szksgnk, mely olvashatan bemutatja ezeket a rszleteket is. A komputer trkpek, klnsen a mobil eszkzkn, sokkal kisebb mretek a papr trkpeknl, ezrt a megfelel hasznlathoz igen rugalmas nagytsi (kisebbtsi) lehetsgekkel kell rendelkeznik. A fldrajzi informcit a legklnflbb szakterletek mvelin kvl szmtalan, klnbz rdeklds, htkznapi ember is hasznlja. Ugyanannak a trbeli objektumnak, pldul egy vrosnak ms s ms a jelentse egy jrvnygyi elemzs vagy busz jrat tervezs szempontjbl, hasonlkppen egyes jrkelk busz vagy villamos jratszmokat keresnek ismert cljuk elrshez, mg msok a clokat, pldul kzel fekv olcs ttermeket akarnak megtallni a trkp segtsgvel. A klnbz felbontsban trtn megjelents esetben a vals vilg objektumai statikusak s mi arra treksznk, hogy tulajdonsgaikat a lehet legjobban mutassuk be a kpernyn. Az objektumok a msodik esetben is vltozatlanok azonban tulajdonsgaik rszben vagy egszben klnbzeknek mutatkozhatnak az egyes szempontok szmra. 73

74

6. TRANSZFORMCIS ALGORITMUSOK

Ezen tlmenen, egyes objektumok irrelevnsak esetleg zavarak is lehetnek bizonyos szempontoknak. A klnbz felbonts trbeli adatok modellezsekor elvileg lehetsges volna csak a legnagyobb felbonts adatokat trolni az adatbzisban, a tbbi felbontst pedig igny esetn ezekre az adatokra tmaszkodva jelen idej generalizlssal levezetni. A szles mretarny tartomnyt fellel automatikus generalizls azonban egyelre nem mindig lehetsges, de ha lehetsges is, vgrehajtsa igen nagy idt vesz ignybe. Generalizls mveletei: Kivlaszts Ezt a mdszert elssorban akkor alkalmazzuk, ha a terepen sok egyms melletti kis formnl a mretarny cskkensvel csak a legjellemzbbeket tartjuk meg. Az egyik legfontosabb s matematikai formulkba legkevsb nthet mdszerrl van sz. A kivlaszts helyessgnek kritriuma, hogy a trkp ezek utn is helyesen adja vissza az adott terlet fldrajzi jellegt.

6.1. bra. Plda a kivlasztsra Egyszersts A trkp zsfoltsgnak elkerlse, ttekinthetsgnek fokozsa rdekben a trkpi elemek mreten felli brzolsa mellett, ezzel egyidejleg alkalmazzk a minimlis mret al sllyed kisebb rszletek elhagyst is. Az t apr kanyarjainak, a szintvonal kisebb kiszgellseinek a tbbsge elmarad, a vonalak futsa, a formk egyszersdnek oly mdon, hogy azrt a jellemz trspontok, kiugrsok megmaradnak.

6.2. bra. Plda az egyszerstsre sszevons Az sszevons lnyege, hogy egy adott mretarny kszbt tlpve bizonyos trkpi elemek mr egyedileg nem brzolhatk, helyettk egy ms

6.1. BEVEZETS

75

sszevont trkpjelet hasznlunk. Pldul a hzak egyedi brzolsrl ttrnk a hztmbkre.

6.3. bra. Plda az sszevonsra

Hangslyozs A terepen hasonlnak tn trgyakat bizonyos fldrajzi jellemzk kiemelse rdekben hangslyosan brzoljuk. Pldul kisebb vrostrkpek esetben a teleplsrl kivezet n. tmen utak jellse az egyb utaktl marknsabb, holott esetleg a valsgban lehetnek azoknl szlesebb, de csak helyi jelentsg utak. Ugyangy hangslyosan brzoljuk pldul a specilis funkcikat ellt pleteket is (memlk, nkormnyzat, turistahz).

6.4. bra. Plda az hangslyozsra

Eltols s Finomts A generalizlsnak ez a tpusa is a mreten felli brzols kvetkezmnye. ltalban akkor alkalmazzuk ezt az eljrst, ha vonalas trkpi elemek a terepen egymstl olyan kis tvolsgban hzdnak, hogy vals helyzetk a trkpen mr nem brzolhat. A mreten felli brzols folytn az egyik jel a trkpen elfoglalhatja a vele prhuzamosan fut jel helyt.

6.5. bra. Plda az eltolsra

76 6.2. sszevons

6. TRANSZFORMCIS ALGORITMUSOK

Pldaknt tekintsk meg a kvetkez spagetti modell alapjn ksztett poligonokat.

6.6. bra. Spagetti modell A feladat, alkalmazni szeretnnk az sszevons mveletet, azonban a kvetkez elfeldolgoz lpseket kell tennnk: 1. Hzagmentests, azaz poligonok kztt fennll hzagokat kitlteni. 2. tfed poligonok kzs rszeit j poligonokk kell alaktani. 3. Nem hzag, de a poligonok kztt nagyon kis szgben nem rnek ssze hibk kijavtsa.

6.7. bra. Kis szgben elklnl poligonok 4. Kijavtott hibk utn, poligonok sszevonsa. Ellenben, ha topologikus modell esetn az els kt eset nem llhatott volna fenn, mivel hzag mentes a topolgikus trolsi mdszer. Topolgikus esetben, viszonylag

6.3. EGYSZERUSTS

77

egyszerbb dolgunk van. Topolgia alapjn meg tudjuk hatrozni az objektumok kzti relcit, mely objektumokat kell sszevonni, valamint szintn topolgibl letudjuk krdezni, hogy mely pontok tartoznak a kivlasztott objektumokhoz. Egy ponthalmazbl kell ltrehozni egy konvex burkot. A legegyszerbb megolds alkalmazni a "Gift Wrapping" algoritmust, o(n h) kltsg, ahol h a burkon lev pontok szmossga. Az algoritmus.giftWrap(S) pointOnHull = leftmost point in S i = 0 repeat P[i] = pointOnHull endpoint = S[0] // initial endpoint for a candidate edge on the hull for j from 1 to |S|-1 if (endpoint == pointOnHull) or (S[j] is on left of line from P[i] to endpoint) endpoint = S[j] // found greater left turn, update endpoint i = i+1 pointOnHull = endpoint until endpoint == P[0] // wrapped around to first hull point

Kltsge. A bels ciklus, minden S halmazbeli pontot megvizsgl. Kls ciklusban minden burkon lev pontra vgig fut. gy a futsi id O(nh).

6.3.

Egyszersts

1973-as Douglas-Peuker algoritmusa (split-and-merge algorithm) globlisan az egsz objektumra hajtja vgre az egyszerstst.

Absztrakt. Adott grbe szakaszokra bonthat, az algoritmus egy > 0 eltrst hatroz meg az eredeti grbe s az egyszerstett grbe kztt. Az egyszerstett grbe tartalmazza az eredeti grbnek meghatroz pontjai.

78

6. TRANSZFORMCIS ALGORITMUSOK >0

Az algoritmus. A kezd grbe rendezett pontokbl vagy szakaszlbl ll eltrssel.

6.8. bra. Eredeti grbe s mdostott grbe itercija Az algoritmus a grbt rekurzvan felosztja szakaszokra. Az elejn minden pontot tartalmaz az eredeti grbbl. Automatikusan megjelli a kezdeti s vgpontot, ezeket helyben kell hagyni. Legyen a kezdeti pontot s vg pontot sszekt egyenes a. Megkeresi az a egyenes s a grbe ltal megadott pontok kzl a legnagyobb tvolsg pontot. Rekurzv mdon tovbb haladunk, azon pontokat hagyjuk meg amelyek -nl nagyobb tvolsgban vannak szakasztl, klnben kivesszk. Pszeudokd. function DouglasPeucker(PointList[], epsilon) //Find the point with the maximum distance dmax = 0 index = 0 for i = 2 to (length(PointList) - 1)

6.4. ELTOLS d = PerpendicularDistance(PointList[i], Line(PointList[1], PointList[end])) if d > dmax index = i dmax = d end end //If max distance is greater than epsilon, recursively simplify if dmax >= epsilon //Recursive call recResults1[] = DouglasPeucker(PointList[1...index], epsilon) recResults2[] = DouglasPeucker(PointList[index...end], epsilon) // Build the result list ResultList[] = {recResults1[1...end-1] recResults2[1...end]} else ResultList[] = {PointList[1], PointList[end]} end //Return the result return ResultList[] end Mveletigny. O(n2 ) 6.4. Eltols

79

Az eltolsi mveletet egyszeren nem lehet elvgezni az adatok viszglatval s egyszer eltolssal, mivel nagyon knnyedn geometriai koniktusokhoz vezetnek. Az eltols fgg a trkp jellegtl, mikzben gyelni kell az objektumok kzti kapcsolatok ne srljenek meg. Az eltols s nomtsnl a kvetkez feltteleket kell gyelembe venni: 1. Objektumok kztti minimlis tvolsgot meg kell rzni a valsgh brzols s tlthatsg miatt.

80

6. TRANSZFORMCIS ALGORITMUSOK

2. Geometriailag izomorfnak kell lennie az eredeti objektummal.

6.9. bra. Plda az eltols s nomtsra Kt megkzeltst hasznlnak vonalas objektumok generalizlsra: Brute-force. Objektum egyszersts, azaz ponjainak elhagysval rszlegesen lehetsges. Ez a mdszer a legtbb esetben srti a fent megadott mindkt felttelt. Globlis. Objektum pontjainak globlis kezelse. Interpolcis algoritmusokat alkalmazva Lagrange interpolcira vagy kbs spline interpolcira alapozva. Pldul: B-spline. B-Spline grbe reprezentcija I = [a, b] R intervalumon.m

f (t) =i=0

Qi Nik (t)

, ahol Qi R2 a grbe kontrol pontjainak a halmaza s Nik az alap B-spline fggvnyek.

6.10. bra. Eredeti objektum szaggatott vonalal van jellve

7 Alkalmazs fejleszts

A mai internet alap trsadalomban, szinte minden alkalmazs valamilyen mdon szksge van a hlzati kommunikcira, a trkp alap alkalmazsokra is ez vonatkozik. Mivel az adatokat hatkonysgi s biztonsgi szempontbl nem troland le-okban, hanem tvoli adatbzis rendszerekben troland. Ebbl kifolylag mr az adatelrsi rtegen hasznlnunk kell a hlzatot. Egy trkp generalizl alkalmazsnl gyelembe kell vennnk, hogy kt szempontot: 1. Kutats felhasznls. 2. Ipari felhasznls. Kutats felhasznls. esetn nem elsdleges szempont, hogy milyen gyorsan lehet az adatokat elrni, s azok feldolgozsa. Az adatbiztonsg valamint jogosultsg itt is ugyangy rvnyesl mint ipari alkalmazsok esetben. Kutatsi szempontbl fontos, hogy klnbz generalizl algoritmusokat tudjanak a hallgatk s oktatk egyarnt futtatni klnbz adatokra. Ebbl kifolylag, egy olyan algoritmus trolra (container) van szksg, amely egy helyen egysgesen tudja kezelni az algoritmusokat. Azt is gyelembe kell venni a rendszer tervezsekor, hogy a generalizlsi folyamat, nem csak egyetlen algoritmusbl tevdik ssze, nha egyms utn kell tbb algoritmus lefuttatni, hogy megfelel eredmnyt kapjunk. Ipari felhasznls. esetn az elsdleges szempont a gyors adatelrs, s a megbzhatsg. Ezen szempontok tkrben kell megtervezni a generalizl alkalmazst. Az internet mint adathordoz mdit felhasznlsval nylvnval vlik, hogy az alkalamzs 81

82 felptse kliens-szerver alapnak kell lennie.

7. ALKALMAZS FEJLESZTS

A kliens-szerver architektra zenet alap s modulris felpts, ezltal tmogatjk a az jrafelhasznlhatsgot, rugalmassgot, egyttmkdsi s bvthetsget. Jellemzi:

Krseket kldnk a szerver fel.

A vlaszt a szervertl kapjuk.

Szerepek: kr (client) s kiszolgl (server).

7.1. bra. Kliens szerver architektra

7.1. 7.1.1.

Felpts Kiszolgl - Szerver

Kliens-szerver architektrban, szerver program krseket szolgl ki. Httr szmtsokat vgez, amelyeket a kliens krt, a vlaszt vissza kldi a krnek. Kliensek futhatnak ugyanazon a gpen ahol a szerver, vagy hlozaton keresztl kommunikl a szerverrel.

7.1. FELPTS

83

Attl fggen, hogy milyen szolglgatatsokat nyjt a szerver lehet: Alkalmazs szerver Alkalmazsokat, szoftver komponenseket futtat szerver. ltalban nagy elosztott szoftvereket szoktak alkalmazs szerverren futtatni, pldul az Oracle Application Server, amely tartalmaz Oracle Enterprise Manager. Oracle Application Manager. Oracle Data Warehousing. Adatbzis szerver Brewer - CAP ttele alapjn kell megfontolni, hogy milyen adatbzis szervert kell alkalmazni. Oracle adatbzis szerver. PostgreSQL adatbzis szerver. MongDB adatbzis szerver. Cassandra. Neo4j. File szerver Nagy mennyisg segdllomnyok valamint dokumentumok trolsra alkalmas. Felttele, hogy gyors elrs s kereshetsg. Egy tartalomkezel rendszer (Content Management System) esetben mr olyan tulajdonsgok is felmerlhetnek mint jogosultsg s verzikvets.

84 CouchDB MongoDB

7. ALKALMAZS FEJLESZTS

Web szerver A webszerver kivlasztsa az alkalamzs felptsen mlik, azonban fontos, hogy a rendelkezsre ll ideje, valamint a terhelhetsge s biztonsgi kongurcis szintje magas legyen. Apache ngix IIS LightHttpd Mongrel Trkp szerver Trkp szerver mint trkp adatok megjelentsrt felels komponense az alkalamzsnak az ipari felhsznls szempontjbl nagyon fontos a sebessge, megbzhatsga s magas rendelkezsre lls ideje. A trkp szerverek ezenkvl mg tovbbi a trkpen lthat objektumok, jellegek (feature) informci lekrdez fellettel is rendelkeznek, mint a WMS (Web Map Service) vagy WFS (Web Feature Service). MapServer GeoServer 7.1.2. Kr - Kliens

Kliensek ltalban alkalmazsok vagy eszkzk, amelyek szolgltatsokat krnek a szervertl, a kapott vlaszt feldolgozva vagy anlkl prezentljk a felhasznl fel, vagy tovbbtjk a kapott vlaszt egy msik kliens-vagy szerver fel. Hrom csoportba sorolhatjuk a klienseket, hogy milyen bonyolultsg s erforrs igny egy kliens. Vkony kliens (Thin client) minimlis eszkzkkel rendelkez kliens. A kliensnek szksges erforrsokat is a tvoli (host) gpen veszi ignybe. Vastag kliens (Fat client) Jellemzje, hogy nmaga hajtson vgre nagyobb adatmennyisgekkel feldolgozsokat, amikor a szerver inkbb elsdleges trolknt viselkedik. 2003-as vek elejtl a gazdag kliens (rich client) kifejezst eltr

7.1. FELPTS

85

rtelemben kezdtk el hasznlni, mint a vastag klienst. Ennl a kliens architektrnl a szerver kzponti egysgnek a kihasznltsga sokkal kiegyenltettebb, mint a tbbiek esetben. Maga a kliens tulajdonkppen vastag kliens, de jobban kihasznlja a hlzati lehetsgeket a vkony klienshez hasonlan, gy tulajdonkppen egy vastag-vkony kliens hibrid. Lsd gazdag Internet alkalmazs s gazdag kliens platform. Hibrid kliens (Hybrid client) Hasonlt a vastag klienshez, mivel loklisan dolgozik, de szmt a szerverre adattrols miatt. Ez a megkzelts sajtossgokat knl mind a vastag kliensbl (multimdia tmogats, nagy teljestmny), mind a vkony kliensbl(erteljes menedzselhetsg, rugalmassg). Helyi trol Vkony kliens Vastag kliens Hibrid kliens nincs van nincs Helyi feldolgozs nincs van van

7.1.3.

Komnunikci

A legkzenfekvbb webszolgltatsok hasznlata. A webservice alkalmazsok kztti adatcserre, kommunikcira szolgl protokollok s szabvnyok gyjtemnye. Klnbz programnyelveken rt s klnbz platformokon fut szoftveralkalmazsok szmtgp-hlzatokon keresztl trtn adatcserre hasznljk a webszolgltatsokat, az egygpes kommunikcis felletnek ksznheten megvalstsi nyelvtl s rendszertl fggetlenl lehet hasznlni. Klnbz megoldsok lteznek a webszolgltatsok implementcijra, mint 1. WSDL (Webservices description language) XML alap ler llomny kommunikcis protokoll. 2. SOAP, XML-RPC. XML alap protokoll. 3. REST, amely a A HTTP metdusaival a CRUD mveleteket is megvalsthatak, a legtbbet hasznlt GET, POST mellett ltezik a PUT s DELETE is. Ugyangy, ahogy a klasszikus web szolgltatsok esetben, ms protokoll is vlaszthat.

86

7. ALKALMAZS FEJLESZTS

7.2. bra. Webszolgltats kommunikcis modell Web 2.0 megjelense ta szinte minden szerver oldali webszolgltatsokat nyjt alkalmazs REST alap webszolgltatsokat ad mint alaprtelmezett protokoll. A REST kommunikci ler llomnya JSON (Javascript Object Notation). 7.2. Ipari felhasznls

Gyors, megbzhatsg, magas rendelkezsre lls id voltak az ignyek egy ipari alkalmazs esetben. Egyik legjobban elterjedt nylt forrskd rendszer a Geoserver 1 . Struktrlis felptsi szempontbl modulrisan van felptve a bvthetsg s rugalmassg szempontok miatt. Komponensek kommunikcijt Spring IOCn keresztl trtnik, amely nem ms mint egy alkalmazs container. Modulok egymssal kommuniklva mkdnek.

7.3. bra. Webszolgltats kommunikcis modell1

http://geoserver.org/display/GEOS/Welcome

7.2. IPARI FELHASZNLS

87

Geoserver. sok adatforrst tud kezelni, le s adatbzis alapakat egyarnt, mint ESRI Shapele, Oracle Spatial, PostGIS, GML, KML, GeoJSON. Kongurcis belltsokat egy webes adminisztrcis felleten keresztl lehet elvgezni. Itt tudjuk belltani, egyes rtegek lthatsgi s stlus belltsokat elvgezni, pldul m