GeoTools
Open source mapping toolkit

1. Mintapélda Egy egyszerű shape fájl megjelenítő applet.

A működő applet:

NoJVM switched on in this browser

Az applet elem:

<APPLET
CODE="Tutorial1"
WIDTH="300"
HEIGHT="320"
archive="jars/geotools.jar,jars/support.jar,jars/collections.jar">
<PARAM NAME="shapefile" VALUE="epulet">
</APPLET>

A geotools.jar archív tartalmazza a teljes GeoTools-t. Ez egy elég nagy fájl, de egy ilyen egyszerű applet esetén a tartalmának nagy része eltávolítható, hogy egy optimalizáltabb változatot kapjunk.

Az egy PARAM elem, a 'shapefile' adja meg a megjelenítendő shapefájl relatív elérési útját.

A geotools.jar és a Tutorial1.class letöltésével és a 'shapefile' elem értékének módosításával bármilyen shapefájl tartalmát megjelenítheti egy honlapon, további programozási munka nélkül.


Tutorial1.java (a program java forráskódja)

Tutorial1.class (jobb gomb kattintás és válassza a 'mentés másként' menüpontot, ha a Netscape installálni akarja)

Hogyan működik:

A fenti kódnak csak egy kis része az ami a GeoTools-t használó appletre jellemző. A legnagyobb része az applet elrendezésének beállításával és a komponensek hozzáadásával foglalkozik.

A térkép megjelenítése a képernyőn:

A GeoTools használatára jellemző sorok a következők:

import uk.ac.leeds.ccg.geotools.*;

Ez importálja az applet által használt fő GeoTools csomagot.

import uk.ac.leeds.ccg.widgets.*;

Ez importálja a ToolBar objektumot tartalmazó widgets csomagot.

Viewer view;
ShapefileReader loader;

A viewer  a GeoTools rendszer egyik kulcsfontosságú komponense. Ez az a komponens, melyben a térkép meg fog jelenni.

A ShapefileReader  egy olyan osztály, mely egy URL alapján be tud tölteni egy shapefájlt és a GeoTools által kezelhető formátumba tudja konvertálni az adatokat.

view = new Viewer(); //This displays the map.
add(view,"Center");

Ez egy új üres viewer-t hoz létre, és hozzáadja az applethez, mint ahogy más komponens esetében szokásos.

Ennek a lépésnek a részleteiről bármelyik jó Java 1.1 oktató anyagban talál további magyarázatot.

String file = getParameter("shapefile"); //az applet elem paramétere
try{
loader = new ShapefileReader(new URL(base,file)); // Ez betölti a fájlt
}
catch(MalformedURLException e){
System.out.println("Unable to load shapefile "+ file +": "+e);
}

Ez a rész egy új ShapefileReader példányt (loader) hoz létre az URL alapján. Ekkor a loader betölti a Shape-hez tartozó .shp (és .dbf, ha elérhető) fájl tartalmát, hogy a megjelenítésre készen álljanak.

Theme theme = loader.getTheme(); // Theme (téma) létrehozása a Shape alapján

A Theme  egy GeoTools objektum, mely tartamazza a geometriai adatokat (a térképet) és a megjelenítési stílusukat valamint a kapcsolódó leíró adatokat. Ebben az esetben a loader az általa reprezentált Shape-ből az alapértelmezett megjelenítési tulajdonságokkal rendelkező témát (Theme) hozza létre.

view.addTheme(theme); // hozzáadja a viewer-hez

Végül ez a sor adja a theme-t a view tartalmához, ez az a pont amikor a téma tartalma megjelenik a képernyőn.

Interaktív nagyítás és eltolás:

A fenti appletben a rádió gombok megnyomása a tool mode beállításával a view viselkedését változtatja meg (nagyítás vagy eltolás).

A nyomógomb nem a tool mode-ot változtatja, hanem a olyan méretarányt állít be, hogy a view-ban a teljes térkép láthatóvá váljon.

A jelenleg rendelkezésre álló Tool mode-ok között megtalálható a SELECT (kiválasztás), melynek segítségével a view-ban kihúzott téglalappal szelektálhat az elemek közül, és a NAVIGATE, mely egy speciális mód több térkép ablak összekapcsolására.

Hát ennyi az egész.
Ha egyidőben egynél több shapefájlt akar megjeleníteni, akkor a fenti kódot egészítse ki, hogy további témákat adjon a viewer-her.

A következő mintapélda a térképek szinesebbé varázslásával foglalkozik, ehhez a shaderekkel ismerkedünk meg.

Következő rész