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
|
|