• No results found

GIS-data i ärendehanteringssystem

N/A
N/A
Protected

Academic year: 2021

Share "GIS-data i ärendehanteringssystem"

Copied!
44
0
0

Loading.... (view fulltext now)

Full text

(1)

GIS-data i ärendehanteringssystem

Christian Svedin

Linköping, 2009-08-27 C-nivå, 15p Datorteknik

Handledare: Johan Söderqvist, Ida Infront AB Handledare: Martin Blomberg, Högskolan i Kalmar,

Institutionen för kommunikation och design Examinator: Martin Blomberg, Högskolan i Kalmar,

Institutionen för kommunikation och design Institutionen för kommunikation och design

(2)

Sammanfattning

Detta arbete är dels en jämförelse av olika tekniker för att spara, visa och söka i geografisk data. Men det är också en beskrivning av en proof-of-concept implementation som integrerar dessa tekniker med ett befintligt

ärendehanteringssystem.

Arbetet utförs åt företaget Ida Infront som vill utöka sitt ärendehanteringssystem iipax så att det kan visa ett ärendes geografiska anknytning på en karta och så att det går att göra sökningar efter ärenden givet ett geografiskt område.

Innebörden hos begrepp som lager, tile service, spatial data GML, WFS och WMS förklaras i rapporten.

I rapporten görs en teoretisk jämförelse mellan olika spatiala databaser, kartservrar, karttjänster och GIS-bibliotek och ett val görs utifrån ett antal kriterier i syfte att hitta den bästa lösningen för att integrera GIS-funktionalitet i ärendehanteringssystemet. Den resulterande proof-of-concept implementationen klarar av att både visa ett ärende på en karta och göra sökningar efter ärenden givet ett område. Det blev en generell lösning där flera olika delar är valbara genom en konfigurationsfil. Lösningen gör det enklare att till exempel hitta alla ärenden i en viss stad, det blir också enklare att veta vilken plats ett ärende har anknytning till då användaren inte känner igen adressen.

(3)

Summary

This paper is partly a comparison of different techniques for saving, showing and searching in geographical data. It’s also a description of a proof-of-concept implementation that uses these techniques to integrate GIS-functionality with an existing case management system.

The work is done for the company Ida Infront that wants to enhance its case

management system iipax to make it able to show a case’s geographical connection on a map and to make it possible to search for cases given a geographical area.

The meaning of concepts like layers, tile services, spatial data, GML, WFS and WMS is explained in the paper.

The paper contains a theoretical comparison between different spatial databases, map servers, map services and GIS-libraries. The comparison results in a choice made on the basis of a number of criteria with the aim to find the best solution to integrate GIS-functionality with the case management system.

The resulting proof-of-concept implementation can both show a case on a map and do searches for cases given an area. It’s a general solution where several parts can be specified in a configuration file. The proof-of-concept makes it easier to for example find all cases in a certain city, it also makes it easier to know which location a case has a connection to if the user doesn’t recognize the address.

(4)

Abstract

Rapporten handlar om hur geografisk data på bästa sätt kan integreras med ett ärendehanteringssystem. Det görs en teoretisk jämförelse av tekniker för visning, sökning och lagring av geografisk data i syfte att hitta den bästa lösning för att integrera GIS-funktionalitet med ett befintligt ärendehanteringssystem. Resultatet av arbetet är en proof-of-concept implementation som ger ett

ärendehanteringssystem stöd för att visa ärenden på en karta och göra sökningen givet ett geografiskt område.

(5)

Förord

Detta arbete är utfört för företaget Ida Infront AB i Linköping, vilka själva kom med idén till ämnet för rapporten.

Jag skulle vilja tacka Ida Infront för att ha låtit mig göra detta examensarbete. Jag skulle även vilja tacka Johan Söderqvist på Ida Infront för all hjälp med arbetet och med korrekturläsningar av denna rapport, och Martin Blomberg från Högskolan i Kalmar för att ha gett svar på mina frågor.

(6)

Innehållsförteckning

1. Introduktion ... 1 1.1 Bakgrund ... 1 1.2 Syfte ... 1 1.3 Mål ... 1 1.3.1 Huvudmål ... 1 1.4 Avgränsningar ... 1 1.5 Förkortningar ... 2 1.6 Terminologi ... 2 2. Teori ... 4 2.1 Web Service ... 4

2.2 Geographic Information System (GIS) ... 4

2.2.1 Geography Markup Language (GML) ... 4

2.2.2 Lager ... 5

2.2.3 Web Map Service (WMS)... 5

2.2.4 Web Feature Service (WFS) ... 5

2.2.5 Tile service ... 7 2.2.6 Spatial Data ... 7 2.3 Arkitektur ... 8 2.4 Produktalternativ ... 8 2.4.1 Karttjänster ... 8 2.4.2 Spatiala Databaser ... 9 2.4.3 Kartservrar ... 10

2.4.4 Visualisering och sökning ... 11

3. Metod ... 16 3.1 Kriterier ... 16 3.1.1 Allmänna ... 16 3.1.2 Karttjänster ... 17 3.1.3 Spatiala databaser ... 17 3.1.4 Kartservrar ... 18 3.1.5 Visualisering/Sökning ... 18 3.2 Bedömning ... 19 3.2.1 Karttjänster ... 19

(7)

3.2.2 Spatiala databaser ... 20

3.2.3 Kartservrar ... 22

3.2.4 Visualisering/Sökning ... 23

3.3 Kritik till vald metod ... 24

4. Resultat... 25 4.1 Arkitektur ... 25 4.2 Databasdesign ... 25 4.3 Konfiguration ... 26 4.4 Grafiskt gränssnitt ... 26 4.4.1 Sök-arbetsytan... 26 4.4.2 Ärenden ... 27

4.4.3 Visning av ärende på karta ... 27

4.4.4 Sökning ... 27

4.5 Gränssnitt mot spatial data ... 29

4.5.1 Sökning ... 29

4.5.2 Uppdatering ... 30

5. Analys och Diskussion ... 32

5.1 OpenStreetMap... 32 5.2 PostgreSQL / PostGIS ... 32 5.3 GeoServer ... 32 5.4 GeoTools ... 32 5.5 SwingX-WS ... 32 6. Slutsatser ... 33

6.1 Förslag till vidareutveckling ... 33

7. Referenser... 34

7.1 Elektroniska källor ... 34

Figur 1 Lagerarkitektur ... 8

Figur 2 OpenStreetMap visat med SwingX-WS komponenten JXMapViewer ... 11

(8)

Figur 4 Sverige visat i desktop versionen av NASA World Wind ... 14

Figur 5 OpenStreetMap visat med OpenLayers ... 15

Figur 6 Arkitektur för proof-of-concept ... 25

Figur 7 Arbetsytan för sökning ... 26

Figur 8 Vy för skapande av nytt ärende ... 27

Figur 9 Visning av ärendes position på karta ... 27

Figur 10 Standardmarkering ... 28

Figur 11 Markering av godtyckligt område ... 28

Figur 12 Försök till sökning med ogiltig markering ... 28

Figur 13 Hittade ärenden visade på karta ... 29

Figur 14 Flödesschema för geografisk sökning ... 30

Figur 15 Flödesschema för uppdatering av ärende ... 31

Tabell 1 Jämförelse av karttjänster ... 20

Tabell 2 Jämförelse av spatiala databaser ... 21

Tabell 3 Jämförelse av kartservrar ... 22

Tabell 4 Jämförelse av visualiserings/söknings tekniker... 23

Tabell 5 Exempel på tabellens utseende i PostgreSQL ... 25

(9)

1. Introduktion

1.1 Bakgrund

Ida Infront är ett företag som utvecklar informationssystem för myndigheter, bland annat ärende-/dokumenthanteringssystem. Systemen kan innehålla information, t.ex. bygglovsärenden. I dessa fall ska de på ett enkelt sätt kunna visas på en karta. Det ska också gå att göra sökningar på godtyckliga områden för att hitta de ärenden som har anknytning dit.

1.2 Syfte

Syftet med detta examensarbete är att undersöka de olika teknikerna som finns för att använda geografisk data i en Java-applikation, samt att implementera en proof-of-concept användande ett urval av dessa tekniker.

1.3 Mål

1.3.1 Huvudmål

Målet är att komma fram till bästa möjliga sätt för Ida Infront att integrera GIS-data med sitt ärendehanteringssystem.

1.3.1.1 Delmål 1: Teknik

Hitta de bäst lämpade programvarorna för lagring/visning av geografisk information och en tjänst för kartor.

1.3.1.2 Delmål 2: Proof-of-concept

En proof-of-concept ska skapas. Den ska baseras på ett ärendehanteringssystem för hantering av bostadsbidrag och ska klara av att visa ett ärendes geografiska anknytning på en karta och givet ett område visa relaterade ärenden.

1.4 Avgränsningar

De olika programvarorna kommer främst att undersökas och jämföras teoretiskt. Endast den lösning som verkar mest lämpad kommer att implementeras som proof-of-concept. Detta eftersom det skulle bli för tidskrävande att testa alla de olika lösningarna praktiskt.

(10)

1.5 Förkortningar

API Application Programming Interface

GIS Geographic Information System

GML Geography Markup Language

HTTP Hypertext Transfer Protocol

MBR Minimum Bounding Rectangle

OGC Open Geospatial Consortium

PNG Portable Network Graphics

RMI Remote Method Invocation

SQL Simple Query Language

WFS Web Feature Service

WMS Web Map Service

XML eXtensible Markup Language

1.6 Terminologi

.NET Mjukvaruramverk utvecklat av Microsoft.

Closed source Mjukvara som släpps utan att källkoden görs tillgänglig. J2EE Standard för Java applikationsservrar.

Java Platformsoberoende objektorienterat programmeringsspråk. Javadoc Dokumentation genererad från Java-källkod.

JavaBean Återanvändningsbara Java-komponenter som följer en viss konvention.

JavaScript Ett skriptspråk som ofta används på hemsidor. Latitud Breddgrad. Uttrycks i vinkelavstånd från ekvatorn. Longitud Längdgrad. Uttrycks i vinkelavstånd till en nollmeridian.

(11)

Greenwich i London.

Open source Mjukvara som släpps med tillgänglig källkod.

Swing Ett Java-bibliotek som används för att bygga grafiska gränssnitt. XA En standard vars mål är att en transaktion ska kunna sträcka sig över

(12)

2. Teori

2.1 Ärendehanteringssystem

Ett ärendehanteringssystem är ett system som är till för att underlätta hanteringen av ärenden i en organisation. Många ärendehanteringssystem, bland annat idainfronts iipax, har processer som beskriver hur ärendet ska behandlas från det att det startas tills det blir avslutas.1

2.2 Web Service

En Web Service är ett mjukvarusystem designat för att tillåta maskin-till-maskin interaktion över ett nätverk. I de flesta fall kommunicerar maskinerna med varandra med hjälp av HTTP och XML.2

2.3 Geographic Information System (GIS)

Ett geografiskt informationssystem (GIS) är ett system som på olika sätt lagrar, analyserar, presenterar och allmänt tar hand om geografisk information.3 Utvecklingen av GIS-standarder drivs av Open Geospatial Consortium (OGC), standarderna är till för att olika GIS ska kunna fungera med varandra utan problem.4 Ett av de vanligaste användningsområdena för GIS är ”webb mapping” där kartor visas på hemsidor, exempel på detta är Google Maps och Eniro Kartor.

2.3.1 Geography Markup Language (GML)

GML är en XML-baserad standard för hur spatial data ska uttryckas. GML används i stor utsträckning i GIS-standarder för att spara och överföra geografisk information.5 Exempel på GML som beskriver en punkt.

<gml:Point srsName="urn:x-ogc:def:crs:EPSG:4326"> <gml:pos>37.3 -82.4</gml:pos>

</gml:Point>

Här beskrivs en punkt dels av ett ”srsName”, som är ett koordinatsystem, och en position uttryckt i latitud och longitud.6

1 Ida Infront, 2009 http://www.idainfront.se

2 Web Services Architecture, 2009 http://www.w3.org/TR/ws-arch/ 3 What is GIS, 2009 http://www.gis.com/whatisgis/index.html 4 About OGC, 2009 http://www.opengeospatial.org/ogc

5 Geography Markup Language, 2009 http://www.opengeospatial.org/standards/gml 6 GML Point Profile, 2009 http://portal.opengeospatial.org/files/?artifact_id=11606

(13)

2.3.2 Lager

Ett lager är en uppsättning geografisk data i antingen raster eller vektorformat. Olika lager kan kombineras genom att visa dem ovanpå varandra, till exempel visa ett lager innehållande rutter för publika färdmedel på ett lager med köpcentrum, detta kallas för overlay.7

2.3.3 Web Map Service (WMS)

Web Map Service är en OGC-standard för att hämta spatial data renderat till en bild från ett HTTP-gränssnitt. En WMS förfrågan innehåller ett antal lager och en area, svaret blir en bild där det givna lagret och arean är synligt.8

Exempel på en WMS förfrågan som hämtar en världskarta innehållande vägar och sjöar. http://example.com/wmsserver? service=wms& version=1.1.1& request=getMap& layers=roads,lakes& bbox=-90,-180,90,180& width=640& height=480& format=image/png

Denna förfrågan skickas till en WMS server som finns på adressen

http://example.com/wmsserver. De två första parametrarna, ”service” och ”version”, används för att specificera vilken typ av tjänst det är och vilken version den har. Vilken operation som ska utföras bestäms av parametern ”request”, i det här fallet är det ”getMap” som betyder att en karta ska hämtas. När en karta hämtas måste det skickas med vilka lager kartan ska vara uppbyggd av, i det är fallet är det vägar (roads) och sjöar (lakes). Parametern ”bbox” är till för att bestämma vilket område som ska visas på kartan och värdet ska vara två longitud och två latitud värden, i exemplet ska hela världen visas. Bredden och höjden på den renderade bilden bestäms av ”width” (bredd) och ”height” (höjd) parametrarna och är i det här fallet 640 pixlar brett och 480 pixlar högt. För att avgöra vilket format det ska vara på den efterfrågade bilden används ”format” parametern, i det här fallet ska det vara en PNG-bild.7

2.3.4 Web Feature Service (WFS)

Web Feature Service är ett OGC-standardiserat gränssnitt för att få tillgång till och manipulera geografiska ”features”, geografiska ”features” är någon sorts spatial data till exempel en area eller en waypoint. Med hjälp av WFS kan ”features” hämtas, läggas till, tas bort och uppdateras. För att hämta ”features” krävs bara vanligt WFS stöd, för att lägga till, ta bort eller uppdatera krävs Transactional Web Feature Service

7 Geographic Information Systems and an Integrating Technology, 2009

http://www.colorado.edu/geography/gcraft/notes/intro/intro.html

(14)

T).9 Överföringen av ”features” sker med hjälp av Geography Markup Language (GML).

Exempel på hur en WFS förfrågan som hämtar all spatial data av en speciell typ i ett givet område kan se ut.

http://example.com/wfsserver? service=wfs& version=1.1.0& request=getFeature& typeName=:& typeName=forest:trees& bbox=a1,b1,a2,b2

I det här exemplet skickas en WFS förfrågan till en server på adressen

http://example.com/wfsserver. Det måste i förfrågan specificeras vilken typ av service det är och vilket version det är på den. Parametern ”request” är till för att bestämma vilken typ av operation som ska utföras, i det här fallet är det ”getFeature” som betyder att spatial data ska hämtas. Vilken typ av spatial data som ska hämtas bestäms av parametern ”typeName” som här är träd (trees) i namnrymden skog (forest). Här används också en parameter som begränsar vilket område sjöarna får finnas i, parametern heter ”bbox” och ska bestå av två koordinater, i det här fallet är koordinaterna (a1, b1) och (a2, b2).10

Exempel på svar till föregående förfrågan.

<wfs:FeatureCollection numberOfFeatures="1" xsi:schemaLocation="http://example.com/forest"> <gml:featureMembers> <forest:trees gml:id="trees.3"> <forest:position> <gml:Point srsName="urn:x-ogc:def:crs:EPSG:4326"> <gml:pos>15.6543 59.7831</gml:pos> </gml:Point> </forest:position> </forest:trees> </gml:featureMembers> </wfs:FeatureCollection>

Svaret ger ett träd som har id 3. Med hjälp av GML beskrivs också i svaret att trädet finns på punkten 15.6543, 59.7831.

9 Web Feature Service, 2009 http://www.opengeospatial.org/standards/wfs 10 Using a Web Feature Service, 2009 http://www.ogcnetwork.net/wfstutorial

(15)

2.3.5 Tile service

En tile service är en tjänst för att hämta kartbilder, bilderna är renderade i förväg vid bestämda skalor och storlekar. Det går ut på att de intressanta bilderna hämtas från tjänsten, lappas ihop på klientsidan och presenteras som en karta.11 Det finns två förslag till standarder för hur en tile service kan fungera, TMS och WMS-C. TMS går ut på att XML-formaterade förfrågningar skickas till en webservice som returnerar en eller flera URL:er till de relevanta bilderna. WMS Tile Caching (WMS-C) är en

standard för hur färdigrenderade bilder hämtas med hjälp av WMS.12 Trots att WMS-C standarden fortfarande bara är ett förslag har det redan implementerats i MetaCarta Labs programvara TileCache.13 De flesta tile services som används idag följer ingen av dessa standarder.

Exempel på URL till en kartbild i en vanligt förekommande variant av tile service. http://tiles.example.com/z/x/y.png

I exemplet står ”z” för zoomnivå, ”x” är x-koordinaten och ”y” är y-koordinaten. Vid en given zoomnivå finns det 2zoomnivå bilder i både höjd och bredd.

2.3.6 Spatial Data

Spatial data är information som har en anknytning till en plats, det kan till exempel vara koordinater, adresser eller postkoder.14 En spatial databas är en databas som kan lagra spatial data.

11 Tile Map Service Specification, 2009

http://wiki.osgeo.org/wiki/Tile_Map_Service_Specification

12 WMS Tile Caching, 2009 http://wiki.osgeo.org/wiki/WMS_Tile_Caching 13 TileCache, 2009 http://tilecache.org/

(16)

2.4 Arkitektur

I Grundutförandet består ärendehanteringssystemet av en applikationsserver och ett Swing-gränssnitt som kommunicerar med varandra med RMI. Gränssnittet kommer att utökas med en komponent för att visualisera kartor och söka geografiskt. Denna komponent kommer behöva hämta kartdata från en karttjänst med hjälp av WMS eller en tile service. För att utföra den geografiska sökningen på applikationsservern behövs en spatial databas och en kartserver. Kommunikationen med kartservern sker med en web service som heter WFS. Applikationsservern använder SQL för att lägga till och ta bort data i den spatiala databasen.

2.5 Produktalternativ

2.5.1 Karttjänster

2.5.1.1 Google Maps

Google Maps är en karttjänst som erbjuds gratis av Google i icke-kommersiella syften. Google tillhandahåller ett JavaScript API som går att använda för att integrera kartorna på sin egen hemsida. För att använda detta API i kommersiellt syfte så måste en speciell licens köpas.15

2.5.1.2 OpenStreetMap

OpenStreetMap är en wiki-inspirerad världskarta som vem som helst kan bidra med ändringar till. Kartan är fri att använda, men om den ändras och används i ett system så måste hela det systemet distribueras under en liknande licens som OpenStreetMap.

15 Google Maps API, 2009 http://code.google.com/apis/maps/

Ärendehanteringssystem Kartserver Spatial databas Swing-gränssnitt Visualiseringskomponent Karttjänst SQL SQL WFS RMI

WMS eller Tile Service

(17)

Det finns ett flertal tile services som kan användas för att ladda ner kartbilder.16 Cloudmade är ett exempel på ett företag som distribuerar OpenStreetMaps data gratis.17

2.5.1.3 World Street Map

Världskartan World StreetMap erbjuds av ESRI. ESRI är ett företag som utvecklar och designar geografiska informationssystem (About ESRI, 2009). För att använda kartan för kommersiellt bruk krävs inhandlande av en licens (ArcGIS Online Content Licensing Summary, 2009).18

2.5.1.4 Bing Maps

Bing Maps, tidigare Virtual Earth, är en karttjänst som erbjuds av Microsoft. Det erbjuds både ett JavaScript API och flera olika webbtjänster för att interagera med karttjänsten. För en licenskostnad erbjuds kartan för kommersiellt bruk.19

2.5.2 Spatiala Databaser

En spatial databas är en databas som är optimerad för att söka i och lagra geospatial data. OGC har publicerat en standard som heter ”Simple Features” som specificerar hur geografisk data kan lagras och görs åtkomlig i en relationsdatabas med hjälp av SQL.20

Exempel på hur en SQL-fråga som beräknar avståndet mellan två punkter kan se ut.

SELECT Distance(

PointFromText('Point(10 10)'), PointFromText('Point(20 10)'));

Här beräknas avståndet mellan punkterna (10, 10) och (20, 10), så om frågan körs ger den svaret 10.19

2.5.2.1 PostgreSQL/PostGIS

PostgreSQL är en open source relationsdatabas. Utvecklingen av PostgreSQL styrs inte av ett enskilt bolag, utan av oberoende utvecklare från världen över. PostgreSQL släpps under en BSD-liknande licens och är gratis att använda, även för kommersiellt bruk.21 Stöd för spatiala datatyper och operationer fås genom en utökning som heter PostGIS.22

16 OpenStreetMap, 2009 http://wiki.openstreetmap.org/wiki/Main_Page 17 Cloudmade, 2009 http://cloudmade.com

18 ESRI, 2009 http://www.esri.com

19 Bing Maps, 2009 http://www.microsoft.com/maps/

20 Simple Feature Access, 2009 http://www.opengeospatial.org/standards/sfs 21 PostgreSQL, 2009 http://www.postgresql.org/

(18)

2.5.2.2 MySQL

MySQL ägs av Sun Microsystems och är en open source relationsdatabas. MySQL har stöd för spatiala datatyper och operationer med vissa restriktioner. För att leverera MySQL med en kommersiell closed source applikation så måste en licens köpas.23 2.5.2.3 Oracle Database

Oracle Database är en relationsdatabas som utvecklas av Oracle Corporation. Till Oracle Database Enterprise Edition erbjuds spatiala utökningar. För att använda och leverera databasen krävs det att en licenskostnad betalas.24

2.5.3 Kartservrar

En kartserver är en programvara som på olika, oftast standardiserade, sätt

tillhandahåller användare kartinformation och i många fall möjligheten att ändra på denna.

2.5.3.1 GeoServer

GeoServer är en Java-baserad server som låter användare se och ändra geospatial data. GeoServer kan läsa geografisk information från en datakälla, t.ex. en databas eller en fil, och sedan göra information tillgänglig via några olika gränssnitt, som WMS och WFS, det finns också stöd för att ändra på data med hjälp av WFS-T. GeoServer distribueras under en GPL licens och är gratis att använda.25

2.5.3.2 MapServer

MapServer utvecklades av ”University of Minnesota” i samarbete med NASA i mitten på 1990-talet men är idag ett projekt hos OSGeo som jobbar med att främja

utvecklandet av öppna geospatiala tekniker. MapServer är skrivet i C och har stöd för många skriptspråk, till exempel Python, Java och Ruby. MapServer kan anslutas till en mängd olika datakällor vars data sedan görs tillgänglig med bland annat WMS och WFS, det finns inte stöd för WFS-T. Datakällorna kan vara databaser som

PostgreSQL eller MySQL, de kan också vara speciellt anpassade filer. Det är gratis att använda MapServer, som släpps under en icke restriktiv licens.26

2.5.3.3 ArcGIS Server

ArcGIS Server är en kartserver som tillhandahåller geografisk information på flera olika sätt, som WMS och WFS. Det finns dessutom stöd för uppdateringar av den geografiska informationen via WFS-T. För att använda ArcGIS Server måste en licenskostnad betalas för varje server den ska vara installerad på.27

23 MySQL, 2009 http://www.mysql.com/

24 Oracle Database, 2009 http://www.oracle.com/database/index.html 25 GeoServer, 2009 http://geoserver.org

26 MapServer, 2009 http://mapserver.org

(19)

2.5.4 Visualisering och sökning

2.5.4.1 SwingX-WS

SwingX-WS är ett projekt utvecklat av SwingLabs och är till för att skriva

webborienterade klientapplikationer i Java. SwingLabs kallar sig själva ett open source laboratorium och jobbar med att utveckla nya Swing-komponenter.28 Med SwingX-WS går det att visa kartor med inbyggt stöd för att zooma och panorera. Den visade kartan kan med inbyggt stöd hämtas från en tile service eller med hjälp av WMS. Det finns inte stöd för att visa flera kartlager samtidigt, men det går att visa ett baslager tillsammans med egna renderare som kan ändras för att visa vilken information som helst.29

Exempel på visning av Sverige i ett Java-fönster med hjälp av SwingX-WS och OpenStreetMaps.

JXMapKit mapkit = new JXMapKit();

mapkit.setDefaultProvider(DefaultProviders.OpenStreetMaps); mapkit.setAddressLocation(new GeoPosition(59.0, 15.0)); mapkit.setZoom(16);

JFrame frame = new JFrame("OpenStreetMap"); frame.getContentPane().add(mapkit);

frame.pack();

frame.setVisible(true);

Figur 2 OpenStreetMap visat med SwingX-WS komponenten JXMapViewer

28 SwingLabs, 2009 http://swinglabs.org/ 29 NASA Maps in your Swing App, 2009

(20)

2.5.4.2 GeoTools

GeoTools är ett Java-bibliotek som tillhandahåller standardiserade metoder för att manipulera geospatial data. Stöd finns för att hämta kartdata med både WMS och WFS. I GeoTools finns komponenter för att visa kartor i ett Swing-fönster, tyvärr är de enligt dokumentationen inte redo för produktionsbruk.30 Förhoppningsvis kommer det att finnas en stabil Swing-komponent för kartvisning i GeoTools inom en snar framtid.

2.5.4.3 OpenMap

OpenMap är en JavaBean-baserad verktygslåda för programmerare utvecklad av BBN Technologies. Utvecklingen av OpenMap började 1995 och 1998 släpptes den första versionen. Idag används OpenMap av många olika företag och myndigheter världen över. OpenMap är i grund och botten en samling Swing-komponenter som förstår geografiska koordinater. Det finns stöd för att hämta kartinformation med hjälp av WMS, dock finns inget stöd för WFS.31

Exempel på visning av WMS-lager i OpenMap.

MapBean mapBean = new MapBean();

WMSPlugIn wmsPlugin = new WMSPlugIn(); Properties wmsProperties = new Properties(); wmsProperties.put("wmsserver", "http://example.com/wmsserver"); wmsProperties.put("wmsversion", "1.1.1"); wmsProperties.put("format", "image/png"); wmsProperties.put("layers", "roads,lakes"); wmsPlugin.setProperties(wmsProperties);

PluginLayer layer = new PluginLayer(wmsPlugin); layer.setPlugin(wmsPlugin);

mapBean.add(layer);

JFrame frame = new JFrame("OpenMap"); frame.getContentPane().add(layer); frame.setVisible(true);

30 GeoTools, 2009 http://geotools.codehaus.org 31 OpenMap, 2009 http://openmap.bbn.com

(21)

Figur 3 OpenStreetMap visat med OpenMap

2.5.4.4 NASA World Wind

World Wind är en virtuell jordglob utvecklad av NASA. World Wind finns både som ett fristående program samt som SDK för .NET och Java. Med World Wind Java SDK (WWJ) går det att visa den virtuella jordgloben i en Java-applikation. Eftersom jordgloben renderas i 3D så sätter komponenten en del krav på hårdvaran, främst på grafikkortet. WWJ är gratis att använda men källkoden till alla utökningar som görs måste vara öppen. Det finns WMS-stöd för att hämta den kartinformationen som ska visas på jordgloben.32

Exempel på visning av Sverige i ett Java-fönster med World Wind Java SDK

Configuration.setValue(AVKey.INITIAL_LATITUDE, 59.0); Configuration.setValue(AVKey.INITIAL_LONGITUDE, 15.0); Configuration.setValue(AVKey.INTIAL_ALTITUDE, 80000);

WorldWindowGLCanvas world = new WorldWindowGLCanvas(); Model m = (Model) WorldWind.createConfigurationComponent( AVKey.MODEL_CLASS_NAME);

world.setModel(m);

JFrame frame = new JFrame(”World Wind Java”); frame.getContentPane().add(world);

(22)

frame.setBounds(100, 100, 640, 480); frame.setVisible(true);

Figur 4 Sverige visat i desktop versionen av NASA World Wind

2.5.4.5 OpenLayers

OpenLayers är ett JavaScript-bibliotek som är till för att visa dynamisk kartdata i en webbläsare. Den ursprungliga versionen utvecklades av MetaCarta, ett företag som tillhandahåller geografiska informationslösningar, därefter gav de OpenLayers till allmänheten för att främja användandet av geografisk information. Biblioteket kan användas för att visa kartor i en webbläsare, inbyggt stöd finns för att zooma och panorera kartan som kan ha blivit hämtad med WMS, WFS eller från en tile cache. OpenLayers är släppt under en BSD-licens och är alltså gratis att använda.33 Exempel på visning av Sverige med hjälp av OpenLayers och OpenStreetMap.

<html> <head> <script src="http://www.openlayers.org/api/OpenLayers.js"> </script> <script src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js"> </script> <script type="text/javascript"> var lat = 59.0; var lon = 15.0; var zoom = 7; 33 OpenLayers, 2009 http://openlayers.org

(23)

var map;

function init() {

map = new OpenLayers.Map("map", { controls:[

new OpenLayers.Control.Navigation(), new OpenLayers.Control.PanZoomBar(), new OpenLayers.Control.Attribution()],

projection: new OpenLayers.Projection("EPSG:900913"), displayProjection: new OpenLayers.Projection("EPSG:4326") } );

layer = new OpenLayers.Layer.OSM.Mapnik("Mapnik"); map.addLayer(layer);

var lonlat = new OpenLayers.LonLat(lon, lat).transform( new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()); map.setCenter(lonlat, zoom); } </script> </head> <body onload="init()">

<div style="width: 100%; height: 100%;" id="map"></div> </body>

</html>

(24)

3. Metod

3.1 Kriterier

3.1.1 Allmänna

Gemensamma kriterier för alla tekniker är kostnad, licens, dokumentation och support.

Kostnad

0 Licenskostnad för användning 9 Gratis

Licens

0 Licensen tillåter inte användning

5 Användning tillåten med vissa restriktioner 9 Fri användning

Dokumentation

0 Ingen dokumentation funnen 2 Kortfattad dokumentation 4 Acceptabel dokumentation 6 Omfattande dokumentation

Support

0 Ingen support tillgänglig

2 Forum eller mailinglista med låg aktivitet 4 Forum eller mailinglista med acceptabel aktivitet 6 Forum eller mailinglista med hög aktivitet

(25)

3.1.2 Karttjänster

Kriterierna när karttjänsterna jämförs är kvalitet på kartan samt möjligheten att använda kartan lokalt.

Kvalitet

0 Ingen täckning över Sverige

3 Namnen på städer och de stora vägarna i Sverige.

6 Stora vägar över hela Sverige och mindre vägar i städer. Sjöar och andra landmärken finns i stor utsträckning.

9 Täckning över hela Sverige med både stora och små vägar i både glesbygd och städer. I princip alla relevanta landmärken finns.

Lokal användning

0 Får ej användas lokalt. 5 Lokal användning tillåten.

3.1.3 Spatiala databaser

Databasernas jämförelse ska ta hänsyn till prestanda, skalbarhet, hur bra GIS-stödet är, hur bra de kan integreras med nuvarande system och om Ida Infront har tidigare erfarenhet av databasen.

Prestanda/Skalbarhet

0 Dålig prestanda och skalar dåligt 4 Problem med prestanda eller skalning 9 Förväntad prestanda och skalning

GIS stöd

0 Väldigt begränsat stöd

3 Stöd för lagring av spatial data

6 Stöd för lagring av spatial data och sökningar med ett område. 9 Stöd för lagring, sökning och indexering av spatial data

(26)

Erfarenhet

0 Aldrig tidigare använt av Ida Infront

9 Levereras i dagsläget med informationssystem

Integrering

0 Inget som hjälper integrering 3 XA stöd finns

3.1.4 Kartservrar

I kartservrarnas jämförelse så är stödet för de olika väsentliga GIS-standarderna viktigt. Integreringsmöjligheter med nuvarande system ska också jämföras.

GIS stöd

0 Väldigt begränsat eller icke standardiserat stöd 3 Stöd för WFS

6 Stöd för både WMS och WFS

9 Stöd för alla väsentliga standarder. WMS, WFS och WFS-T

Integrering

0 Inget som hjälper integrering

3 Kan köras i en J2EE applikationsserver

3.1.5 Visualisering/Sökning

När olika visualiserings-/sökningslösningar jämförs så ska stöd för GIS-standarder, möjligheterna att visa flera lager och typ av lösning vara kriterierna.

GIS stöd

0 Finns inget inbyggt stöd för GIS-standarder 3 Stöd för någon GIS-standard

6 Stöd för flera GIS-standarder

(27)

Multilager stöd

0 Bara ett lager med information kan visas 5 Stöd för att visa ett baslager och en overlay 7 Fullfjädrat multilager stöd Typ av programvara 0 JavaScript API 5 Java/Swing API

3.2 Bedömning

3.2.1 Karttjänster

3.2.1.1 Google Map

Google Map begränsas av att den bara får användas på en hemsida tillsammans med Googles JavaScript API. Dokumentationen är väldigt bra och support fås enkelt via en så kallad ”Google Group” där det i regel skrivs mellan tre och fyratusen inlägg i månaden. Kartorna täcker hela världen och det är väldigt bra kvalitet även vid låg skala. Det är inte tillåtet att ladda ner kartdata för lokal användning.

3.2.1.2 OpenStreetMap

OpenStreetMap är det enda undersökta gratisalternativet. Så länge kartorna används utan att modifieras så räcker det att det står att OpenStreetMap är

upphovsrättsinnehavare där kartan visas, det gäller även om kartorna används lokalt. Dokumentation hittas enklast på OpenStreetMaps wiki, behövs support så finns det aktiva mailinglistor med flera hundra meddelanden i månaden. Kvaliteten på kartorna varierar, i storstäder är det väldigt bra kvalitet på glesbygden är den i regel sämre. 3.2.1.3 World Street Map

World Street Map lider av att ha väldigt bristande dokumentation, det finns forum men de är inte så aktiva. Kartans kvalitet ligger någonstans mellan Google Map och OpenStreetMap och den får inte användas lokalt.

3.2.1.4 Bing Maps

Bing Maps är väldokumenterat, Microsoft tillhandahåller aktiva forum där hjälp kan hittas. Kartorna är av väldigt bra kvalitet, även på glesbygden finns ortsnamn och gatunamn. Det är inte tillåtet att använda kartorna lokalt.

(28)

Tabell 1 Jämförelse av karttjänster Go og le M ap Op en St re et M ap W or ld St re et M ap B in g M ap s Kostnad 0 9 0 0 Licens 5 9 9 9 Dokumentation 6 4 0 6 Support 6 6 4 4 Kvalitet 9 6 6 9 Lokal användning 0 5 0 0 26 39 19 28

Av de fyra jämförda karttjänsterna framstår ”World Street Map” som den svagaste, mest på grund av bristande dokumentation. Google Map går inte att använda i ett Java/Swing gränssnitt och faller alltså automatiskt bort om en sådan lösning väljs. Den stora skillnaden mellan OpenStreetMap och Bing Maps (BM) är att BM kostar att använda men har också en bättre kvalitet på kartorna.

Till proof-of-concept implementationen kommer OpenStreetMap att användas, detta eftersom det är gratis och får användas lokalt om så behövs.

3.2.2 Spatiala databaser

3.2.2.1 PostgreSQL/PostGIS

Gratis-databasen PostgreSQL har en i det närmsta heltäckande dokumentation som kompletteras av en mycket aktiv mailing lista. GIS-stödet i PostGIS är bra och följer ”Simple Features” specifikationen från OGC. Stöd finns för XA vilket skulle

underlätta integrering med nuvarande system. PostgreSQL har visat sig skala på ett bra sätt när antalet processorer ökar.34 Denna databas är den enda av de undersökta som inte redan används av Ida Infront.

3.2.2.2 MySQL

MySQL är väldokumenterat och det finns mailing listor med hög aktivitet. GIS-utökningarna som finns till databasen följer inte ”Simple Features” specifikationen men uppfyller det som krävs för att lagra och söka i spatial data. Sökningar efter spatial data i ett område begränsas inte av det givna området utan av den minsta rektangel som innesluter området, en så kallad minimum bounding rectangle (MBR). Spatiala

(29)

index fungerar bara i databasmotorn MyISAM. Stöd finns för XA om databasmotorn InnoDB används. Tester på skalbarheten med MySQL visar på problem när antalet aktiva anslutningar ökar.35

3.2.2.3 Oracle Database

Dokumentationen till Oracle Database är mycket heltäckande och om det inte räcker så finns det aktiva mailing listor. Oracle Spatial följer ”Simple Features”

specifikationen och har alltså bra GIS-stöd. Integrering underlättas av att det finns XA stöd. Oracle har visat sig prestera bra i tester.36

3.2.2.4 Jämförelse

Tabell 2 Jämförelse av spatiala databaser

Po st gr eSQ L /Po st G IS M ySQ L Or ac le D at ab as e Kostnad 9 9* 0** Licens 9 9 9 Dokumentation 6 6 6 Support 6 6 6 Erfarenhet 0 9 9 Prestanda/Skalbarhet 9 4 9 GIS stöd 9 9 9 Integrering 3 3 3 51 55 51

*MySQL kräver en licensbetalning vid användning i kommersiella system, men den kostnaden ignoreras eftersom Ida Infront redan använder MySQL.

** Används redan av Ida Infront men det spatiala tillägget måste köpas

På summan av vikterna ser det ut som om MySQL är vinnaren. Dock har den vissa begränsningar när det gäller XA och spatiala index vilka det måste tas hänsyn till vid ett val. Skillnaden mellan Oracle och PostgreSQL i det här fallet är att PostgreSQL är gratis men Ida Infront har mer erfarenhet med Oracle.

35 MySQL 5.4 Scaling on …, 2009 http://blogs.sun.com/allanp/entry/mysql_5_4_scaling_on 36 Transaction Processing Performance Council, 2009 http://www.tpc.org

(30)

PostgreSQL / PostGIS kommer att användas för proof-of-concept implementationen, avgörande faktorer är att det är gratis och har stöd för både XA och de relevanta GIS-teknikerna.

3.2.3 Kartservrar

3.2.3.1 GeoServer

Geoserver har en väldigt bra dokumentation och en mycket aktiv mailing lista. Stöd finns för WMS, WFS och WFS-T, GeoServer kan även agera tile service. GeoServer är J2EE baserat och kan därför köras i en iipax-installation.

3.2.3.2 MapServer

MapServers dokumentation är i princip heltäckande och mailing listorna fylls med flera hundra meddelanden i månaden. WMS och WFS stöds, dock inte WFS-T. Servern kan även fungera som tile service.

3.2.3.3 ArcGIS Server

Både dokumentation och support för ArcGIS Server håller relativt låg kvalitet. Stöd finns för WMS, WFS, WFS-T och tile service. ArcGIS Server är den enda undersökta kartservern som inte är gratis.

3.2.3.4 Jämförelse

Tabell 3 Jämförelse av kartservrar

G eo Se rv er M ap Se rv er A rc G IS Se rv er Kostnad 9 9 0 Licens 9 9 9 Dokumentation 6 6 4 Support 6 6 4 GIS stöd 9 6 9 Integrering 3 0 0 42 36 26

Bland kartservrarna är det GeoServer som sticker ut, på alla punkterna är den minst lika bra som konkurrenterna. ArcGIS Server ser ut som det svagaste alternativet, mest på grund av att det till skillnad från de andra inte är gratis.

(31)

Valet av kartserver till proof-of-concept implementationen är GeoServer, den är i jämförelsen bättre eller lika bra som de andra på alla punkterna.

3.2.4 Visualisering/Sökning

3.2.4.1 SwingX-WS

Dokumentationen till SwingX-WS består till stor del av exempel och javadoc. Support hittas enklast på SwingLabs forum. Biblioteket stöder hämtande av kartinformation från WMS och tile service.

3.2.4.2 GeoTools

GeoTools har en bra dokumentation, men vissa delar är mycket bättre dokumenterade än andra. Hjälp finns att hitta på aktiva mailing listor. GeoTools kan användas för att hämta kartinformation från WMS och WFS, det finns dessutom stöd för WFS-T. 3.2.4.3 OpenMap

OpenMaps dokumentation sträcker sig till en guide och javadoc, supporten består i en mailing lista. Stöd för att hämta kartinformation från WMS eller direkt från vissa databaser finns. OpenMap har ett väl utvecklat stöd för att visa flera lager med kartinformation.

3.2.4.4 OpenLayers

Av de olika visualiseringslösningarna har OpenLayers den bästa dokumentationen och aktiva mailing listor finns om frågor behöver ställas eller besvaras. Kartinformation kan hämtas från WMS, WFS eller tile service och det finns stöd för WFS-T. Som namnet på produkten antyder så finns det stöd för att visa flera lager med

kartinformation. Kartan kan inte visas i ett Swing-gränssnitt utan att en webbläsare startas som visar den.

3.2.4.5 Jämförelse

Tabell 4 Jämförelse av visualiserings/söknings tekniker

Sw in gX -WS G eo T oo ls Op en M ap N A SA W or ld W in d Op en L ay er s Kostnad 9 9 9 9 9 Licens 9 9 5 5 9 Dokumentation 4 4 4 2 6 Support 4 4 4 6 6

(32)

Typ 5 5 5 5 0

GIS stöd 6 6 3 3 6

Multilager stöd 5 7 7 7 7

42 44 37 37 43

Bland verktygen för visualisering så är det väldigt jämnt. GeoTools får mest poäng, men dess Swing-komponenter ska enligt egen utsago inte vara redo för

produktionsbruk. SwingX-WS från SwingLabs blir då den högst placerade Java/Swing lösningen och har likvärdiga poäng med JavaScript verktyget OpenLayers. OpenLayers står inte ut tillräckligt mycket för att motivera användandet av JavaScript istället för Java.

Den valda lösningen för visualisering är SwingX-WS eftersom den står ut som den bästa Swing-komponenten. För att kommunicera med den spatiala databasen på olika sätt så kommer GeoTools användas då det har stöd för de relevanta gränssnitten WFS, WFS-T och SQL.

3.3 Kritik till vald metod

När det gäller karttjänst så kan det visa sig att OpenStreetMap håller för låg kvalitet, då borde Bing Maps användas istället.

För kunder som redan använder Oracle Database eller MySQL skulle det vara naturligare att fortsätta använda samma databas än att använda PostgreSQL.

(33)

4. Resultat

Resultatet av examensarbetet blev en proof-of-concept implementation som uppfyller målen beskrivna i punkt 1.3.

4.1 Arkitektur

De valbara delarna specificeras genom ärendehanteringssystemets konfigurationsfil.

4.2 Databasdesign

I den spatiala databasen krävs det att det finns en tabell som lagrar ärendens position och deras ID. Utöver PostgreSQL har proof-of-concept implementationen stöd för MySQL och Oracle, vilken som används bestäms av konfigurationsfilen.

Tabell 5 Exempel på tabellens utseende i PostgreSQL

Kolumn Typ Beskrivning

fid SERIAL Feature id (krävs för att det ska vara en korrekt feature) caseid BIGINT Ärendets id

pos GEOMETRY En punkt som beskriver ärendets position Namnet på tabellen och kolumnen innehållande ärendets id specificeras i konfigurationsfilen. Kolumnen med ärendets position kan heta vad som helst, programmet antar att det bara finns en kolumn med geometrier. Det går att utöka tabellen med fler kolumner, till exempel lägga till en kolumn med adressen, vilken skulle kunna användas för att approximera en position när sådan saknas.

OpenStreetMap GeoServer PostgreSQL / PostGIS Ärendehanteringssystem GeoTools Swing-gränssnitt SwingX-WS SQL WFS (valbar) SQL (valbar) Tile service RMI

(34)

4.3 Konfiguration

Inställningar görs via applikationens konfigurationsfil där det finns ett antal nya möjligheter.

Tabell 6 Nya konfigurationsmöjligheter

Namn Beskrivning

spatial.idproperty Namnet på kolumnen som innehåller ärendets id. spatial.searchinterface Om WFS eller direkt databasanslutning (RDBMS) ska

användas för sökningar

spatial.updateinterface Om WFS eller direkt databasanslutning (RDBMS) ska användas för uppdateringar

spatial.wfs.url Adress till WFS

spatial.wfs.namespace Namnrymd som ska användas vid WFS spatial.wfs.featuretype Vilken featuretype som ska användas vid WFS

spatial.db.type Vilken typ av spatial databas som används, t.ex. postgis, mysql eller oracle

spatial.db.host Hostnamn eller ip-adress till databasen spatial.db.port Port som ska användas vid databasanslutning spatial.db.user Användarnamn till databasen

spatial.db.password Lösenord till databasen

spatial.db.database Vilken databas som ska användas i den spatiala databasen spatial.db.table Vilken tabell som ska användas i den spatiala databasen

4.4 Grafiskt gränssnitt

4.4.1 Sök-arbetsytan

(35)

4.4.2 Ärenden

För att ärenden ska kunna ha en position har de fått två nya fält som innehåller longitud och latitud.

När ett nytt ärende skapas så finns möjlighet att skriva i vilka geografiska koordinater det ska ha.

Figur 8 Vy för skapande av nytt ärende

Det finns också möjlighet att ändra eller lägga till longitud och latitud efter att ärendet har skapats.

4.4.3 Visning av ärende på karta

I vyn som visar ett ärende har det lagts till en ny flik för att visa ärendets position på en karta.

Figur 9 Visning av ärendes position på karta

4.4.4 Sökning

Till systemets sökfunktion har det lagts till en karta på vilken sökningar görs genom att ett område markeras med höger musknapp.

(36)

Figur 10 Standardmarkering

Det går även att söka med ett godtyckligt område genom att placera ut hörn med vänster musknapp efter påbörjad markering.

Figur 11 Markering av godtyckligt område

En pågående markering kan avbrytas med ”escape”-knappen på tangentbordet och det senaste hörnet kan tas bort med ”backspace”-knappen.

Om en invalid polygon markeras så byter markeringen färg från grön till röd, om användaren försöker utföra en sökning med den invalida polygonen så presenteras ett felmeddelande.

(37)

Efter att sök-knappen har tryckts utförs en sökning med det markerade området tillsammans med eventuell söksträng, när sökningen är färdig dyker de hittade ärendena upp på kartan, det markerade ärendet är grönt och alla andra ärenden är blå. Blåmarkerade ärenden kan markeras genom att trycka på dem.

Figur 13 Hittade ärenden visade på karta

4.5 Gränssnitt mot spatial data

4.5.1 Sökning

Klienten skapar en polygon som beskriver det område som ska användas vid sökningen. Polygonen skickas till servern som söker igenom den spatiala databasen efter de ärenden som är inneslutna i den. Den spatiala databasen ger ärendenas id-nummer som kriterier i sökanropet mot ärendehanteringssystemet i kombination med eventuella kriterier från sökformuläret.

(38)

4.5.1.1 Flödesschema

4.5.2 Uppdatering

Efter att ett ärende har uppdaterats i gränssnittet så kollar servern om ärendets spatiala data har ändrats, om så är fallet görs en uppdatering mot den spatiala databasen innan en uppdatering sker i ärendedatabasen.

Sökning påbörjad Är polygonen giltig? Visa felmeddelande Nej Skapa polygon Ja

Sök efter ärenden inneslutna i polygonen, tillsammans med eventuell fritextsökning

Hittades några ärenden?

Återställ sökkartan Nej

Visa ärendena i resultatrutan och deras position på kartan

Ja

(39)

4.5.2.1 Flödesschema

Ärende uppdaterat

Är ärendets longitud eller latitud ändrad?

Uppdatera ärendedatabasen Nej Uppdatera spatiala databasen Ja

(40)

5. Analys och Diskussion

5.1 OpenStreetMap

OpenStreetMap visade sig vara väldigt enkelt att arbeta med, mest eftersom SwingX-WS har färdigt stöd för att använda dess kartor. Kvaliteten på kartorna är mycket varierande och det skulle inte vara förvånande om Ida Infront skulle välja att använda Bing Maps istället i sitt system.

5.2 PostgreSQL / PostGIS

Det fungerade mycket bra att använda PostgreSQL som spatial databas. Det kan tänkas att det skulle vara smidigare att använda samma databas både för ärenden och deras spatiala data. Oracle hade förmodligen fungerat lika bra som PostgreSQL för den här applikationen, dock hade inte MySQL klarat av att ge stöd för sökningar av godtyckliga områden.

5.3 GeoServer

GeoServer visade sig vara föredömligt på att erbjuda tillgång till den spatiala databasen via WFS. Dock upptäcktes det att ingen kartserver egentligen behövdes, i alla fall inte till proof-of-concept implementationen eftersom den klarar av att kommunicera direkt med den spatiala databasen. Det kan tänkas att en kartserver behövs i ett senare skede för att till exempel skapa ett webbgränssnitt mot ärendena, i så fall skulle GeoServer fungera bra.

5.4 GeoTools

GeoTools gjorde det enkelt att använda den spatiala databasen, både genom WFS och genom en direkt anslutning. Problemen med GeoTools var att delar av

dokumentationen är utdaterad och att det förekom vissa små buggar. Fördelarna väger upp för problemen, det var väldigt smidigt att interagera med den spatiala databasen oavsett vilket gränssnitt som användes.

5.5 SwingX-WS

SwingX-WS gjorde det väldigt enkelt att visa en karta och det var trivialt att använda OpenStreetMap som datakälla till den. Även utökningar som stöd för markeringar och att visa ärenden på kartan var smidigt.

(41)

6. Slutsatser

Den proof-of-concept implementation som blev resultatet av arbetet uppnår de mål som var satta. Förutom de uppsatta målen har den extra funktionalitet som sökning efter godtyckligt formade områden, valbart gränssnitt mot den spatiala databasen och stöd för flera olika databaser.

Som gränssnitt till den spatiala databasen går det att välja mellan WFS och

direktanslutning, det gör att det blir mer flexibelt eftersom de båda lämpar sig olika bra för olika situationer. WFS är mer lämpat när inte den spatiala databasen körs lokalt och direktanslutning ger bättre prestanda när den körs lokalt.

Stödet för flera olika databaser gör att det skulle vara enkelt att använda lösningen i befintliga system utan att kräva ytterligare databas.

I sökgränssnittet går det att genom att markera ett område hitta alla ärenden som innesluts av det. Detta gör det enklare att hitta ärenden med geografisk anknytning. Att det går att söka efter godtyckligt formade områden medför att de geografiska sökningarna blir mer exakta och resulterar i relevantare sökträffar.

Om ett ärende markeras går det att se dess position på en karta. Detta medför att det är enklare att se vilken geografisk anknytning ett ärende har än om det bara finns en adress.

6.1 Förslag till vidareutveckling

En tänkbar vidareutveckling skulle vara att erbjuda en karta där det går att markera ett ärendes position, istället för att skriva in ärendets longitud och latitud. Det skulle underlätta vid skapande av ärenden med geografisk anknytning. En annan tänkbar vidareutveckling är att approximera ett ärendes position från dess adress när inte koordinater finns.

(42)

7. Referenser

7.1 Elektroniska källor

1. Web Services Architecture, 2004

Tillgänglig: http://www.w3.org/TR/ws-arch/ [2009-08-25] 2. What is GIS

Tillgänglig: http://www.gis.com/whatisgis/index.html [2009-08-25] 3. About OGC, 2009

Tillgänglig: http://www.opengeospatial.org/ogc [2009-08-25] 4. Geography Markup Language, 2009

Tillgänglig: http://www.opengeospatial.org/standards/gml [2009-08-25] 5. GML Point Profile, 2005

Tillgänglig: http://portal.opengeospatial.org/files/?artifact_id=11606 [2009-08-25]

6. Geographic Information Systems and an Integrating Technology, 2009 Tillgänglig:

http://www.colorado.edu/geography/gcraft/notes/intro/intro.html [2009-08-25]

7. Web Map Service, 2009

Tillgänglig: http://www.opengeospatial.org/standards/wms [2009-08-25] 8. Web Feature Service, 2009

Tillgänglig: http://www.opengeospatial.org/standards/wfs [2009-08-25] 9. Using a Web Feature Service, 2008

Tillgänglig: http://www.ogcnetwork.net/wfstutorial [2009-08-25] 10. Tile Map Service Specification, 2008

Tillgänglig: http://wiki.osgeo.org/wiki/Tile_Map_Service_Specification

[2009-08-25]

11. WMS Tile Caching, 2009

(43)

12. TileCache, 2009

Tillgänglig: http://tilecache.org/ [2009-08-25] 13. Using Data in GIS, 2009

Tillgänglig: http://www.gis.com/implementing_gis/data/usingdata.html

[2009-08-25]

14. Google Maps, API, 2009

Tillgänglig: http://code.google.com/apis/maps/ [2009-08-25] 15. OpenStreetMap, 2009 Tillgänglig: http://wiki.openstreetmap.org/wiki/Main_Page [2009-08-25] 16. Cloudmade, 2009 Tillgänglig: http://cloudmade.com [2009-08-25] 17. ESRI, 2009 Tillgänglig: http://www.esri.com [2009-08-25] 18. Bing Maps, 2009 Tillgänglig: http://www.microsoft.com/maps/ [2009-08-25] 19. Simple Feature Access, 2009

Tillgänglig: http://www.opengeospatial.org/standards/sfs [2009-08-25] 20. PostgreSQL, 2009 Tillgänglig: http://www.postgresql.org/ [2009-08-25] 21. PostGIS, 2009 Tillgänglig: http://postgis.refractions.net/ [2009-08-25] 22. MySQL, 2009 Tillgänglig: http://www.mysql.com/ [2009-08-25] 23. Oracle Database, 2009 Tillgänglig: http://www.oracle.com/database/index.html [2009-08-25] 24. GeoServer, 2009 Tillgänglig: http://geoserver.org [2009-08-25] 25. MapServer, 2009 Tillgänglig: http://mapserver.org [2009-08-25] 26. ArcGIS Server, 2009 Tillgänglig: http://www.esri.com/arcgisserver [2009-08-25]

(44)

27. SwingLabs, 2009

Tillgänglig: http://swinglabs.org/ [2009-08-25] 28. NASA Maps in your Swing App, 2006

Tillgänglig: http://weblogs.java.net/blog/joshy/archive/2006/10/nasa_maps_in_yo.htm l [2009-08-25] 29. GeoTools, 2009 Tillgänglig: http://geotools.codehaus.org [2009-08-25] 30. OpenMap, 2009 Tillgänglig: http://openmap.bbn.com [2009-08-25] 31. NASA World Wind, 2009

Tillgänglig: http://worldwind.arc.nasa.gov [2009-08-25] 32. OpenLayers, 2009

Tillgänglig: http://openlayers.org [2009-08-25] 33. Database test: dual Intel Xeon 5160, 2006

Tillgänglig: http://tweakers.net/reviews/657 [2009-08-25] 34. MySQL 5.4 Scaling on Nehalem with Sysbench, 2009

Tillgänglig: http://blogs.sun.com/allanp/entry/mysql_5_4_scaling_on [2009-08-25]

35. Transaction Processing Performance Council, 2009 Tillgänglig: http://www.tpc.org/[2009-08-25]

Figure

Figur 1 Lagerarkitektur
Figur 2 OpenStreetMap visat med SwingX-WS komponenten JXMapViewer
Figur 3 OpenStreetMap visat med OpenMap
Figur 4 Sverige visat i desktop versionen av NASA World Wind
+7

References

Related documents

För detta projekt används två GET-anrop för att hämta data från den kunddatabas som är kopplat till företagets G&amp;L-system:.. För att hämta all data

Keywords: Load and performance Testing, Quality of Service (QoS), Web Feature Service (WFS), Spatial Data Infrastructure (SDI),

Detta gör att nya kopplingar och processer inte behöver skapas för varje anrop som görs, vilket kan förbättra prestandan, i synnerhet vid flertalet simultana användare

Boendeprojektets projektledare besökte 2005, i sin initiala inventeringsresa, ett tjugotal svenska kommuner för att få en uppfattning om boende och boendestöd för personer

I resultatet framkom att många föräldrar kände att de fick otillräcklig information angående sitt barns sjukdom från sjukvårdspersonal och att sjuksköterskor

Visualiseringen ändrades så att när man snävat åt selektionen så pass mycket att det bara var 15 bilar kvar, kom symboler för varje bil fram och när musen förs över dessa

Institutionen för samhällsbyggnad och naturresurser... 1

KBA metoden som tagits fram i detta arbete detekterade inte rök i 10 % av de testade bilderna samt upptäcktes 20 % falska alarm för bilder med dimma. Orsaken till detta