A Java programozási nyelv alkalmazása a térképi megjelenítésben

Peuser Lóránt 



1. Bevezetés

      A Java szóval egyre gyakrabban találkozhatunk az Interneten. A World Wide Weben szörfözők számára bizonyára közismert, hogy ez egy programozási nyelv. A térképészetben történő felhasználásának eddig még nincs túl komoly jelentősége, és ennek történetét sem lehet igazán pontosan megfogalmazni. Kevés az olyan szál, amelyen valamilyen sorrendiséget lehetne felállítani. A különböző alkalmazások egyidőben léteznek és folyamatosan fejlődnek, nehéz eldönteni, mit hol vezettek be először. A címben szereplő megfogalmazás nagyjából az Internetes térinformatika egy részét jelenti, néhány egyéb felhasználással.



2. A Java

      A Java igencsak új; a Sun cég kutatási projektjének története 1993-ban kezdődött. A Word Wide Web - robbanásszerű fejlőőése következtében - megfelelő programozási nyelvet igényelt. A "Java" név állítólag a fejlesztőrészleg kávéautomatájában használt kávéfajta nevéből származik.
      A Java fejlesztése során, mint más nyelvek esetében is, felhasználták a korábbi nyelvekkel kapcsolatos tapasztalatokat. A C++ nyelvre erősen támaszkodik, formailag annak jegyeit viseli, ennek oka a C++ objektumorientáltsága, teljesítménye, és a nyelv korábbi jelentősége az Interneten. Itt is megjelentek azok a nem szabványos bővítések a nyelvben, amelyeket az üzleti érdek próbál meg kikényszeríteni. Egyelőre a Sun cég a Java gondozója és szabványosítója, amit ők elfogadnak az a "hivatalos" Java nyelv.
      A Java rengeteg dolgoktól megszabadult, ami a C++ használatát megnehezítette. Ez a megtisztítás nemcsak a programozók tehermentesítését szolgálja, hanem garantálja a helyesen működő, stabil programok fejlesztését. Például az egész mutatóprogramozást, a dinamikus tárkezelést kivették a programozó kezéből és rábízták a fordítóra, illetve az értelmezőre. A C-től eltérúen a Java nem kompilált (fordító) típusú nyelv, és nem is interpretált (mint pl. a Basic), hanem egyszerre mind a kettú. A Java forráskód nem egybúl az adott gép gépi kódjára kerül lefordításra, hanem egy virtuális processzor (Java Virtual Machine vagy VM) gépi kódjára, úgynevezett bájtkódra. Ezt a bájtkódot késúbb a program futtatása alatt fordítja az értelmezú az adott valóságos processzor gépi kódjára. Ehhez természetesen az kell, hogy az adott hardver-operációs rendszer együttesen telepítve kell lennie egy Java-futtató környezetnek, az interpreternek, ami értelmezi a Java utasításokat és a megfelelő ellenőrzések után végrehajtja. Ez az ellenőrzés biztonsági okokból különösen fontos, mivel így megakadályozhatók a (szándékos vagy véletlen) szabálytalan adatműveletek vagy tárhozzáférések. Mivel a Java az Internet számára készült, messzemenőkig biztosítani kellett, hogy egy Java-program, amit az ember a böngészőben néhány kattintással elindíthat, semmiféle káros dolgot ne okozhasson. Az előfordított bájtkód tehát platformfüggetlen, ez a legfontosabb jellemzője. Ennek kb. 10-szeres sebességcsökkenés az ára a C programokhoz képest, az értelmező típusú nyelveknél azonban így is sokkal gyorsabb. Az értelmező típusú nyelvekkel szembeni nagy előnye még a sebességen kívül, hogy az átfordítás megvédi az algoritmusokat a leutánzástól, lopástól, mivel nem a forráskód terjed el.
      A Java nyelven két módon lehet programot készíteni. Lehet önálló alkalmazásokat (applikációkat) és appleteket írni. Ez utóbbiak a böngésző által megjelenített HTML dokumentumba építhetőek be, önállóan nem működőképesek.
Vannak más programozási lehetőségek is az Interneten. Létezik a Pearl, amelynek erőssége a fájlkezelés. Lehet a C/C++ nyelven is írni olyan programokat, amelyek Internetes környezetben futnak majd. A VRML nyelv segítségével 3D grafikák és animációk is megjeleníthetők a WEB oldalakon. Ezek az eszközök olyan kódot hoznak létre, amelyek a CGI (Common Gateway Interface) nevű felületen keresztül kommunikálnak a WEB szerver gépével. A Vbscript a Javához sokban hasonló, a Microsoft által kifejlesztett Internetes programozási nyelv. A Microsoft kifejlesztette az ActiveX technológiát, ami természetesen csak olyan gépeken fut, amelyek támogatják a szabványt - általában windowsos felületen. Az ActiveX programok a hálózatokon keresztül együttműködést biztosítanak a szerver és a kliens között. Az ActiveX vezérlők letöltődés után beépülnek a kliens operációs rendszerébe, és később azokat lehet használni. Sajnos ez egy komoly biztonsági veszélyforrás is, hiszen ezek a vezérlők ezáltal hozzáférhetnek a kliens összes erőforrásához is!
      Egy fontos megjegyzés: a Java nem tévesztendo össze a Netscape által kifejlesztett JavaScript-el! A hasonló név ellenére a Java önálló programozási nyelv, a JavaScript pedig parancsnyelv, amely a HTML kibővítése, annak hiányosságait pótolja bizonyos programozási lehetőséggel. Futtatásához nem kell más, mint egy böngészo, amely kezelni képes a JavaScriptet. Hasonlóság azonban nem csak a névben van, ugyanis a JavaScript a Javán alapul, szintaxisa tehát szintén a C nyelvhez hasonlatos, és a manapság divatos objektumorientáltságot pedig egyikük sem kerülhette el. A JavaScript mellett további script-nyelvek is léteznek, amiket különböző böngészőfejlesztők kínálnak, és elsősorban azoknak a HTML-lap készítők számára érdekesek, akik nem hajlandók bajlódni egy valódi programozási nyelv megtanulásával.



3. Az Internetes térképészeti alkalmazások

      A Javát ezek alapján nyilvánvaló, hogy az Internetes térképészeti feladatok megoldásánál is alkalmazzák. Alapvetően kétféle alkalmazási típus van. Az egyik esetben csak "előregyártott", statikus térképek megjelenítése történik (ez általában egy raszteres kép), a második esetben valamilyen ad hoc kérdésre kell választ adni, egyfajta dinamikus térképpel. A két típus sok esetben kombinálható is. A statikus térképek megjelenítésekor a Java gyakran csak a raszteres képként ábrázolt térképek védelmére szolgál, hogy ne lehessen a böngészőben azt egyetlen kattintással lementeni, vagy éppen díszítő funkcióval rendelkező effektusokat alkalmaznak (pl. a http://www.c3.hu/~corvin/fooldal.htm címen található térképrészlet esetében a nagyító lencse effektus).
 

      Az Internetes térképészeti szolgáltatások egyre nagyobb hányadát teszik ki a Web GIS oldalak. A Web GIS rendszereket a technikai megvalósítás terén két mód alapján lehet elkülöníteni. A hagyományos az úgynevezett "nehéz" vagy "vastag" szerver oldali stratégiát alkalmazta. Ebben a stratégiában a szerver rendelkezik azokkal a programokkal és adatokkal, melyek segítségével elvégezhető a kívánt elemzés vagy térképezés. A Kliens feladata ebben a stratégiában a kérések elküldése, és a válaszok megjelenítése. Ezt a kapcsolatot általában a CGI (Common Gateway Interface) szabvány segítségével tartották fent, de egyre több új alternatíva létezik, alkalmazható helyette például az ISAPI vagy a NSAPI Java interfész is. A legújabb és legjobb CGI alternatíva a NETSCAPE WAI, mely C, C++ és Java nyelveken programozható. A nehéz szerverek előnye, hogy magát a feladatot a térképszerverek gyorsan, felesleges adatátvitel nélkül oldják meg, különösen a hatalmas méretű raszteres állományokra igaz ez a megállapítás, ugyanakkor a CGI interfészek viszonylag lassan dolgoznak, (de ez a negatívum megszűnt az új interfészekkel,) és nagy hátrányuk, hogy hálózati kommunikációt igényel még a legkisebb vezérlési akció is. További hátrány, hogy a felhasználók számának növekedésével a szerverek erőforrásai nem tudnak lépést tartani, és nagyon lelassult a feldolgozás.
      Ezeket a problémákat a kliens oldali konfigurációval, az úgynevezett "vastag kliens" megoldássál küszöbölték ki. Ennek két fő típusa van, az első esetben a kliens oldali program a hálózatról automatikusan töltődik le a kérdéses Web lap megnyitásakor, majd a lap zárásakor törlődik. A második típus első variánsában a feldolgozó komponens szintén automatikusan töltődik le, ha szükség van rá, majd installálódik és fennmarad a kliens gépen. A második variánsban a programot plug in -okként előre installálni kell a kliens számítógépen. Ennek a megoldásnak a lényege, hogy a feldolgozó program a kliens-oldali számítógépen fut, a szerver csak az adatok és a programok vonalra adásáról gondoskodik. Az appletek olyan speciális szerkezető Java programok, melyek a rájuk történő hivatkozásokat tartalmazó HTML dokumentum megnyitása után automatikusan letöltődnek a kliens számítógépbe, a tallózó környezetében (mini operációs rendszer) futnak és a megnyitott dokumentumban elhelyezett elemekkel (gombok, szöveg ablakok, stb.) vezérelhetők. A dokumentum bezárása után azonban azonnal törlődnek és a kliens véglegesen nem tudja letölteni őket. Nagyobb baj azonban, hogy az applet csak a szerver adatait képes feldolgozni, mivel a kliens géppel a tallózón kívül nem kommunikál, így általában az applet által szolgáltatott eredmény sem tölthető le közvetlenül. Az alkalmazások zöme Java klienssel dolgozik, mind az automatikusan letöltődő és használat után megszűnő programok, mind pedig a plug in -ek terén, a szerver-oldali szoftverek viszont nagyon sokfélék.
      A Java applettel történő megoldásra jó példa az ESRI által kifejlesztett MapCafe nevű applet, mely az esrimap.dll interfészen (GIS térkép szerver kiterjesztésen) keresztül éri el az ArcView internetes térképszervert. Magyar felhasználása a MapCafének például a http://utbontas.fph.hu/fovaros/ címen található a "Budapest Burkolatbontásainak Nyilvántartása, Ügyiratkezelése" címre hallgató site. Az applet erőforrásigénye meglehetősen nagy, ezért gyenge gépen nagyon lassan fut, következésképpen, bár az alaptérkép 2 méter felbontású, ezt a felbontást csak többszöri, egyenként igen időigényes lépésben érheti el a látogató. 

     Az Internet nagy volumenű felhasználása térbeli adatok cseréjére az Egyesült Államok Nemzeti Térbeli Adatinfrastruktúra projektjének meghirdetésével 1994-ben vette kezdetét. Az internetes térinformatika vezető szereplői most is az Egyesült Államok és Kanada, nem véletlen az ottani példák túlsúlya. Az európai országok adathozzáférési politikája következtében kontinensünkön nincs lehetőség olyan, mindenki által elérhető földrajzi adatközlésre, amit a Web GIS hivatott biztosítani. A Web GIS azonban mindenhol még csak gyerekcipőben jár, de az újabb alkalmazások egyre ígéretesebbnek tőűnek. A valódi GIS elérése még messze van, a GIS műveletek közül még viszonylag kevés jelenik meg, de már ma is igen népszerűek a környezet térképek, a különböző lekérdezések és az eredmény megjelenítése, az adott címek közötti megközelítési útvonalak meghatározása és megjelenítése, turisztikai információk, multimédiás városi túrák, stb. A gyakorlati alkalmazások közül kiemelkedik az Ontario GIS, mely a korszerű városi rendszerek lakossági interfésze mintájának tekinthető, és az amerikai városok lekérdezhető utca térképei, melyek komoly felhasználói igényt képesek kielégíteni.

     A Javát alkalmazó oldalakon a térkép megvalósulása is változatos, bár elmondható, hogy zömében vektoros alapúak és interaktívak. Egyszerű raszteres kép megjelenítésénél nincs feltétlenül szükség rá, megteszi a JavaScript , vagy más hasonló, egyszerűbb megoldás is. A képernyőn megjelenő térképek esetében mindenképpen beszélni kell néhány alapvető funkcióról. A legfontosabb, a térképlap "elhúzása", másképpen a térképlapon történő mozgás, a "pan", valamint a nagyítás/kicsinyítés, a "zoom". Ezeket a funkciókat szinte kivétel nélkül úgy oldották meg a példaként szereplő, általam megnézett térképeken, hogy a működésük nem folyamatos, hanem csak megszabott lépcsőkben, fokozatosan működnek. A rétegek ki- illetve bekapcsolása is alapvető fontosságú, hogy a gyakran igen kaotikus látványt áttekinthetővé tegyük számunkra. Ennek megvalósítása nem is túl nehéz, általában élnek a lehetőséggel. Nagyon gyakran találkozhatunk azzal a funkcióval is, hogy egy poligonra, vagy egyéb objektumra kattintva, arról táblázatos információkat kapunk. A kereső, és útvonalválasztó funkciók már ritkábbak, és általában működésük is bizonytalan. Igazából az első kettő funkció kivételével már szükség van, komolyabb programra, mert ezeket már vektoros adatokra építve lehet csak hatékonyan kivitelezni, és itt kerülhet képbe a Java is. Azért mindenképpen meg kell jegyezni, hogy a példákban szereplő vektoros térképek borzalmasan rondák, leginkább az esztétikai hatást tekintve lenne szükség fejlődésre. Sokkal szebb hatás érhető el hibrid, egyszerre raszteres és vektoros térképekkel, amikor is egy raszteres kép szolgál háttérként, ám ezzel a megoldással indokolatlanul keveset találkozni.



4. Összefoglalás

      Összességében elmondható, hogy a JAVA, mivel nagyon sokoldalúan használható, a Webes térképekhez és WEB GIS-hez szükséges részfeladatok minden területén megfigyelhető, például a szerverprogramozásnál vagy a kliensprogramok készítésénél. De a szerverek programozása nem is annyira térképész, inkább programozói feladat. Egyszerűbb térképészeti jellegű alkalmazása során leginkább a HTML-t kiegészítő kisebb appletekkel találkozhatunk, az ehhez szükséges tudást egy térképész is viszonylag hamar megszerezheti (és legtöbb sok esetben már a jóval könnyebb Javascript segítségével is lehetséges az adott feladat megoldása). A Java-nyelv alkalmazása a Webes térképek esetén korántsem az egyetlen lehetőség. A választás leginkább attól függ, kinek milyen ismeretei vannak más programnyelvek terén és mit tart szimpatikusnak.



I. Melléklet
 

Példák Web GIS-re:
 

Amerikai oldalak:
 

Dinamikus Objektum Orientált GIS
URL: http://doogis.dis.anl.gov/
      A hely egyelőre nem sok adattal rendelkezik, lényege az a technikai újdonság, hogy az adatbázist Smalltalk objektum orientált nyelven írták. A kliens a szokásoknak megfelelően JAVA applet. A szokásos funkciók (zoom, pan, lekérdezés) mellett a rendszerrel távolságokat is meghatározhatunk. Végül meg kell jegyezni, hogy az interaktív alkalmazás megtalálásához türelem kell. Ha ugyanis ráklikkelünk a DOOGIS-re akkor egy táblázat jelenik meg a gombok működéséről, a programozókról, stb. de semmi sem figyelmeztet arra, hogy várjunk, amíg az applet betöltődik (kb. 10 perc), utána pedig minden újabb műveletre legalább ennyit kell újra várni.
 

Arkansas Interactive Mapper
URL: http://www.cast.uark.edu/products/MAPPER
      Az Arkansasi Egyetem és a NASA honlapja: térképet lehet készíteni az államról és megjeleníteni a következő lépésekben: Első lépésben kiválasztjuk, hogy a rendelkezésre álló térképek közül melyiket kívánjuk létrehozni, választhatunk az egész államra, megyére vonatkozó térkép állományokat, kereshetünk városnév alapján három méretarányban, illetve kiválaszthatjuk a megfelelő topográfiai térképeket, stb. Miután itt választottunk, meg kell adni, hogy milyen vidékre vonatkozzon, majd ki kell választani a megjelenítendő részleteket, melyek eredetileg raszteres vonalas és pontszerű állományok is lehetnek (egy raszteres réteg és tetszőleges számú vektoros és pontszerű réteg jelölhető ki) és választhatunk, hogy gif, PostScript vagy pdf formátumban kérjük az eredményt. Az utolsó választási lehetőség arra vonatkozik, hogy mi legyen a szerkesztett térképpel: letölthetjük, elküldhetjük valahova E-mail-en vagy képernyőre hívhatjuk
 

GIS Viewer 
URL: http://elib.cs.berkeley.edu/geo_data
      Java-alapú interfész a GRASS GIS-hez. Észak Kalifornia térképe ki- és bekapcsolható rétegekkel. A lekérdezés nem m?ködik. Ezen kívül egy fotótérkép is található a kaliforniai gátakról. Nagyítás, (lekérdezés,) területszámítási funkciók.
 

A Kanadai Nemzeti Atlasz 
URL: http://atlas.gc.ca/english/index.html
      Az egyik legmegbízhatóbb térképészeti Web alkalmazás. Számtalan tematikus térkép készíthető a természeti, társadalmi, gazdasági földrajz témáiban. A rétegek ki- bekapcsolhatók, a térképek nagyíthatók, kicsinyíthetők, mozoghatunk rajtuk.
 

EnviroMaper 
URL:http://www.epa.gov/ceisweb1/ceishome/atlas/learngeog/interactivewebmapping.html
      Az USA Környezetvédelmi Ügynökségének (EPA) interaktív GIS alkalmazása.
Az első lépésben egy államot kell választani az USA térképéről, majd a következő lépésben az állam térképéről a minket érdeklő megyét, vagy vízgyűjtőt. A megjelenítendő környezeti tematikák egy 21 elemű listából választhatók. 
 

Ontario városi GIS 
URL: http://gis.ci.ontario.ca.us/gis/index.htm
      Az egyik legjobb megvalósítása a Web GIS-nek. Parcella lekérdezést lehet végezni a kataszteri térképeken, a helykeresővel a megadott paramétereknek megfelelő telkeket lehet megjeleníteni. Vannak még fejlesztési és infrastrukturális térképek is.
Az alkalmazások nyilvános elérésre Visual Basic-ben készültek az ESRI MapObjects Internet Technológiájának felhasználásával. A hálózati alkalmazások mind a lakosság (Internet szerver), mind az egyes osztályok felé (Intranet szerver) ugyanezt a technológiát használják. Az egyes osztályok alkalmazásai az ESRI ArcView és MapObjects nevű szoftvereire épülnek, melyek adataikat és bizonyos funkcióikat a központi Arc/Info szoftverből kölcsönzik. Az Internetes alkalmazás a MapObjects szoftverre épül. 
 

Demographic Data Viewer, 3. verzió 
URL: http://plue.sedac.ciesin.org/plue/ddviewer/
      Ez a hely JAVA applettel mködik, lehetővé teszi, hogy az USA népszámlálási adatok felhasználásával népszámlálási körzet színtű tematikus térképeket csináljunk. Ez már a 3. verzió, nagyon stabil. A címen elérhetjük az alkalmazás JAVA variánsának 2. verzióját, valamint a nem JAVA variáns 2. verzióját is. A nagyító és mozgató funkciók mellett új attribútumokat vezethetünk le, új területet jelölhetünk ki, új attribútumokat választhatunk, változtathatjuk a térkép változóit, táblázatos információt kérhetünk a poligonra történő kattintással.
 

Mapblast 
URL: http://www.mapblast.com/
      Talán a leghasznosabb alkalmazás, legalább is az USA állampolgárainak és az oda készülő turistáknak. Amerikai nagyvárosok utcatérképeit jeleníti meg. Lehetőség van megadott cím térképezésére, címek között útvonal térképek megjelenítésére. További funkciói a zoom, pan és kapcsolat a címjegyzékkel (Yellow pages). Ez utóbbi azt jelenti, hogy a cím megadása után kiválaszthatjuk a címjegyzékből a minket érdeklő témát (pld. szállodák, múzeumok, egyetemek, stb.), megadjuk, hogy a címtől milyen távolságon belül lévők iránt érdeklűdünk, ezután a rendszer kilistázza a kérdéses objektumokat és megjeleníti azoka a térképen. 
 

MapQuest 
URL: http://www.mapquest.com/
      Az el?z? helyhez nagyon hasonló, de az egész világra kiterjed különböz? felbontásban. HTML, JAVA és Active X verziója is van. A legtöbbet ezt használják.
 

Pennsylvania Statistics 
URL: http://www.maproom.psu.edu/mapper/
      Számtalan termelési adat található a rendszerben területi vagy népességi viszonyításban Pennsylvania állam megyéire. Az utolsó választható év 1994. Sajnos a hely nem dolgozik megbízhatóan, gyakran jelez szerver hibát.
 

Az USA Népszámlálási hivatalának TIGER szervere
URL: http://tiger.census.gov/cgi-bin/mapbrowse-tbl/
      A CGI-s szerver különböző, a lekérdező felületen lévő négyzetekre kattintással kijelölhető vonalas, pontszerű és területi objektumokkal együtt a népességi adatokat szemléltető tematikus térképet jelenít meg azzal a céllal, hogy gif formátumban letöltve publikációkban lehessen felhasználni
 
 

Néhány magyar oldal:

Infosztráda2000, Szombathely 
URL: http://www.szombathely.hu/isz2000/
      Szombathely város WEB lapján találjuk a ritka hazai alkalmazások egyikét. A végrehajtható funkciók a nagyítás, elhúzás és újrarajzolás. A negyedik funkció az 'információ' gombjának benyomása után, ha ráklikkelünk egy objektumra, úgy egy három számból álló rekord jelenik meg a képernyőn, egyidejűleg az objektum kiválasztódik. Hogy mit jelent a három szám, az rejtély. Az 'információ' gomb leghasznosabb szolgáltatása, hogy aktív állapotában a kurzor helyzetét EOV koordinátákkal kijelzi. Az alkalmazás igen lassan dolgozik (annak ellenére, hogy nincs nagy távolságra) és egyelőre csak Internet Explorerrel szemlélhető.
 

Geox
URL: http://www.geox.hu
 

Mapnet
URL: http://www.mapnet.hu
 

Rákos-patak térkép 
URL:http://www.emla.hu/rakos/applet/terkep.html
 
 



II. Melléklet
 

Felhasznált irodalom
 

Könyvek:
 

Dirk Louis - Peter Müller: Java - Belépés az Internet-programozás világába (Haar bei München, 1998. 2.-12. oldal)
 

Nyékyné Gaizler Judit - Kozsik Tamás - Lakatos Attila : Java 1.1 útikalauz programozóknak 
(Budapest, 1997. V. oldal, 14-22. oldal)
 

Kris Jamsa - Suleiman Lalani - Steve Weakley: A WEB programozása I.-II. (Denver, 1998.)

Folyóiratok:
 

Domokos György: Hálózati térinformatika az informatika hálójában. Az 1999. április 6-7-én, Székesfehérváron rendezett GIS OPEN'99 térinformatikai konferencián elhangzott előadás szövege (Geodézia és Kartográfia 1999/4)
 

Domokos György: Hálózati térinformatika az informatika hálójában (Térinformatika 1999/7 
28-30. oldal)
 

Dr. Sárközy Ferenc: Térinformatika a világhálón (Térinformatika 2000/3 11-20. oldal)
 

Pátkay Tamás: Térinformatikai honlapok (Térinformatika 2000/5 10-21. oldal)
 

Dr. Sárközy Ferenc: Néhány térképalapú szolgáltatás magyar webhelyen (Térinformatika 2000/6 28-30. oldal)


Vissza a lap tetejére                    Vissza a többi esszéhez