frameworku Tomislav Obad IGEA IN2 Grupa Sadraj O Igei i meni GIS iskustvo GIS razvoj u Igei/IN2 Orijentacija opensourceu Arhitektura web baziranih GIS rjeenja Baza podataka Srednji sloj Klijent Primjeri iz prakse Zakljuak
IGEA IN2 Grupa O Igei i meni O Igei Varadinska softverska kua od 1991. godine Orijentirani na javni sektor i sve vie na GIS Klijenti: MP, DGU, MINGORP i dr. Igea je dio IN2 grupe od 2007. godine
O meni u Igei od 2004. u poetku Java web razvoj kasnije web i desktop Java bazirani GIS razvoj voenje GIS projekata s razvojne perspektive IGEA IN2 Grupa GIS iskustvo Igea se bavi GISom od sredine 90ih godina, vie u posljednjih nekoliko godina od kad smo dio IN2 grupe projekti na lokalnom nivou i dravnom nivou vezani uz katastarski sustav i katastarske izmjere u RH rjeenje za Katastarske izmjere (desktop i web) jedan od kljunih GIS projekata u posljednje vrijeme orijentiranost na opensource
osobno iskustvo u GISu zadnjih 4-5 godina baze: Oracle Spatial, PostGIS, MS SQL Spatial desktop: Openjump/Kosmo framework klijent: Openlayers/GeoExt IGEA IN2 Grupa GIS razvoj u Igei komercijalno -> opensource
IGEA IN2 Grupa GIS razvoj u Igei (2) IGEA IN2 Grupa Orijentacija opensourceu visoke cijene licenci i drugi nedostaci 'zatvorenog' softvera opensource se namee kao logino rjeenje
obzirom na orijentiranost Javi, odabir je OSGeo Java stack: o GIS server - Geoserver o Desktop rjeenje - Kosmo framework (trenutno nije dio OSGea, ali koristi brojne OSGeo Spatial biblioteke) srednji sloj: o Java Spring (MVC) framework o MyBatis klijentski razvoj: o Openlayers o GeoExt/ExtJS
IGEA IN2 Grupa Arhitektura web baziranih GIS rjeenja IGEA IN2 Grupa Baza podataka Oracle o Igea je dugogodinji Oracle partner o logian izbor kod GIS nadogradnji postojeih sustava o feature packed spatial podrka Postgres o sve vie koritena u projektima niskog budeta o brza i robusna MS SQL Server o koristi se u projektima koji su vezani uz SQL Server ili kod kojih je koritenje SQL Server baze obavezno o jo uvijek mogunostima zaostaje za Oracleom i Postgresom IGEA IN2 Grupa Srednji sloj - Geoserver (1) opensource Java baziran GIS web server diseminacija i editiranje prostornih podataka (WFS-T) omoguuje izdavanje podataka iz raznih izvora prema otvorenim (OGC) standardima referentna implementacija OGC WFS (v1.0 and 1.1, transactions and locking), WCS (v1.0 and 1.1) i WMS (v1.1.1) web servisa user-friendly web-bazirani konfiguracijski alat radi na Tomcat i Jetty aplikacijskim posluiteljima(Java (J2EE) servlet baziran) rad s PostGIS, Shapefile, ArcSDE, DB2 i Oracle izvorima podataka IGEA IN2 Grupa Srednji sloj - Geoserver (2) <?xml version="1.0" encoding="UTF-8" ?> <wfs:FeatureCollection xsi:schemaLocation="http://localhost:8080/geoserver/foi http://localhost:8080/geoserver/wfs?service=WFS&version=1.0.0&request=DescribeFeat ureType&typeName=gis%3Afakultet http://www.opengis.net/wfs http://localhost:8080/geoserver/schemas/wfs/1.0.0/WFS-basic.xsd"> <gml:featureMember> <gis:fakultet fid="fakultet.2"> <gis:fakultet_id>2</gis:fakultet_id> <gis:naziv>Fakultet organizacije i informatike</foi:naziv> <gis:geometry> <gml:Point srsName="http://www.opengis.net/gml/srs/epsg.xml#31275"> <gml:coordinates decimal="." cs=","
IGEA IN2 Grupa Srednji sloj - Spring 3.0 MVC (1) request bazirani framework @RequestMapping i @Controller anotacije AJAX baziran klijent koristi mapirane metode iz kontrolera, npr. getParcelUsageTypes() IGEA IN2 Grupa Srednji sloj - Spring 3.0 MVC (2) package hr.igea.webgis.web.controller;
/** * Vraca popis katastarskih opcina za trazeni katastar_id */ @RequestMapping("/katOpcinaPoKatastru.json") public @ResponseBody List<Map<String, Object>> dohvatiKatastarskuOpcinuPoKatastru( @RequestParam("id") Long id) { log.info("vracam kat. opcinu za MBR_KATASTRA + " + id + "... "); return katastarskaOpcinaDao.dohvatiKatastarskuOpcinuPoKatastru(id); }
}
IGEA IN2 Grupa Srednji sloj - MyBatis (1) data persistence framework poslovna logika Igeinih sustava je esto bazirana na stored procedurama, pa je MyBatis bolji izbor od Hibernatea koristimo ga za odravanje alfanumerikih podatak za odravanje prostornih podataka se koristi WFS-T protokol podran od strane Geoservera ili procedure. IGEA IN2 Grupa Srednji sloj - MyBatis (2) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="hr.igea.webgis.core.dao.KatastarskaOpcinaDao">
<select id="dohvatiKatastarskuOpcinuPoKatastru" resultType="java.util.HashMap" parameterType="long"> select KO.MBR_KATASTARSKE_OPCINE, KO.NAZIV_KATASTARSKE_OPCINE, KO.MBR_UREDA from KT_ADMIN.katastarska_opcina ko where ko.MBR_UREDA = #{id} order by KO.NAZIV_KATASTARSKE_OPCINE </select>
</mapper>
IGEA IN2 Grupa Klijent - OpenLayers (1) OpenLayers je opensource javascript framework koji omoguuje proirivanje web stranica sa prostornim podacima u obliku dinamikih mapa.
omoguuje prikaz rasterskih mapa i vektorskih podataka iz raznih izvora o WMS o WFS o Google Maps o Openstreetmaps o i dr.
IGEA IN2 Grupa Klijent - OpenLayers (2) Osnovni objekti
IGEA IN2 Grupa Klijent - OpenLayers (3) // kreiranje mape var mapOptions = { projection : new OpenLayers.Projection("EPSG:31275"), displayProjection : new OpenLayers.Projection("EPSG:31275"), maxResolution : 156543.032578125, numZoomLevels : 25, fallThrough : false maxExtent : new OpenLayers.Bounds(5599340, 5127540, 5606975, 5134230)};
var map = new OpenLayers.Map('mapa', mapOptions);
// kreiranje sloja s Geoservera var gradLayer = new OpenLayers.Layer.WMS( "Grad", "proxy/wms", { layers : 'gis:grad', format : 'image/png', transparent : true }, { singleTile : true, 'isBaseLayer' : false });
// dodavanje sloja na mapu map.addLayer(gradLayer);
IGEA IN2 Grupa Klijent - ExtJS/GeoExt (1) ExtJS je opensource Javascript library za izradu interaktivnih Ajax baziranih web aplikacija sastavljen od gotovih widgeta za izradu web suelja dobar kompromis izmeu brzog razvoja i mogunosti customizacije koristimo za ga poslovne sustave i GIS aplikacije
GeoExt je Javascript toolkit koji olakava rad s OpenLayersima MapPanel, LayerTree, AttributeForm... IGEA IN2 Grupa Klijent - ExtJS/GeoExt (2) // ExtJS combobox new Ext.form.ComboBox({ id: 'comboKatOpcina', fieldLabel: 'Kat. opcina', store: new Ext.data.JsonStore({ url: 'katOpcinaPoKatastru.json', fields: ['MBR_KO', 'NAZIV_KO'], emptyText: 'Odaberite kat. opcinu', displayField: 'NAZIV_KO', valueField: 'MBR_KO', allowBlank: false }) }) IGEA IN2 Grupa Klijent - ExtJS/GeoExt (3) // GeoExt map panel new Ext.Window({ title: "GeoExt primjer", height: 600, width: 800, layout: "fit", items: [{ xtype: "gx_mappanel", layers: [new OpenLayers.Layer.WMS( "Gradovi", "http://localhost/geoserver/wms", {layers: "gis:grad"} )], zoom: 1 }] }).show();
IGEA IN2 Grupa Primjeri iz prakse (1) IGEA IN2 Grupa Primjeri iz prakse (2) IGEA IN2 Grupa Primjeri iz prakse (3) IGEA IN2 Grupa Zakljuak GIS razvojno okruenje Igee/IN2 grupe bazirano je na opensourceu
dobra iskustva s: o Spring MVC-om o Mybatisom o Geoserverom o Openlayers/GeoExt/ExtJS