Karttillämpningar För Rikstäckande Accessnät Map Applications For
Total Page:16
File Type:pdf, Size:1020Kb
Detta examensarbete har genomf¨orts i samarbete med DGC. Handledare p˚aDGC: Paul Weingarten och Bj¨orn Osterman.¨ Karttill¨ampningar f¨or rikst¨ackande accessn¨at Map applications for nationwide access net Johan Camling Fredrik Lonnegren¨ Examensarbete inom Datorteknik Grundniv˚a,15 hp Handledare p˚aKTH: Jonas W˚ahsl´en Examinator: Ibrahim Orhan Skolan f¨or teknik och h¨alsa TRITA-STH 2013:73 Kungliga Tekniska H¨ogskolan Skolan f¨or teknik och h¨alsa 136 40 Handen, Sweden http://www.kth.se/sth i Sammanfattning Denna rapport ˚atergerarbetsprocessen kring att utv¨ardera geografiska tj¨anster, och att utveckla karttill¨ampningar f¨or n¨atverk av rikst¨ackande om- fattning. Arbetet utf¨ordes p˚aplats hos DGC, en datakommunikations-, tele- och n¨atoperat¨or som distribuerar kundf¨orbindelser i hela Sverige d¨ar konsu- menter ansluts till stamn¨atet. Uppgiften bestod av att utv¨ardera m¨ojligheter till att sl˚aupp koordinater f¨or etablerade kundplatser, rita ut accessn¨atet i ett kartgr¨anssnitt och ta fram ett eller flera st¨odverktyg f¨or bland annat orderprocesser. Anv¨andningsfall utifr˚an ¨onskem˚al,arkitekturm¨onster samt analys av yttre leverant¨orers tj¨anster f¨or geocoding avgjorde hur det slutgiltiga systemet var utformat. Mjukvaran som utvecklades integrerades b˚adei befintliga system och som ensamst˚aendetill¨ampningar. En publicering/release genomf¨ordes som avslutande moment i arbetet. I rapporten beskrivs hur kartl¨aggning gjordes med hj¨alp av KML, hur geogra- fisk data hanterades, utformningen av ¨overvakningsverktyget som framtogs samt hur koordinater f¨or adresser h¨amtades. iii Abstract This thesis describes the process of analyzing and evaluating geographic ser- vices, and the development of map applications for nationwide networks. The project was performed at DGC, a datacommunications-, telephony- and networks operator which distributes customer access across Sweden where consumers are connected to the backbone network. In whole, the task consisted of an analysis regarding the possibilities of address-to-coordinate lookup for established customer sites, displaying the access network in a map interface and developing one or more tools, aimed at supporting order processes. Architecture patterns, use-cases construed from user requests and analysis of external provider services for geocoding determined the design of the so- lution. Software was partially integrated in existing systems, and partially distributed as stand-alone applications. The product was finalized with a re- lease. Read further to get a description of the monitoring tool, network mapping with KML, dealing with geographic data, and also the process of fetching coordinates for addresses. v F¨orord Vi vill passa p˚aatt ge ett stort tack till Paul Weingarten och Bj¨orn Osterman¨ f¨or det st¨od och samarbete som vi hade i projektet. Vi har med hj¨alp av er f˚atten djupare f¨ors˚aelsei distribuerade system, SQL och programutveckling i bland annat .NET. Vi vill g¨arna ge ett snabbt tips till l¨asaren om teckenf¨orklaringen som inleder rapporten: som h¨anvisning till n˚agraav de termer och f¨orkortningar som anv¨ands i texten. Ocks˚aett stort lycka till, till Thomas Lundberg och Alexander Heimonen som p˚ab¨orjade sitt examensarbete, ocks˚ap˚aDGC, knappt fyra veckor efter att vi hade startat. vii Teckenf¨orklaring .NET - Microsofts platform AJAX - Asynchronous Javascript And XML API - Application Programming Interface CLR - Common Language Runtime DAL - Data Access Layer MVVM - Model View Viewmodel WCF - Windows Communication Foundation WPF - Windows Presentation Foundation XML - Extensible Markup Language XAML - Exstensible Application Markup Language Webservice - En tj¨anst som anropas f¨or att f˚adata genom antingen REST- f¨orfr˚agningareller SOAP-anrop REST - Representational State Transfer SOAP - Simple Object Access Protocol Caching - Processen att spara data i minnet f¨or en applikation KV - Key-value-par DB/Db - Databas SQL - Structured Query Language Parsing - Processen att tolka information ur ett svar fr˚ant.ex en webservice GPS - Global Positioning System GIS - Geographic Information System OSM - Open Streetmap KML - Keyhole Markup Language KMZ - Keyhole Markup Zip TDD - Test Driven Development ix Inneh˚all 1 Inledning och bakgrund 1 1.1 F¨oretagsbeskrivning . .1 1.2 Projektbeskrivning . .1 1.2.1 M˚alformulering . .2 1.2.2 Avgr¨ansningar . .3 1.2.3 L¨osningsmetoder . .3 1.3 Nul¨agesbeskrivning . .4 1.4 Summering . .4 2 Teoretisk referensram 5 2.1 Geodesi . .5 2.1.1 Latitud och longitud . .5 2.2 Geocoding . .5 2.3 Datatypen Geography . .6 2.4 KML och KMZ . .6 3 F¨orstudie 7 3.1 Externa geografitj¨anster . .7 3.2 Geocoding, licensiering och persistent datalagring . .8 3.2.1 Google Maps APIs . .8 3.2.2 Bing Maps Platform APIs . .9 3.2.3 Yahoo! Maps API . 10 3.2.4 MapQuest . 10 3.2.5 Nominatim . 11 3.3 Tillf¨orlitlighet av uppslag . 11 3.3.1 Google . 11 3.3.2 Bing . 12 3.3.3 MapQuest . 12 3.3.4 Nominatim . 12 4 Genomf¨orande 13 4.1 Tredjepartstj¨anster . 13 4.1.1 Val av tredjepartsleverant¨orer . 13 4.2 Arkitektur . 14 4.2.1 Geocoding Service . 14 4.2.2 Geofinding Service . 14 xi 4.2.3 Webbvy med modell . 14 4.2.4 DbSeeder . 15 4.3 Geocodes fr˚anextern leverant¨or . 15 4.3.1 J¨amf¨orelse med viktade v¨arden . 15 4.3.2 Parsing . 17 4.3.3 Confidence-filter . 17 4.3.4 Cache . 19 4.4 Lagring av positionsdata . 20 4.5 WPF . 21 4.6 Webbvyer . 22 4.6.1 Javascriptmodulen geo.js . 22 4.6.2 Overvakning¨ . 23 4.7 Publicering . 24 4.7.1 Beslut om geocoding . 24 4.7.2 Tillkomna st¨od med tillh¨orande licenser . 25 4.7.3 Verktyg . 25 5 Interna ¨onskem˚al 26 5.1 Kundportal . 26 5.2 Vy med huskroppar . 26 6 Resultat 27 6.1 Geocode service . 27 6.2 Anv¨andargr¨anssnitt i form av kartor . 27 6.2.1 Overvakningsvy¨ . 28 6.2.2 Kundvy . 28 6.2.3 KML i Google Earth . 28 6.3 Enhetstestning och dokumentation . 29 6.4 Uppfyllande av m˚alen. 29 7 Slutsatser 30 8 Rekommendationer 31 K¨allf¨orteckning 32 Bilagor 37 A Systemarkitektur . 37 B KML i en geografisk l¨asare . 38 xii B.1 Exempeldata i KML . 39 B.2 KML-generering med LINQ To XML . 40 C Kartvy . 41 D How-To . 42 D.1 Controller . 42 D.2 Modul . 43 D.3 View . 45 xiii 1 Inledning och bakgrund I detta avsnitt beskrivs bakgrunden f¨or hur projektet kom att uformas, vilket sorts f¨oretag det gjordes f¨or och en ¨overgripande beskrivning av m˚als¨attningarna. Aven¨ de val av tillv¨agag˚angss¨att som gjordes under projektet och tillm¨otesg˚aendeav de behov som fanns motiveras. 1.1 F¨oretagsbeskrivning DGC ¨ar en n¨atoperat¨or som utvecklar och s¨aljer datakommunikations-, drift- och telefonil¨osningar i ett eget rikst¨ackande n¨at till f¨oretag och organisationer som har verksamhet p˚am˚angaplatser. DGC hyr koppar- och fiberf¨orbindelser av n¨at¨agare i Sverige f¨or att ansluta slutkunderna till sitt stamn¨at. Slutkundens adress och geografiska position avg¨or vilka n¨at¨agare som ¨ar aktuella samt vilka tj¨anster som de kan erbjuda DGC. 1.2 Projektbeskrivning N¨ar internetaccess skulle s¨aljas till nya kunder unders¨oktes f¨orst vilken un- derleverant¨or som kablage skulle hyras av baserat p˚aslutkunders adress. I de orderprocesser som genomf¨ordes unders¨oktes slutkunders adresser i detalj, men systemst¨od f¨or att s¨oka fram adressers koordinater och spara dessa i ett strukturerat format saknades. Detta medf¨orde kostnader i tid f¨or de beslut som r¨orde kunders geografiska placering i f¨ors¨aljningsprocessen. F¨or att kunna ta fram verktyg som skulle underl¨atta beslutsprocesser vid ink¨op av n¨attj¨anster ¨onskade DGC modifiera sina befintliga system f¨or att st¨ojda koordinater, samt ta fram ett nytt system f¨or uppslag av koordinater fr˚anextern leverant¨or. Ut¨over nyttan i ink¨opsprocessen s˚av¨arderade DGC m¨ojligheten att anv¨anda geografisk information f¨or att presentera sina tj¨anster p˚aen karta, b˚adein- ternt och i sin kundportal. 1 1.2.1 M˚alformulering Arbetet f¨orv¨antades resultera i ett eller flera system, efterforskningar och analyser. Dessa var: • En unders¨okning av vilka leverant¨orer av geografiska tj¨anster som b¨ast kunde l¨osa problemet och som en webtj¨anst sedan skulle implementera. • Ett strukturerat s¨att att lagra geografisk data i befintliga system. • En kartl¨aggning och teknisk analys av delsystemens syften och vad de skulle ha f¨or roll i ett st¨orre sammanhang. • Funktionalitet f¨or att ber¨akna n¨arhet mellan koordinater. • Utf¨ora geocoding p˚abefintlig data i befintliga system. • Kartl¨aggning av interna ¨onskem˚al. • Generera geografisk information till ett strukturerat format och sedan anv¨anda informationen f¨or uppritning i vyer. • En webvy f¨or att presentera data grafiskt. • En WPF-kontroll som presenterar data grafiskt. • Att kunna m¨ata proximitet mellan punkter f¨or att avg¨ora hur en order ska f¨orfaras. • Att kunna anpassa grafisk presentation utifr˚ant¨athet. • Implementation i befintliga system. Grundtanken med projektet var att skapa flera, i s˚ah¨og grad som m¨ojligt, anv¨andbara verktyg f¨or intern verksamhet p˚aDGC. Programvara skulle va- ra fels¨aker och skriven med kvalitetss¨akrad kod, b˚adef¨or att f¨ors¨akra att delsystem var robusta i drift och f¨or att underl¨atta framtida utveckling. 2 1.2.2 Avgr¨ansningar Arbetet omfattade ej: • Utveckling utanf¨or plattformen .NET.