Geomajas

Innen: GIS Wiki
A lap korábbi változatát látod, amilyen Jmdtdy (vitalap | szerkesztései) 2017. március 29., 09:49-kor történt szerkesztése után volt.

Áttekintés

A Geomajas (http://www.geomajas.org/) egy Java nyelven íródott Open Source Web Mapping Framework. Mind szerver, mind kliensoldali komponenseket kínál. Szerveroldalon Java, Javascript, míg kliensoldalon GWT és Javascript nyelven megvalósításokat tesz elérhetővé.

Előkészületek

A mintaprogramok fordításához és futtatásához Maven-t használ (https://maven.apache.org/). Ahhoz, hogy futtatni és fordítani tudjuk a github-os projekteket, a Maven telepítési könyvtárában a settings.xml-ben (HOME/.m2/settings.xml) fel kell venni néhány dependency-t, ez az xml a github-os gwt kliensnél megtalálható. (https://github.com/geomajas/geomajas-project-client-gwt2)

Kezdésként a GWT-s standalone applicationt indítsuk el. (https://github.com/geomajas/geomajas-gwt2-quickstart-application) Fordítsuk le a Mavennel a projektet, majd futtassuk.

mvn install

mvn jetty: run

Ezután látogassunk el a http://localhost:8080/-ra, ahol megtekinthető az eredmény.

A projekt szerkezete

A GWT-s projekt általában egy gyökér könyvtárbeli szerver és kliens oldali csomagból áll. A kliens oldali belépési pont az Application.java fájl, ami a következő helyen található: ..\geomajas-gwt2-quickstart-application-master\src\main\java\org\geomajas\quickstart\gwt2\client.

Ez megvalósítja a com.google.gwt.core.client.EntryPoint interfészt, így implementálni kell az onModuleLoad metódust. A kód egyszerű, Létrejön egy ApplicationLayout, majd hozzáadódik a megjelenítéshez.

import com.google.gwt.core.client.EntryPoint; import com.google.gwt.user.client.ui.RootLayoutPanel;

/**

* Application entry point.
*/

public class Application implements EntryPoint {

@Override public void onModuleLoad() { ApplicationLayout layout = new ApplicationLayout(); RootLayoutPanel.get().add(layout); } }

Az ApplicationLayout geomajas specifikus layout, a következő módon keletkezik:

public ApplicationLayout() { initWidget(UIBINDER.createAndBindUi(this)); ApplicationResource.INSTANCE.css().ensureInjected();

mapPresenter = GeomajasImpl.getInstance().createMapPresenter(); mapPresenter.getEventBus().addMapInitializationHandler(new MyMapInitializationHandler());

GeomajasServerExtension.getInstance().initializeMap(mapPresenter, "app", "mapMain");

mapLayoutPanel = new MapLayoutPanel(); mapLayoutPanel.setPresenter(mapPresenter); mapPanel.add(mapLayoutPanel);

appService = ApplicationService.getInstance(); appService.setMapPresenter(mapPresenter); appService.setMapLayoutPanel(mapLayoutPanel);

appService.getMapPresenter().getEventBus().addHandler(FeatureMouseOverHandler.TYPE, new MyFeatureMouseOverHandler());

}

Miután betöltődik a kontextusthoz szükséges GWT-s modulok, létrejön egy MapPresenter, majd hozzá egy default inicializáló. Ezután a szerverkódból inicializáljuk ezt. Ezt követi a Layout beállítása, hozzáadása a megjelenítéshez, valamint egy ApplicationService létrehozása, amely kiszolgálja a létrehozott Layert. Ezután hozzáadásra kerül egy egyedi eseménykezelő.