JAVA aplikace pro pilotní projekt IS arboreta

Pavel Stančík
VŠB-TU Ostrava
e-mail:
g94980@vsb.cz

 

The meaning of this issue is to develop JAVA applet for visualization of vector graphics, which came from Bentley’s Microstation exchange format. This applet is part of pilot project of information system of arboretum Novy dvur near Opava. Applet is optimized for using specific data form arboretum and is capable of functions such as zooming, panning and analyzes based on the selections from database.

Cílem této práce je vytvoření JAVA appletu pro zobrazování vektorové grafiky načítané z výstupního formátu Microstation firmy Bentley. Tento applet je součástí pilotního projektu informačního systému arboreta Nový Dvůr u Opavy. Applet je optimalizován pro data z arboreta a dovoluje používat jednoduché zobrazovací funkce a analýzy na základě výběru z databáze.

Cílem tvorby projektu byla tvorba uživatelsky přívětivého programu v jednoduchém programovacím jazyce pro pilotní projekt informačního systému arboreta nový Dvůr u Opavy. Tento pilotní projet zpracovává firma Ekotoxa Opava s.r.o. Pilotní projekt se skládá e zaměření 14 oddílu arboreta, jeho zakreslení do Microstationu, pořízení fotografické dokumentace a dalších. Výstupem by měl být informační CD-ROM na kterém budou informace prezentovány ve formě HTML stránek a uživatel bude informace na CD-ROMu prohlížet přes WWW prohlížeč. Z toho také vyplynul požadavek na tvorbu jednoduchého prohlížeče DGN souborů, který by se dal spustit v prostředí WWW prohlížeče.

Základní požadavky na tento systém byly:

Protože bude celý pilotní projekt zpracováván jako informativní CD-ROM, musí být aplikace spustitelná z uživatelova WWW prohlížeče. Jako programovací jazyk byla použita JAVA, vzhledm ke své podpoře v mnoha prohlížečích na několika operačních systémech.

Programovací jazyk Java vznikl v roce 1990 ve společnosti SUN Microsystems. V roce 1993, kdy přecházela služba WWW ze své textové podoby do grafické se zde objevilo nové využití pro jazyk Java. Pomocí takzvaných Applets se do WWW stránky začaly zabudovávat aktivní prvky. Oficiální oznámení o technologii Java bylo učiněno v květnu 1995 na konferenci SunWorld v San Francisku. Od té doby se datuje podporování Javy ve WWW prohlížečích společnosti Netscape Communications. V té době se také přestěhoval vývojový tým Javy do střediska v Palo Alto, Kalifornie.

Technologie Java je založena na podobnosti s programovacím jazykem C++, od kterého se ovšem odlišuje bezpečností.

Java je multiplatformní programovací jazyk, což znamená, že jednou vytvořený kód lze spustit na jakémkoliv počítači.

Applet byl programován jako samostatné okno. Skládá se z 35 tříd. Spuštění projektu zabezpečuje HTML stránka MapViewer.html, na které je definován postup spuštění MapVieweru. Samotná třída MapViewer má 64 programových řádků. Podává informace o programátorovi a inicializuje třídu Viewer. Třída Viewer je odvozená od standardní třídy Javy: java.awt.Frame. Třída Viewer má 1250 programových řádků a volá zbylých 33 tříd.

Definuje uživatelské menu:

/** Definice Pull-down menu nabídek

<hr> */

//--------------------------------------------------------------------------

Menu menuFile = new Menu("Soubor",true);

menuFile.add(new MenuItem("Otevrit DGN"));

MenuItem mi = new MenuItem("Zavrit DGN");

menuFile.add(mi);

//-------------------------------------------------

menuFile.addSeparator();

menuFile.add(new MenuItem("Nahrej barvy"));

menuFile.add(new MenuItem("Nahrej vrstvy"));

menuFile.add(new MenuItem("Nahrej databazi"));

menuFile.addSeparator();

menuFile.add(new MenuItem("Ukoncit"));

m_MenuBar.add(menuFile);

//-------------------------------------------------

menuView = new Menu("Zobrazit",true);

menuView.add(new MenuItem("Zoom In"));

menuView.add(new MenuItem("Zoom Out"));

menuView.add(new MenuItem("Posunout"));

menuView.add(new MenuItem("Cely vykres"));

//-------------------------------------------------

menuView.addSeparator();

menuView.add(new MenuItem("Informace o prvku"));

menuView.add(new MenuItem("Zrusit vyber"));

m_MenuBar.add(menuView);

//-------------------------------------------------

Menu menuDatabaze = new Menu("Databaze",true);

menuDatabaze.add(new MenuItem("Zobrazit zaznamy"));

menuDatabaze.add(new MenuItem("Vyhledej zaznam ..."));

menuDatabaze.add(new MenuItem("Vyhledej geoprvek podle ..."));

menuDatabaze.addSeparator();

menuDatabaze.add(new MenuItem("Zobrazit strukturu databaze"));

m_MenuBar.add(menuDatabaze);

//-------------------------------------------------

Menu menuAnalyzy = new Menu(”Analyzy”, true);

menuAnalyzy.add(new MenuItem("Zobrazit mapu stari rostlin"));

menuAnalyzy.add(new MenuItem("Zobraz mapu kveteni"));

menuAnalyzy.add(new MenuItem("Zobraz skupiny drevin, celedi, rodu"));

menuAnalyzy.addSeparator();

menuAnalyzy.add(new MenuItem("Generovat souhrny"));

m_MenuBar.add(menuAnalyzy);

//-------------------------------------------------

menuOkno = new Menu("Okno",true);

menuOkno.add(new MenuItem("Prohlizec"));

menuOkno.add(new MenuItem("Mapa"));

menuOkno.add(new MenuItem("Graf"));

menuOkno.addSeparator();

menuOkno.add(new MenuItem("Prekreslit okno"));

m_MenuBar.add(menuOkno);

//-------------------------------------------------

Menu menuHelp = new Menu("Napoveda",true);

menuHelp.add(new MenuItem("Napoveda"));

menuHelp.add(new MenuItem("O aplikaci"));

m_MenuBar.add(menuHelp);

setMenuBar(m_MenuBar);

/** Počáteční znepřístupnění některých menu nabídek

*/

menuView.disable();

menuOkno.disable();

}

/** Inicializace.programu

<hr>

*/

 

Pro nahrávání DGN například volá třídu dgn_engine. Tato třída otevře DGN soubor a uloží data z něj do paměti. každý geoprvek má svou třídu a je vložen podle záznamů v této třídě do paměti. Při programování jsem vycházel z definice objektů, které jsem použil minulý rok pro MapViewer, který zobrazoval MapInfo výměnné soubory MIF/MID. Třída dgn_engine a třídy geoprvků jsou koncipovány tak, aby umožnily jednoduché rozšíření MapVieweru o nahrávání dalších formátů. Přičemž třídy geoprvků by měly být schopny bez dalších úprav umožňovat plynulé rozšiřování MapVieweru o další formáty.

Pro uložení atributových údajů zvolila firma Ekotoxa Opava formát dBase III (dále jen DBF). Struktura DBF je známa. MapViewer načítá data do paměti do tzv. hashovacích tabulek. Databáze v sobě obsahuje klíč k propojení grafických dat s databázovými záznamy, název, druh, rod a čeleď rostliny, dobu květu, stáří a další informace. Tyto jsou použity pro další analýzy.

MapViewer načítá externí tabulku barev, která je generována MicroStationem. Tuto tabulku dále používá k obarvování geoprvků. MapViewer načítá externí tabulku vrstev, také generovanou MicroStationem. Do budoucna se počítá práce s vrstvami. V současné podobě však tuto funkci neobsahuje. Pokud by však tuto funkci podporoval, daly by se v MapVieweru zobrazit například pouze budovy, nebo jen listnaté stromy atd. a to i bez připojené databáze.

Pilotní projekt informačního systému arboreta Nový Dvůr u Opavy je zajímavým řešením jak prezentovat statická data a fotografie s vektorovými daty pořízenými v profesionálním prostředí MicroStationu. Uživatel bude mít možnost vidět ukázku jednoduchého informačního systému přímo ve svém WWW prohlížeči společně s výstupem z jednoduchých analýz.

 

[1] 1001 tipů Java - Mark C. Chan, Steven W. Griffith, A. F. Iasi

ISBN 80-86097-11-0, Unis publishing 1997

[2] Hooked on Java - Arthur van Hoff, Sami Shio, Orca Starbuck (Sun Microsystems, Inc.)

ISBN 0-201-48837-X, Addison-Wesley Publishing Co. 1996

[3] Thinking in Java - Bruce Eckel

© 1996 by Prentice Hall, Inc. (elektronická podoba)