• No results found

Digital visualisering av skallgångskedjor: Google Maps som spårningsverktyg

N/A
N/A
Protected

Academic year: 2022

Share "Digital visualisering av skallgångskedjor: Google Maps som spårningsverktyg"

Copied!
116
0
0

Loading.... (view fulltext now)

Full text

(1)

Kandidatarbete

Digital visualisering av skallgångskedjor

- Google Maps som spårningsverktyg

Författare:​ Carl Einarsson, Joel Carlsson Handledare:​ Daniel Toll

(2)

Sammanfattning

Varje år försvinner tusentals personer. År 2017 anmäldes 7100 personer som försvunna i Sverige. De allra flesta återfinns inom sex månader, men i genomsnitt 30 personer återfinns aldrig. Svensk polis deltar i sökningar efter minst 300 personer varje år. Polisen samarbetar i sina sökinsatser med försvarsmakten och andra organisationer som Missing People. Missing People som har över 60 000 personer anmälda som volontära sökare, hjälper till genom, bland annat, anordna skallgångskedjor.

I detta examensarbete, undersöks verktyg och tekniker som skulle kunna komma till användning vid sökinsatser. Examensarbetet undersöker verktyg som finns tillgängliga i Google Maps API för att se hur det går att visualisera

1

hur ett område är sökt och hur länge sedan det genomsöktes. Tre visualiseringstekniker från Google Maps API implementeras och testas för ändamålet. Teknikerna är Heatmaps, Polygons och Circles. Varje teknik implementeras och testas mot ett antal identifierade krav i en iteration.

Kraven är framtagna genom att analysera frågeställningen mot de relaterade arbeten, webbplatser och artiklar som detta examensarbete byggt sin bakgrund på.

Slutsatsen visar att Heatmaps från Google Maps API inte fyller den önskade funktionen. Om heatmaps ska användas kan ett annat kartverktyg än google maps behöva användas eftersom Google Maps Heatmaps-verktyg inte går att ställa så att de passar kraven som satts upp. Polygons misslyckas på ett av testerna, vilket kan gå att lösa med en algoritm för att förstora polygonen.

Circles fungerar efter kraven och kan användas på önskvärt vis. Det krävs

dock mer forskning för att vidareutveckla hur verktyget hade kunnat

användas i ett skarpt läge.

(3)

Nyckelord: Visualiseringstekniker, Google Maps API, Heatmaps, Polygons,

Circles, Missing People, GPS, Koordinater, Javascript

(4)

Förord

Vi vill tacka vår handledare Daniel Toll för stort engagemang och flera

givande handledningstillfällen, samt de studenter som har opponerat på detta

examensarbete.

(5)

Innehåll

Sammanfattning 2

1 Introduktion 8

1.1 Bakgrund 9

1.1.1 Att genomsöka ett område 10

1.1.2 Synhållsradie 10

1.1.3 Visualiseringstekniker för GPS-data 11 1.1.4 Platsinformation & Värmekartor (Heatmaps) 13

1.1.5 Polygoner i Google Maps API 14

1.1.6 Polygons 15

1.1.7 Heatmaps 16

1.1.8 Circles 17

1.2 Relaterade arbeten 18

1.2.1 Utveckling av Location-Based Services för webbläsare 18 1.2.2 Analys av rörelsemönster för försvunna personer 18

1.2.3 Färgläggning av besökta platser 19

1.3 Problemställning 20

1.4 Motivation 20

1.5 Mål 21

1.6 Avgränsningar 22

1.7 Målgrupp 23

1.8 Disposition 24

2 Metod 25

2.1 Krav 26

2.1.1 Tekniska krav 27

2.1.2 Användbarhetskrav 27

2.2 Artefakten 27

2.3 Visuell design 28

2.4 Automatiska enhetstester 28

2.5 Validering 28

2.6 Tillförlitlighet och validitet 29

2.7 Etiska överväganden 29

3 Implementation 30

(6)

3.1 Samla koordinater 30

3.2 Datalagring 31

3.3 Åtkomst och lagring av API-nyckel 32

3.4 Kartfunktionalitet 32

3.5 Färgläggning 33

3.6 Iterationer 34

3.6.1 Iteration 1, Heatmaps 34

3.6.1.1 Vikter 34

3.6.1.2 Skapa Heatmap-lager 36

3.6.1.3 Konvertera koordinater 37

3.6.2 Iteration 2, Polygons 38

3.6.2.1 Gruppera koordinater 38

3.6.2.1.1 Tid 38

3.6.2.1.2 Avstånd 38

3.6.2.2 Form 40

3.6.2.3 Färgläggning 41

3.6.3 Iteration 3, Circles 42

3.6.3.1 Gruppera koordinater 42

3.6.3.2 Färgläggning 43

3.6.3.3 Skapa cirklar 43

4 Utvärdering 45

4.1 Enhetstester 45

4.2 Iteration 1, Heatmaps 46

4.3 Iteration 2, Polygons 50

4.4 Iteration 3, Circles 53

4.5 Summering av manuella tester 58

5 Diskussion 58

5.1 Iteration 1, Heatmaps 60

5.2 Iteration 2, Polygons 61

5.3 Iteration 3, Circles 63

6 Sammanfattning 64

6.1 Framtida arbete 66

6.1.1 Synhållsradien 66

(7)

6.1.3 Alternativ karttjänst 67

6.1.4 Undersöka Circles användning 68

6.1.5 Undersöka prestanda 68

Referenser 69

A Tester 75

Enhetstester 7

Manuella tester 79

B Testsviter 86

B.1 Heatmaps, Testsuite 1 86

B.2 Polygons, Testsuite 1 94

B.3 Circles, Testsuite 1 102

B.4 Enhetstester 110

C Metoder 116

(8)

1 Introduktion

Varje år försvinner tusentals personer [30]. År 2017 anmäldes 7100 personer som försvunna i Sverige. De allra flesta återfinns inom sex månader, men i genomsnitt 30 personer återfinns aldrig [30]. Svensk polis deltar i sökningar efter minst 300 personer varje år [29]. Polisen samarbetar i sina sökinsatser med försvarsmakten och andra organisationer som Missing People [3].

Missing People som har över 60 000 personer anmälda som volontära sökare, hjälper till genom, bland annat, anordna skallgångskedjor [3]. Missing People har bidragit till att personer återfunnits och har blivit en samhällsresurs att räkna med för sökoperationer[13].

I detta examensarbete, undersöks verktyg och tekniker som skulle kunna komma till användning vid sökinsatser. Examensarbetet kommer att utforska verktyg som finns tillgängliga i Google Maps API för att se hur det går att

2

visualisera hur ett område är sökt och hur länge sedan det söktes.

Examensarbetet implementerar en digital miljö som använder koordinater som används i GPS:er och implementerar och testar olika visualiseringstekniker i miljön, för att försöka uppnå ett positivt svar på frågeställningen.

1.1 Bakgrund

Smarta mobiltelefoner är idag ofta utrustade med satellitnavigationssystem

[33]. Enheter med satellitnavigationsystemet GPS (Global Positioning

System) kan uppskatta enhetens geografiska position. Denna typen av teknik

kallas för LBS (Location Based Service) och öppnar för möjligheter att skapa

(9)

applikationer som hjälper användare att visualisera sin position och positionshistorik [2]. Nio av tio svenskar hade 2018 en smart mobiltelefon [32]. Organisationer likt Missing People som bedriver skallgångskedjor med volontära sökare [3] kan använda LBS-teknik när de i grupp arbetar för att täcka geografiska områden när de letar efter försvunna personer. LBS-teknik kan också användas för att skapa statistik över vilka platser som är besökta och genom att lagra positionshistorik, hjälpa till att avgöra hur väl ett område är genomsökt.

1.1.1 Att genomsöka ett område

Att ett område är “ ​genomsökt​” menas i detta examensarbete att ett förutbestämt område har sökts igenom med sådan fullständighet att sökaren eller sökgruppen har varit på, eller haft sikt över all yta inom området och därför kan avgöra statusen för målets existens inom det förutbestämda området. Den yta som täcks utav sikten utifrån sökarens nuvarande position kommer i detta examensarbete att refereras till som “ ​synhållsradie​” beskrivs nedan.

1.1.2 Synhållsradie

En person som söker efter ett objekt, kan genom synen uppskatta om objektet finns eller inte, över en yta som är större än den koordinat som personen befinner sig på. Denna yta kommer i detta examensarbete benämnas som

​synhållsradien​”. Synhållsradien kommer alltså att syfta till sträckan som den

sökande personen har möjlighet att se objektet från. Vad en människa ser från

dennes nuvarande position beror på många faktorer. Längden på människan,

stenar eller träd i omgivningen. Buskage eller gräs kan skymma ett objekt

beroende på längden och bredden av objektet. Hur detta examensarbete tar

hänsyn till terräng går att läsa om i avgränsningar ( ​Avsnitt 1.6​). Huvudsyftet

(10)

med detta examensarbete kommer att vara att se om visualiseringen av ett område är möjlig och kommer därför att lägga huvudsaklig fokus på visualiseringen.

Det finns lösningar idag som hjälper användare att visualisera platser och områden, vilket presenteras i kommande stycken. Lösningarna som presenteras i kommande stycken inriktas inte direkt mot att kontrollera hur väl ett område är genomsökt när en eller flera personer letar efter ett objekt eller en person, för att säkerställa att ingen plats blir obesökt.

1.1.3 Visualiseringstekniker för GPS-data

Av de tekniker som finns idag för att visualisera GPS-data, finns det några tekniker som kommer spela roll i hur detta examensarbete kommer att formas. Dessa tekniker skiljer sig på olika sätt från vad detta examensarbete söker svar på. Examensarbetet kommer likväl använda inspiration från dessa arbeten.

Vid sökning på google med sökorden “visualizing historical gps data”

kommer flera exempel och idér på hur det går att visualisera positioner på en

karta. Ett exempel är DataV-projektet som förklaras i en artikel på

hackernoon [4]. DataV är en " ​Vector Field Generation Algoritm​" som

simulerar blixt där ljusstyrkan är beroende av mängden objekt och tid från

och med nu. Ett annat exempel använder färger för att berätta hastigheten för

varje objekt. Exemplet där färger används för att beskriva hastigheten går att

se i Figur 1.1.

(11)

Figur 1.1: ​Visualisering av DataV-projektet [4], där en karta över ett område har färgade borstliknande linjer på sig. Dessa linjer visar hur enheter rör sig. Röd färg betyder låg hastighet. Blå betyder hög hastighet.

Att låta data försvinna långsamt från kartan genom att dämpa ljusstyrkan

kommer inte att användas i examensarbetet. Detta examensarbete kommer att

fokusera på att visa data och inte vad som händer när det försvinner. I

DataV-projektet håller inte punkterna som visar koordinater på kartan en

specifik storlek. Artikeln nämner inte skalning eller storlek. Detta arbete

kommer att behöva tänka på att markeringen för det genomsökta området ska

hålla en fast skala inte låta kanter förstoras eller förändras beroende på skalan

på kartan. Detta examensarbete ska inte bara visa den exakta placeringen av

koordinaten, utan också en ​synhållsradie runt koordinaten. Sättet att använda

färger för att simulera numeriska värden kan vara av intresse för detta

examensarbete. Detta examensarbete kan ta användning av att presentera

koordinater i färger, där färgen varierar beroende på tid från nutid. Om

objektet som en användare eller en användargrupp letar efter rör sig, finns det

intresse för att veta hur länge sedan platsen besöktes.

(12)

1.1.4 Platsinformation & Värmekartor (Heatmaps)

En annan intressant artikel som finns med sökorden "visualizing historical gps data" förklaras hur en användare kan ladda ner all platsinformation som Google har lagrat, från den inloggade användaren och ladda upp det till ett projekt som renderar datan som en värmekarta (Heatmap) över den vanliga kartan [5]. Projektet heter “ ​Location History Visualizer​” [6]. När en följer guiden [5] och laddar ner all historisk platsdata för en användare och laddar

3

upp den till ​Location History Visualizers webbsida visualiseras platshistoriken [6], en kan också navigera genom kartan och se visualiseringen av platsdatan. Värmekartan använder färger för att visa hur frekvent objekt från den nedladdade platsdatan förekommer för ett område.

Ju fler objekt i ett område, desto varmare (rödfärgad) är färgen. Få besök

betyder kall (blå färg). Om inga objekt från personens nedladdade platsdata

finns, visas kartan i sin vanliga färg. Att färglägga kartan endast vid besökta

platser och lämna kartan helt orörd vid obesökta platser, skulle kunna

användas i examensarbetet. I sådana fall bör det undersökas hur ett område

räknas och färgas, hur den här typen av algoritmer ser ut. Detta

examensarbete kan använda färgläggningen och färga baserat på hur lång tid

det var platsen besöktes. ​Location History Visualizer visar inte varje besök på

kartan. Istället beräknar det ett område och visar det området som en färgad

plats. Detta är en typ av visualisering som kan vara av intresse i detta

examensarbete, men istället för att räkna frekvenser i områden, räkna senaste

tidsstämpel.

(13)

1.1.5 Polygoner i Google Maps API

Google maps är en karttjänst som under skrivande stund påstås vara den mest använda karttjänsten [12]. Google maps har funnits sedan 2005 och har i nuläget en miljard användare varje månad [12].

Vid sökning på sökmotorn Google efter nyckelorden "map polygons", finns en intressant, icke vetenskaplig, icke referentgranskad artikel som visar en förklaring av hur Google maps fungerar med deras API (Application Programming Interface) för att skapa fyllda polygoner [7]. Polygonerna som Google kan återge på sina kartor kan ha olika färger och former för varje polygon, men inte olika färger i en polygon, det betyder att det kommer att vara svårt att skilja gamla besök från nya besök. Det är möjligt att skapa en ny polygon för en viss tidsperiod. Polygonerna skapas genom att skicka varje yttre koordinat i området till Google maps API.

Att polygoner endast använder sig av de yttersta koordinaterna innebär att en del av arbetet blir att söka och skapa algoritmen som hittar konturen för det sökta området för att skapa polygoner.

Implementationen i detta examensarbete kommer behöva ta hänsyn till den "synhållsradie" som berättar hur långt ifrån varandra kan två koordinater räknas som ett objekt utan att skapa en kant mellan.

Vid de tidigare nämnda sökningarna går det att finna flera tekniker för att

visualisera platsdata på en karta. Två frekvent förekommande tekniker är

Polygons [1.1.6] och ​Heatmaps ​[1.1.7]. En mindre frekvent förekommande

teknik i sökningar för att bygga bakgrunden i detta examensarbete är ​circles

[1.1.8], som kommer att spela en stor roll till slutsatsen i detta

examensarbete.

(14)

1.1.6 Polygons

Polygons är en 2 dimensionell form med tre eller fler sidor [8]. En polygon kan användas för att placeras ovanpå en digital karta. Figur 1.2 visar flera polygon på en karta.

Figur 1.2: ​Figuren visar en karta där ett område är markerat i en mångsidig

figur, en så kallad polygon. Bilden är tagen från den utvecklade miljön.

(15)

1.1.7 Heatmaps

Heatmaps även kallat värmekarta är en grafisk representation av data där de enskilda värdena i matrisen är representerade med färger. En heatmap på en karta kan se ut likt figur 1.3.

Figur 1.3: ​Figuren visar en så kallad heatmap. En karta där det finns

färgade markeringar. Färgerna på markeringarna varierar och simulerar ett

underliggande värde. Bilden är tagen från den utvecklade miljön.

(16)

1.1.8 Circles

Circles är en teknik som går att lägga som lager på Google Maps [24]. Circles lägger cirklar över koordinater, vilket visas i figur 1.4. Cirklarnas storlek går att styra i meter mot jordens yta, vilket gör det enkelt att styra storleken på den visualiserade ytan efter den faktiska ytan på jorden som den digitala kartan visualiserar.

Figur 1.4: ​Figuren visar en karta som är framtagen med Google Maps API.

Kartan har ett Circles-lager. Cirklarna varierar i färg mellan blått och rött.

Bilden är tagen från den utvecklade miljön.

(17)

1.2 Relaterade arbeten

I detta avsnitt presenteras de arbeten som kommer att spela roll i hur arbetet i detta examensarbete kommer att gå till väga. Varje arbete kommer på något vis guida detta examensarbetets utförande.

1.2.1 Utveckling av Location-Based Services för webbläsare

En studie om platsbaserade tjänster i kombination med Google maps har gjorts av fyra studenter för att visa hur LBS-tekniken går att utveckla med HTML5. Studien fokuserar främst på det tekniska perspektivet för hur man implementerar en platsbaserad tjänst med HTML5 och Google Maps. Syftet är att spåra ett objekt som ständigt rör sig. Detta examensarbete kan ta nytta av tekniska metoder från studien, som hur webbintegration med Google Maps implementeras samt hur strukturen för en LBS-tjänst för webbläsaren kan utvecklas [2].

I arbetet “ ​Web-Based Location Sharing Service for a Group of People to Get Together ​” försöker författarna Ogawa Shuji, Niibori Michitoshi &

Kamada Masaru utveckla en webbaserad applikation som ska förenkla för personer att kunna hitta varandra när de ska träffas. Arbetet fokuserar på platsdelning mellan mobila enheter. Här testas möjligheterna att skapa en webbläsarbaserad webbapplikation som kan dela flera platser på en karta via URL-länkar [1]. Arbetet undersöker inte platshistorik och fokuserar strikt på den aktuella/senaste geografiska platsen. Systemet som forskargruppen bygger under studien är helt inriktad mot webbläsare.

1.2.2 Analys av rörelsemönster för försvunna personer

Vid sökning på Google Scholar med sökorden “ ​missing people search

techniques ​” hittas ett arbete där fyra personer undersöker hur det på ett säkert

(18)

vis går att söka efter försvunna personer i Yosemite National Park i USA [9].

I arbetet försöker forskarna ta reda vilka områden personer är mest benägna att befinna sig i, och också hur långt personen kan ha rört sig baserat på hastighet och vart personen senast bekräftades vara. Hastigheten detta arbete använder som en genomsnittlig gånghastighet är 5,1 km/h. Detta är en hastighet som kan komma till användning, när koordinater behöver genereras under detta examensarbete. Arbetet skiljer sig i övrigt, mycket från detta examensarbete då arbetet riktar sig direkt mot en specifik park och uppgiften är att optimera sökandet i den parken medan vi testar möjligheten att ta fram en teknik för att visualisera ett ospecificerat områdes sökstatistik. Dock skulle en sökoperation i Yosemite National Park kunna ta användning av tekniker som detta examensarbete ämnar att testa. Forskarna tar reda på zoner där personer med störst sannolikhet är inom en viss tid efter sökandet, vilket kan kompletteras med en digital lösning som visar sökmönster inom ett område med tidsstämplar.

1.2.3 Färgläggning av besökta platser

Vid sökning på Google Scholar med sökorden “ ​heatmaps google maps​”

hittas studien ​Effects of Color and Threshold on User Perception of Heat Maps ​där heatmaps färger och storlek på färgat område undersöks [11].

Studien undersöker hur personer upplever heatmaps i ett scenario där färgläggningen ska visualisera mängden besökare på restauranger i en stad.

Studien kommer fram till att majoriteten av svarande uppskattar heatmaps med mer än en färg. 74,4 % utav de 43 som ingick i undersökningen tyckte dessutom att flerfärgade heatmaps visar mer information än enfärgade.

Exempel på en flerfärgad heatmap finns i figur 1.3.

(19)

I studien undersöks också hur storleken på det färgade området på kartan upplevs. Resultatet visar att det spelar roll hur stort område som färgas på en karta. Av de storlekar som de testar, visas det att om heatmapen har för litet färglagt område, upplevs det som att kartan innehåller mindre information [11]. Den information som visas i undersökningen kan bli användbar i val av teknik då det visar att flera färger har ett positivt resultat. Detta argumenterar för att använda flerfärgade heatmaps istället för exempelvis polygoner, som är enfärgade.

1.3 Problemställning

Denna studie ämnar att besvara följande två problemställningar.

Hur kan historisk positionsdata bli visualiserad för att skapa en tydlig översikt över ett genomsökt område?

Går det att via Google Maps API visualisera vilka platser som är genomsökta och i vilken ordning?

1.4 Motivation

Detta examensarbete ämnas att vara till nytta för att driva tekniska lösningar framåt i sökoperationer. Problemet detta examensarbete lyfter, kommer att kunna vara av intresse för användare och organisationer som har nytta av att sammanställa besökta koordinater för att försäkra om att ett område är genomsökt. En organisation som kan ha nytta av tekniken är Missing People.

Missing People är en organisation som arbetar volontärt med bland annat polisen för att hitta försvunna personer. De använder sig av tekniker som skallgångskedjor, sökning med hund och sökning med terrängfordon [3].

En tänkbar användare av tekniken som utvecklas i detta examensarbete är

svamp- och bärplockare. De kan finna användning i tekniken för att se deras

(20)

sökmönster när de letar efter matnyttigheter i naturen. De kan via tekniken se var de har varit och på så vis förenkla avgörandet i vart de ska gå.

Tekniken kan också vara av intresse för den person som tappat bort sina nycklar i exempelvis en park och behöver veta att de har kammat av hela parkens yta för att hitta nycklarna. Personen kan se rörelsemönstret och få vetskap om vilka positioner denne har kvar att besöka för att skapa försäkran om att parken är genomsökt.

1.5 Mål

Tabell 1.1 visar de mål som steg för steg ska försöka uppnås för att komma till en slutsats för detta examensarbete.

M1 Undersök visualiseringstekniker

M2 Bestäm hur koordinatdata ska samlas in M3 Samla in koordinatdata

M4 Implementera visualiseringsmiljö

M5 Implementera den valda visualiseringstekniken M6 Testa den valda tekniken i visualiseringsmiljön M7 Testa tekniken mot kraven

M8 Analysera resultatet. Om det behövs, ta fram en ny visualiseringsteknik och iterera tillbaka till mål M5.

Tabell 1.1: ​ ​Tabellen visar målen för detta examensarbete.

Det förväntade resultatet är att skapa en geografisk datavisualisering baserad på koordinater. Visualiseringen syftar till att kartlägga tidigare besökta positioner och få en tydlig bild av vilken del av området som sökts.

Heatmaps är en stark kandidat för att kunna visualisera både vilka platser

som är besökta och i vilken ordning platserna har besökts tack vare

(21)

möjligheten att ha flera färger i samma Heatmap.

Att använda polygons för att visualisera besökta platser med olika färger beroende på kronologisk kommer behöva en annan typ av implementation, i jämförelse med heatmaps. Besökta platser kommer att behöva grupperas ihop efter tid och avstånd för att sedan delas upp i olika koordinater. Det finns risker att det kan komma komplikationer under grupperingarna av koordinater, som gör resultatet mindre tillförlitligt.

Verktyget Circles i Google Maps API [18] förväntas kräva mindre för att skapa ett resultat av värde. Eftersom varje koordinat kommer att renderas separat kommer inga grupperingar behöva göras. Det finns risker att många cirklar nära varandra kan skapa otydlighet om många linjer och färger korsar varandra. Det skulle kunna skapa svårigheter att se tydligt hur väl och när ett område genomsöktes.

1.6 Avgränsningar

Arbetet kommer att använda sig utav Google maps API [18]. Google Maps API [10] har välformulerad dokumentation och är väl utbrett och använt med en miljard användare per månad [12]. Google Maps API tillhandahåller flera verktyg som är av intresse att undersöka i detta examensarbete.

Vad en person kan se från en plats beror på många faktorer, bland annat

personens längd, områdets terräng och objektets synlighet och storlek. Detta

examensarbete kommer låta synhållsradien vara en ställbar area som går runt

en koordinat med likvärdig radie i alla riktningar. Koordinaten kommer alltså

att vara precis i mitten av en cirkel. Google maps API [10] deklarerar inte i

dokumentationen att det finns möjlighet att specificera terräng eller underlag

vid en specifik plats. Att ändra synhållsradie går därför inte att göra med

hjälp av Google Maps eftersom det krävs en väldig exakthet på vart varje

(22)

träd, sten är och hur högt gräset är jämfört med storleken på objektet. Även ljusstyrka från artificiell belysning eller från ljuskällor som stjärnor, solen och vår måne spelar roll i hur långt synen kan avgöra om objektets existens.

Sökarens subjektiva säkerhet på vad denne har sett och med vilken säkerhet denne såg rätt, spelar också en roll i hur väl området är avsökt. På grund av storleken av vad synhållsradien kan innehålla, kommer därför synhållsradien i detta examensarbete att vara modifierbar och ställbar för den som ser över kartan i testmiljön. Att låta synhållsradien vara ställbar av sökledare eller testledare innebär att synhållsradien kommer att uppskattas av människans subjektiva bedömning av området och dennes egen säkerhet i sig själv. Målet med detta examensarbete är att ta reda på om det går att visualisera historisk positionsdata, därför kommer arbetet kunna genomföras med en konstruerad synhållsradie.

1.7 Målgrupp

Detta examensarbete riktas till studerande och arbetande inom

datavetenskapliga institutioner i Sverige. Frågeställningen kan användas

inom forskning i geografi och datavetenskap. Arbetet ämnar att komma till

användning för att utveckla applikationer eller system med avsikt att markera

ut genomsökta områden på en karta med hjälp av data visualisering med

koordinater. Examensarbetet riktas speciellt till att användas för forskning

och utveckling för ändamål att hitta försvunna personer.

(23)

1.8 Disposition

Resterande innehåll av examensarbetet kommer att hantera Metod, Implementation, Utvärdering, Diskussion och Sammanfattning.

Metoden förklaras tillvägagångssättet. Hur utförandet av implementationen kommer att gå till. I metoden presenteras även kravlistan.

Kravlistan kommer att vara referensen till om frågeställningens utförandet räknas som godkänt eller inte. I nästa del förklaras implementationen. Där specificeras hur genomförandet samt hur applikationen har implementerats.

Utvärderingen av implementationen förklaras därefter i del fyra. Där hittas resultatet av de tester som gjort mot kravlistan, samt figurer som visar det visualiserade resultatet från miljön. Tillsammans med varje resultat för varje iteration följer en analys av de objektiva resultaten som har uppnåtts genom vårt examensarbete och subjektiva åsikter och slutsatser om resultatet presenteras. Därefter presenteras en diskussion som innefattar observationer och problem som uppkommit under examensarbetets gång.

I det avslutande avsnittet presenteras en sammanfattning av arbetet och hur resultatet är relevanta för vetenskap eller samhälle i framtiden.

Sammanfattningen presenterar också det framtida arbete som kan göras på

grund av detta examensarbete, samt alternativa sätt att göra om detta

examensarbete.

(24)

2 Metod

Målet med detta examensarbete är att ta reda på om det genom koordinater och datavisualisering går att avgöra om ett område är avsökt.

Metoden för detta examensarbete är en utforskande process som kallas Design Science (DS). Detta examensarbete kommer tolka processen ​Design Science ​och utefter det forma tillvägagångssättet för examensarbetet.

Tolkningen av ​Design Science ​sker genom att tolka arbetet “Design Science Research Methodology for Information Systems Research” [32].

Processen ​Design Science syftar till att utveckla en artefakt. Artefakten är i

detta examensarbete, den utvecklade miljön som visualiserar resultatet som

kommer att testas mot kraven (Avsnitt 2.1). Utförandet av processen sker

genom sex aktiviteter. ​Aktivitet 1 är att identifiera och motivera problemet

som examensarbetet ämnar att lösa. Detta examensarbete utför denna

aktivitet i introduktionen (Avsnitt 1). ​Aktivitet 2 innefattar att definiera en

lösning för problemet som identifierades i introduktionen. Detta

examensarbete definiera en metod att lösa problemet med i avsnitt 2. I

aktivitet 3 ska utveckling av artefakten ske. Utvecklingen av artefakten

beskrivs i implementationen (Avsnitt 3) i detta examensarbete. Där visas och

förklaras metoder och andra delar som är del av den implementerade

lösningen. ​Aktivitet 4 innefattar en demonstration av den implementerade

artefakten. I detta examensarbete sker demonstrationen genom avsnitt 4,

Utvärdering. Utvärderingen visar figurer från den implementerade artefakten,

samt resultat för tester som visar huruvida artefakten uppfyller kraven

(avsnitt 2.1). Utvärderingen innehåller också ​Aktivitet 5 som utvärderar

huruvida artefakten löser kraven som är skapade mot frågeställningen, och

om vidare arbete krävs. I utvärderingen avgörs huruvida vidare utveckling av

artefakten behöver ske. Om vidare utveckling behöver ske tas den vunna

(25)

implementationen. Därifrån fortsätter arbetet och nya resultat och analyser presenteras. När ​aktivitet 3, 4, 5 har genomgått det antal iterationer som krävs för att skapa en slutsats om huruvida det går att uppfylla kraven eller inte, går arbetet vidare till diskussionen. Diskussionen visar observationer och problem som uppkommit under examensarbetets gång och synen på resultatets utkomst. Därefter avslutas arbetet med design science sjätte och sista aktivitet. Aktivitet 6 innefattar att kommunicera ut till läsare, hur artefakten kan användas. ​Aktivitet 6 beskrivs i diskussionen (Avsnitt 5) och i sammanfattningen (Avsnitt 6) av detta examensarbete. Där presenteras en sammanfattning av arbetet och hur resultatet kan vara relevant för forskning eller samhället.

2.1 Krav

Kraven är framtagna av oss och är skapade efter vår uppfattning av de artiklar, texter, webbplatser och andra projekt som vi läst och testat vid framtagningen av detta examensarbete.

Utefter detta tas krav fram på de kriterier som kan komma att spela roll till

användningsområdet. GPS är en vanlig teknik i dagens smarta mobiltelefoner

[ ​Kap. 1.1​] och det är av vikt att använda tekniker som finns tillgängligt i

vanliga enheter. För att kunna visualisera när platsen besöktes kommer

tidsstämplar att behövas, som stämmer överens med när koordinaten

skapades.

(26)

2.1.1 Tekniska krav

1. Artefakten ska ta koordinater med tillhörande tidsstämplar som invärde.

2. Visualiseringen av en besökt plats (koordinat) ska kunna visa en markering runt koordinaten som simulerar synhållsradien.

2.1.2 Användbarhetskrav

1. Det ska gå att se på kartan om en plats är besökt eller inte

2. Visualiseringen ska informera om kronologin för de besökta koordinaterna.

2.2 Artefakten

Utveckling samt testmiljön kommer bestå av en webbapplikation utvecklat i programspråket Javascript. Valet av att utveckla en webbapplikation är baserat på att vi i denna studie kommer att testa olika visualiseringstekniker i sig och inte utveckla en slutprodukt. Vid vidare utveckling kan också en webbapplikation utvecklas för att vara responsivt anpassad och då vara kompatibel att användas genom mobiler. Studien kommer att använda Google Maps API version 3.40 för att rendera ut koordinaterna på en karta i form av en värmekarta.

Verktygen som kommer att användas från Google Maps API kommer att implementeras enligt Google Maps utvecklardokumentation [10].

Visualiseringen av besökta platser kommer att använda två färger för att visa vilka koordinater som är besökta, samt när varje koordinat besöktes.

Tvåfärgade heatmaps har visat positiva resultat i arbetet “ ​Effects of Color and

Threshold on User Perception of Heat Maps” som nämns i introduktionen

(27)

arbetet, där röd i deras fall, visualiserar många besökare och blå visualiserar få besökare [11]. Detta examensarbete tar efter detta och visualiserar med rött för de senaste besökta platserna och blått för besökta platser med en äldre tidsstämpel.

Valet av JavaScript som programspråk samt Google Maps API är gjort utifrån tidigare erfarenheter samt att Google Maps är den mest använda karttjänsten [12], med verktyg för att själv implementera flera typer av lager som värmekartor, polygoner och cirklar.

2.3 Visuell design

Detta examensarbete kommer att kunna testa frågeställningen med en implementation av en karta som renderas genom Google Maps API. Det kommer endast behövas en visualisering av själva kartan från Google maps.

Eftersom frågeställningen ämnar att svara på huruvida det går att visualisera positionsdata för att avgöra om ett område är avsökt eller inte, kommer inga verktyg utanför kartan att implementeras. Artefakten kommer helt att bruka tekniker som tillhandahålls och visualiseras i kartan. Fokus på visualisering ligger i verktyg som heatmaps, polygons och circles.

2.4 Automatiska enhetstester

För att utföra automatiska enhetstester kommer ramverket ​Jest att användas.

Jest är ett testramverk för javascript [23], Jest är valt för att det i detta projekt ej kommer kräva några konfigureringar för att få det kompatibelt med artefakten som ska utvecklas.

2.5 Validering

Miljön som utvecklas efter kravlistan kommer att testas mot tester. Dessa

tester (Bilaga A) baseras på kraven. Varje krav har minst ett test som avgör

om kravet är uppfyllt eller inte.

(28)

2.6 Tillförlitlighet och validitet

Under arbetets gång kommer synhållsradie att estimeras. Synhållsradie kommer att utgöra ett område runt om koordinatens plats, där den människa som besökt koordinaten beräknas ha kunnat avgöra statusen för målets existens. Den så kallade synhållsradie är svår att avgöra och kan skilja beroende på oförutsägbar terräng. Även objektets storlek spelar stor roll för radien för det genomsökta området. Radien kommer inte heller ta hänsyn till användarens längd eller riktning, vilka också är avgörande faktorer i den verkligt sökta radien.

2.7 Etiska överväganden

Detta examensarbete kommer inte att visa användardata för de koordinater

som används under arbetets gång. Detta examensarbete kommer inte heller

att visa kartexempel på områden som kan upplevas stötande för läsare.

(29)

3 Implementation

Nedan följer design och implementationen av artefakten som ämnar att uppfylla frågeställningen i detta examensarbete. Implementationen visar vilka verktyg och moduler som behövs samt metoder som är av stor vikt och påverkar resultatets artefakten. Artefakten är en Javascript-klient som kommunicerar med Google Maps API för att skapa visualiseringar med hjälp av koordinater. Anropen till Google Maps varierar beroende på vilken visualisering som ämnas att visas.

3.1 Samla koordinater

Koordinater är tänkta att användas som underlag för rendering av data, dessa kommer via artefakten göra det möjligt att välja en plats på en karta och därefter trycka eller dra muspekaren över kartan för att samla in koordinaterna där muspekarens position är på kartan. Resultatet blir en bank av koordinaterna. Detta bidrar till att det enkelt går att simulera ett gångmönster utan att behöva röra sig på den faktiska platsen.

För att skapa nya koordinater till systemets dataset används musklick på artefaktens renderade karta. Koordinaten skapas efter muspekarens placering på artefakten karta och får den verkliga position som den markerade platsen på artefakten karta visar. Koordinaten kommer att sparas tillsammans med en tidsstämpel av typen “ ​Unix Epoch Timestamp” . Koordinaten och

4

tidsstämpeln sparas i ett objekt som ser ut likt Kod 3.1. Att klicka fram koordinater med musen på artefaktens karta gör det enkelt att välja och testa vägar som visar sökmönster efter det precisa mönster som önskas. Det går enkelt att simulera ett gångmönster utan att behöva röra sig på den faktiska platsen.

4​Unix Epoch Timestamp​ är en tideräkning som räknar antalet sekunder sedan 1 Januari 1970 [14].

(30)

{

"location": {

"lat": 56.65731472997458,

"lng": 16.321155688268764 },

"weight": 1,

"timestamp": 1586506818628 }

Kod 3.1: ​Koden visar ett koordinat-objekt i JSON-format. Objektet location, som i sin tur innehåller de numeriska värdena för latitud(lat) och longitud(lng). Weight värdet visar tyngden av färgernas värde. Timestamp är tidpunkt enligt “UNIX Epoch Timestamp”.

3.2 Datalagring

Lagringen av serier med koordinater och tillhörande tidsstämplar sparas som objekt i en array. Arrayen med objekt skrivs om till JSON-format, vilket är ett språkoberoende textformat, som kan användas för att lagra objekten som text och sedan ladda tillbaka dem till JavaScripts typ av array och objekt [16].

Känslig data som inte ska hamna på publika platser sparas som

miljövariabler. Miljövariabler är data som är unika för enheten som koden

körs på, eller variabler som inte ska följa med om koden kopieras. I detta

examensarbete är API-Nyckeln (Avsnitt 3.3) en variabel som inte ska följa

med till andra miljöer. API-nyckeln lagras därför separat som en

miljövariabel.

(31)

3.3 Åtkomst och lagring av API-nyckel

För att kunna använda Google Maps API krävs en unik API-nyckel vars syfte är att identifiera varje förfrågning till Googles Maps API från det projekt som utvecklas. För att kunna skapa eller tillgå en API-nyckel krävs det ett registrerat Google-konto samt att det registrerade kontot har en faktureringsmetod [21].

Enligt anvisningarna från dokumentationen av Google Maps API sker all javascript i HTML-filen inom “script-taggar” . Studiens implementation

5

ämnar att undvika att kombinera HTML och javascript-kod för att enklare skriva javascript-tester samt att spara API-nyckeln separat från koden i en env-fil . För göra detta möjligt används

6

​load-google-maps-api ​[20] som är ett npm-paket som gör det möjligt att skriva javascript-kod i en separat

7

javascript-fil.

3.4 Kartfunktionalitet

load-google-maps-api returnerar ett google.maps-objekt som kan användas för att nå all funktionalitet som Google Maps API tillhandahåller [19].

load-google-maps-api kräver en parameter ​key ​där en API-nyckel från Google förväntas. För att få tillgång till heatmaps krävs också en parameter libraries ​som inkluderar en array med strängen “visualization”. Kod 3.2 visar hur ​load-google-maps-api ​används.

loadGoogleMapsApi({

5 HTML-elementet ​script​ används för att bädda in eller hänvisa körbar kod [18].

6 En env-fil är ett sätt att lagra konfiguration i miljön separat från koden [19].

7 NPM är en pakethanterare för publicering av Node.js-projekt med öppen källkod[22]

(32)

key: process.env.GOOGLE_MAPS_API_KEY, libraries: ['visualization'],

}).then((google) => { google})

Kod 3.2: ​Koden visar hur load-google-maps-api [20] returnerar en variabel som sedan används för att referera till Google Maps API.

För att skapa en karta tillämpas ​google.maps-objektets klass ​Map vars konstruktor kräver ett utvalt HTML-element samt en parameter ​zoom​. ​Zoom anger utgångsvärdet för inzoomning vid rendering av kartan. Konstruktorn tar också emot flera parametrar som är valfria [17]. Vår konstruktor inkluderar utöver de nödvändig parametrarna också ​center ​och ​mapTypId​.

Center används för fastställa mittpunkten av kartan med hjälp av en given koordinat bestående av en latitud och longitud. ​MapTypeId ​är vilken typ av karta som ska skapas [17]. Kod 3.3 visar hur man initierar en ny Google Maps karta ​.

new googleMaps.Map(mapElement, {

center: { lat: 56.657081713112085, lng: 16.321899075213206 }, zoom: 19,

mapTypeId: 'satellite', })

Kod 3.3: ​Koden visar tillvägagångssättet för att skapa en ny Google maps karta med tillhörande parametrar.

3.5 Färgläggning

Google Maps lager färgsätts med RGBA-skala där R är röd, G är grön, B är

blå och A är synlighet (0 = helt transparent, 1 = helt synlig). Eftersom röd

och blå finns med i skalan och inte behöver på något vis blandas, är det lätt

att ställa färgerna till de som ska användas. RGB har skalan 0-255. 0=ingen

(33)

del, 255=max färg. Färgerna kan skickas in med objektet i ett lager för att sätta den önskade färgen. Heatmaps skiljer sig i hur färgläggningen hanteras.

För att färglägga heatmaps skickas flera färger in samtidig och sedan används vikter ​ för att styra vilken av dessa färger ett visst område får.

3.6 Iterationer

För att lyckas uppnå godkänt på alla tester (Bilaga A) som skrivits för att uppnå kraven (Avsnitt 2.1) sker arbetet i iterationer där en ny teknik testas vid varje iteration. När ett eller flera tester misslyckas, startas arbetet om.

Med resultatet från den förra iterationen som feedback, tas nya val av tekniker fram och implementeras. Iterationerna sker fram till att ett resultat kan presenteras som uppfyller kraven (Avsnitt 2.1). Under detta examensarbete krävdes tre iterationer för att uppnå ett resultat som klarade samtliga krav.

3.6.1 Iteration 1, Heatmaps

Iteration ett testar Google Maps APIs heatmaps-lager. Nedan finns information om de delar som är unika för iterationen där heatmaps implementeras.

3.6.1.1 Vikter

För att styra färgen av varje koordinat i ett heatmap lager, används vikter.

Flera färger av typen RGBA, likt kod 3.4, skickas in i heatmapen i en array.

En högre vikt kommer att resultera i att större del av koordinatens

färgmarkering har mer av de färger som är i slutet av färgskalan arrayen. Ett

lågt värde som vikt innebär att färgen visas enligt ett tidigare värde i

färgskalan i arrayen.

(34)

En utplacerad koordinat kommer att ha sin maxvikt i mitten, sedan avtar vikten gradvis i takt med avståndet från mittpunkten, därav avtar också färgen och faller stegvis mot en blåare färg för att sedan tonas ut helt, vilket resulterar i en heatmap likt heatmapen i figur 3.1.

Figur 3.1: Figuren ett heatmap-lager. Färgen på heatmapen är röd vid koordinatens mittpunkt och färgen ändras till blå när avståndet från mittpunkten ökar.

För att kunna ta hänsyn till att nya koordinater ska ha en annan färg än koordinater som har en äldre tidsstämpel används vikter. De koordinater med ny tidsstämpel har ett högre värde som vikt. För att skapa specifika vikter för varje utplacerad koordinat beräknas varje koordinat i jämförelse med de andra i en normaliseringsalgoritm, vilket ger varje koordinat ett unikt vikt-värde. I detta examensarbete skrevs en algoritm som itererar samtliga koordinater och räknar ut ett värde mellan 1 och 100. Formeln som används visas i figur 3.2.

(tidsstämpel - “lägsta tidsstämpel” / (“högsta tidsstämpel” - “lägsta tidsstämpel”) * 100)

Figur 3.2: Figuren visar den matematiska formel som räknar ut viktvärdet

för en koordinat i pseudokod.

(35)

Eftersom vikten avtar gradvis ju längre ifrån en centerpunkt man kommer, betyder det att heatmapens färglagda område alltid kommer att ha en blå yttre kant innan den helt försvinner. Även om det är den senaste besökta platsen, kommer denna endast att ha en röd kärna, men fortfarande en blå kant.

3.6.1.2 Skapa Heatmap-lager

För att visualisera en heatmap instansieras ett nytt heatmap-lager som sedan appliceras på en redan befintlig Google maps karta. Kartans ursprungliga vy visas i figur 3.3. För att skapa ett heatmap-lager används google.maps-objektet ​(Avsnitt 3.3) för att tillgå biblioteket ​visualization ​där klassen ​HeatmapLayer förekommer. HeatmapLayer kräver en parameter ​data som ska innehålla en Array med ​LatLng-objekt som beskrivs mer i ​3.6.1.3​.

För att applicera detta heatmap-lager tillämpas funktionen ​setMap ​som kräver en redan befintlig Google maps karta som parameter. Figur 3.4 visar kartans vy efter heatmaps-lagret instansierats.

Figur 3.3: ​Figuren visar visualiseringen från Google Maps API innan

instansiering av lager med heatmaps eller andra tekniker.

(36)

Figur 3.3: ​Figuren visar visualiseringen från Google Maps API när ett heatmaps-lager har instansierats

3.6.1.3 Konvertera koordinater

Heatmap-lagret kräver en array med en eller flera ​Latlng-objekt​. Ett Latlng-objekt är ett objekt som representerar en geografisk punkt innehållande Latitud & Longitud [15]. För att kartan i den implementerade miljön ska kunna rendera heatmap-lagret behöver varje koordinat i det insamlade datasetet konverteras till Latlng-objekt för att göra datasetet kompatibelt med heatmaps-lagret. Kod 3.5 visar hur implementationen sker för att skapa ett ​Latlng-objekt​.

{

location: new window.google.maps.LatLng({

lat: cord.location.lat, lng: cord.location.lng, }),

weight: cord.weight, }

Kod 3.5: ​Koden visar strukturen för hur ett LatLng-objekt ser ut.

(37)

3.6.2 Iteration 2, Polygons

I iteration två utforskas och testas verktyget ​Polygons ​som finns tillhandahållet i Google Maps API.

Polygonerna kommer att använda sig utav samma färgval (Avsnitt 2.2) som heatmap-lagret, vilket är blått för polygoner med koordinater som besöktes för länge sedan och rött för polygoner med nyligen besökta koordinater. Eftersom polygoner innehåller flera koordinater i en grupp, till skillnad från heatmaps, där varje koordinat renderas för sig, kommer koordinaterna behöva delas upp och grupperas och efter tid. Därefter behöver de tidsindelade grupperna, grupperas i efter avstånd och närliggande koordinater behöver sammanfogas och skapar en geometrisk form.

3.6.2.1 Gruppera koordinater 3.6.2.1.1 Tid

För att uppnå kraven (Avsnitt 2.1) i detta examensarbete ska visualiseringen klargöra den kronologiska ordningen platser är besökta i. Koordinaterna behöver först grupperas efter tid för att kunna skapa polygoner som presenterar en tidpunkt.

För att dela upp koordinaterna efter tid itereras alla koordinater i datasetet och delas upp efter den timme som medföljande tidsstämpel visar och sparas som en nyckel i ett objekt. Objektsnyckelns namn stämmer överens med timmen som tidsstämpeln visar.

3.6.2.1.2 Avstånd

För att kunna se vilka platser som är genomsökta och inte, med hänsyn till

synhållsradien behöver avståndet mellan koordinater mätas. Från två

(38)

koordinaternas longitud och latitud, räknas avståndet ut i meter, med hjälp av en algoritm från forumet Stack Overflow [26]. De koordinater som har ett avstånd som är mindre eller lika med synhållsradien grupperas till varandra och skapar en polygon. Om det finns större avstånd emellan koordinater än synhållsradien, skapas en ny polygon där nya koordinaters grannar letas upp och samlas ihop. Vilka steg som tas förklaras i figur 3.2.

Figur 3.2: ​Figuren visar ett flödesdiagram som förklarar hur grupperingar

(39)

av en lista med koordinater grupperas efter avståndet till andra koordinater.

Hur koden är implementerad för att lösa grupperingar av koordinater visas i Bilaga C.

3.6.2.2 Form

För att kunna skapa polygoner av stora dataset krävs att de yttre koordinaterna hittas. Eftersom polygonerna ska visa området där koordinater är besökta, behöver kurvor i polygonerna kunna anta konkava former.

8

Exempel på en konkav polygon visas i figur 3.3. Paketet ​concaveman ​[25]

hjälper till att identifiera koordinaterna som är ytterst i datasetet.

Figur 3.3: ​Figuren visar en polygon som har konkava kurvor. Eftersom

8 En konkav kurva sträcker sig inåt medan konvex är en kurva sträcker sig utåt[27]

(40)

polygonen har kurvor som går inåt är det en konkav polygon.

3.6.2.3 Färgläggning

Till skillnad från heatmaps-larget, där vikter ( ​3.6.1.1​) används för att förändra färgen för ett område, färgläggs polygons genom att skicka in en färg i RGBA skala (3.4 Färgläggning). För att färglägga polygoner beroende av tid, i en skala som går från blått på de koordinater med äldst tidsstämpel till rött på de med den senaste tidsstämpeln, används en enkel algoritm.

Exempel på färgläggningar för polygonerna, baserat på tid, visas i figur 3.4.

Figur 3.4: Figuren visar polygoner med olika färger som skiftar mellan rött och blått. Ju mer röd färg polygonen har, desto senare tidsstämpel har den.

Ju mer blå färg i polygonen, desto äldre tidsstämplar i koordinaterna i

polygonen.

(41)

3.6.3 Iteration 3, Circles

I iteration tre utforskas och testas verktyget Circles som finns tillhandahållet i Google Maps API. Circles gör det möjligt att för varje koordinat skapa och applicera geometriska cirklar på Google Maps kartan. I denna iteration kommer det testas om det med hjälp av cirklar går att möta kraven i (Avsnitt 2.1). Nedan finns information om de delar som är unika för iterationen där Circles implementeras.

3.6.3.1 Gruppera koordinater

För att uppnå kraven (Avsnitt 2.1) i detta examensarbete ska visualiseringen klargöra den kronologiska ordningen platser är besökta i. Denna iteration kommer att bemöta detta krav genom att färglägga respektive cirklar med olika färger beroende på tid och därmed utifrån färgerna på cirklarna kunna klargöra den kronologiska ordningen plaster är besökta. För att färglägga cirklarna med olika färger behöver koordinaterna att grupperas efter tid. För att dela upp koordinaterna efter tid itereras alla koordinater i datasetet efter timestamp ​som är en av koordinatens attribut. När datasetet är sorterat i kronologisk ordning efter tiden kommer sedan datasetet bli uppdelat i valfritt nummer av delar. Varje del kommer sedan färgläggas med en färg. Kod 3.6 visar implementationen av uträkningen för att dela upp koordinater i flera delar.

// array is the dataset that will be split into part.

// parts is how many parts the array will be divided into.

let result = [];

for (let i = parts; i > 0; i--) {

result.push(array.splice(0, Math.ceil(array.length / i)));

}

(42)

return result;

Kod 3.6: ​ Koden visar algoritmen för att dela upp koordinaterna i flera delar.

3.6.3.2 Färgläggning

Cirklarna kommer att använda sig utav samma val av färger (Avsnitt 2.2) som vid färgläggning (3.5 Färgläggning) av polygoner, där en färg i RGBA skala anges för varje instansierad cirkel. Uträkningen för att tilldela respektive cirkel en färg är densamma som i föregående iteration där polygonerna tilldelas färger men här tilldelas färger beroende på antal delar datasetet med koordinater är uppdelade i. Detta förklaras mer i ​3.5.3.1 Gruppera koordinater. Det förväntade resultatet är att cirklar med tillhörande koordinater vars tidsstämpel som nyligen är besökta kommer bli röda och koordinater vars tidsstämpel är äldre blir blå. Figur 3.5 visar exempel på cirklar med olika färger för olika tidsstämplar.

Figur 3.5: Figuren visar cirklar med olika färger som skiftar mellan rött och blått. Ju mer röd färg cirkeln har, desto nyare tidsstämpel har koordinaten.

Mer blå färg betyder att tidsstämpeln för koordinaten är äldre.

3.6.3.3 Skapa cirklar

Metoden ​createCircles instansierar cirklar för varje koordinat i datasetet.

(43)

Cirklarna appliceras sedan på en redan befintlig Google Maps karta. De tre parametrarna som är betydelsefulla i instansieringen av nya cirklar är fillColor ​, ​center och ​radius​. ​fillColor kommer bestämma vilken färg cirkeln kommer fyllas med, detta baseras på tiden en koordinat har besökts, detta beskrivs mer i ​3.6.2.3 Färgläggning​. ​Center ​är cirkelns mittpunkt ​och utgår från koordinatens longitud och ​latitud​. Radius ​anger cirkelns radie i meter och är i detta examensarbete avgörande för att implementera ​synhållsradien som beskrivs mer i introduktionen, 1.6.1. Kod 3.7 visar implementationen för att skapa en ny cirkel.

new window.google.maps.Circle({

strokeColor: '#FF0000', strokeOpacity: 0.2, strokeWeight: 2,

fillColor: coordinates[coord].color, fillOpacity: 0.35,

map: map,

center: coordinates[coord].location, radius: searchRadius

});

Kod 3.7: ​ Koden visar tillvägagångssättet för att skapa en ny cirkel.

(44)

4 Utvärdering

I detta avsnitt visas resultatet av arbetet och utvärderingar av iterationerna presenteras. Bilder och tester demonstrerar resultatet av varje iteration.

De visualiseringar som har implementerats är Heatmaps, Polygons och Circles. Genom dessa visualiseringar ämnas att fastställa om ett område är avsökt. För att validera respektive visualisering gentemot kraven i metoden 2.1 är ​Enhetstester samt ​Manuella tester ​utförda. Testerna är tillgängliga i bilaga A och utförande av tester är tillgängliga i bilaga B.

Nedan följer resultat från de tester som utförts för att testa respektive visualisering. Sammanställning av alla körda manuella tester visas i tabell 4.5.

4.1 Enhetstester

Följande resultat är från enhetstester som har exekveras på ett dataset som har samlats in med artefakten. Testerna ämnar att validera om ett dataset innehåller de attribut som krävs för att artefakten ska fungera. Resultatet för enhetstesterna presenteras i tabell 4.1

Test ID

Krav Figur Namn Resultat

1.1 T1 B.4.1 Inkluderar en koordinat attributet

“longitud”

Godkänt

1.2 T1 B.4.2 Attributet “longitud” är av typen

“Number”

Godkänt

1.3 T1 B.4.3 Inkluderar en koordinat attributet Godkänt

(45)

“latitud”

1.4 T1 B.4.4 Attributet “latitud” är av typen

“Number”

Godkänt

1.5 T1 B.4.5 Inkluderar en koordinat attributet

“timestamp”

Godkänt

1.6 T1 B.4.6 Attributet “timestamp” är av typen

“Number”

Godkänt

Tabell 4.1: ​Figuren visar resultatet för utförda enhetstester som testar datasetet med koordinater som använts som data för visualisering. Samtliga tester är godkända.

Test ​ T1.1,T1.2,T1.3,T1.4,T1.5,T1.6 ​är godkända och validerar att attributen ​longitud​, ​latitud och ​timestamp är inkluderade i datasetet som kommer används. Dessa tre attribut är nödvändiga för att artefakten ska kunna rendera ut koordinater på kartan. Detta betyder också att tekniker som använder koordinatsystem kan implementera tekniken för användning.

4.2 Iteration 1, Heatmaps

Nedan följer resultat och utvärdering av implementationen av heatmaps.

Visualiseringen visas i figur 4.1. Testresultatet visas i tabell 4.2.

(46)

Figur 4.1: ​Figuren visar en karta med ett heatmap lager. Bilden är tagen från den utvecklade miljön

4.2.1 Manuella testresultat

Tabell 4.2 Visar en överblick över resultatet från testsviten i iteration 1 där heatmaps testades mot kraven i avsnitt 2.1.

Test ID

Krav Figur Namn Resultat

A1.1 A1 B.1.1 Ett obesökt område skiljer sig ifrån ett besökt

Godkänt

A2.1 A2 B.1.2 En ny koordinat visualiseras i rött

Icke Godkänd

A2.2 A2 B.1.3 En gammal koordinat visualiseras i blått

Icke

(47)

Godkänd

T2.1 T2 B.1.4 En koordinat visas med omkrets Godkänt T2.2 T2 B.1.5 Synhållsradien är konstant

Icke

Godkänd

Tabell 4.2: ​Tabellen visar en sammanställning av tester för heatmaps.

Resultatet visar två godkända och tre icke godkända punkter.

A1 Det ska gå att se på om en plats är besökt eller inte

Detta kravet testas genom Test ID ​ A1.1 ​ testar om en koordinat som används i systemet skiljer sig från Google Maps ursprungliga karta. Testet jämför samma plats och analyserar skillnaden mellan de två kartorna. Testet visar att det finns en skillnad mellan kartorna. Artefaktsmiljön har färg som omringar den markerade platsen. Detta kravet är därför uppfyllt.

A2 Visualiseringen ska informera om kronologin för de besökta koordinaterna.

Kravet ämnar att uppfylla att artefakten visualiserar en synlig skillnad mellan koordinater beroende på vilken tidpunkt koordinaten är satt. För att testa detta utfördes testerna ​ A2.1 ​ och ​ A2.2 ​ .

Testet ​ A2.1 testar om den koordinat med nyast tidsstämpel visas i rött.

Testets resultat visar att färgläggningen är röd i mitten men blir blå i den yttersta kanten. Detta är inte godkänt eftersom färgerna skiljer sig, vilket betyder att det inte går att avgöra att hela området är avsökt vid samma tidpunkt. Det ser istället ut som att den yttre kanten är besökt för länge sedan och den inre platsen är sökt nyligen.

Test A2.2 testar hur den koordinat som är äldst visas. Den koordinaten ska

(48)

visa en blå färg. Testet visar att det inte finns någon direkt synlig färg alls på den äldsta koordinaten. Det finns eventuellt en svag färg, men den är inte stark nog för att avgöra om platsen är besökt. Det kommer inte gå att säga med bara en karta att platsen är besökt för länge sedan. Testet blev därför inte godkänt.

Det kommer inte gå att avgöra alla platser som är sökta och i vilken ordning de är besökta, eftersom de gamla koordinaterna tunnas ut i färg och de nya alltid visar en ytterkant i en färg som skiljer sig från resten av markeringen.

T2 Visualiseringen av en besökt plats (koordinat) ska kunna visa en markering runt koordinaten som simulerar synhållsradien.

Två tester kördes för att testa om kravet uppfyllts.

Test ​ T2.1 testar om den utmärkta koordinaten har en omkrets runt omkring. Testet visar att det finns en omkrets runt omkring som är färgad i rött i mitten och blir blåare längre ut. Detta uppfyller testets kriterier som endast testar om omkrets finns. Det finns därför ett område som kan representera en synhållsradien.

Test ​ T2.2 testar att området som representerar synhållsradien är konstant.

Detta är av vikt eftersom synhållsradien måste hålla samma skala, relativt till skalan på kartan. Testets resultat visar att storleken på omkretsen på det färgade område inte följer skalenligt till kartan om kartan förstoras eller förminskas. Istället behåller den samma storlek skalenligt till skärmen. Vilket innebär att området relativt till kartan blir större om kartan zoomas ut. Det går därför inte att använda detta till att visa en pålitlig synhållsradien.

Det innebär att kravet inte kan räknas som uppfyllt, eftersom det inte kommer

att gå att se vart en människa har sökt av området.

(49)

4.3 Iteration 2, Polygons

Nedan följer resultat och utvärdering av implementationen av polygons. Två exempel på visualiseringar finns nedan. Figur 4.2 visar visualisering där koordinater är grupperade efter timme och med mindre än fyra meter avstånd emellan. Figur 4.3 visar polygoner som är grupperade efter timme och med mindre än 10 meter mellan varje koordinat. Testresultatet visas i tabell 4.3.

Figur 4.2: ​Figuren visar en karta med flera polygons där koordinater med

tidsstämpel från samma timme och med ett avstånd på 4 meter eller mindre

grupperas. Bilden är tagen från den utvecklade miljön.

(50)

Figur 4.3: ​Figuren visar en karta med flera polygons där koordinater med tidsstämpel från samma timme och med ett avstånd på 10 meter eller mindre grupperas. Bilden är tagen från den utvecklade miljön.

4.3.1 Manuella testresultat

Från de manuella tester som utfördes i iteration 2, där polygons testades, visas en överblick över testerna i tabell 4.3.

Test ID

Krav Figur Namn Resultat

A1.1 A1 B.2.1 Ett obesökt område skiljer sig ifrån ett besökt

Godkänt

A2.1 A2 B.2.2 En ny koordinat visualiseras i rött Godkänt

A2.2 A2 B.2.3 En gammal koordinat visualiseras i blått Godkänt

(51)

T2.1 T2 B.2.4 En koordinat visas med omkrets

Icke Godkänd

T2.2 T2 B.2.5 Synhållsradien är konstant Godkänt Tabell 4.3: ​Tabellen visar en sammanställning av tester för polygons.

Resultatet visar fyra godkända och en icke godkänd punkt.

A1 Det ska gå att se på kartan om en plats är besökt eller inte

Testet med ID ​ A1.1 stickprovskontrollerar att det finns en utmärkelse på den precisa platsen där en koordinat ska finnas. Under testet visas ett blått streck som startade vid den utsatta punkten och fortsatte vidare. Detta uppfyller kriterierna för att testet ska bli godkänt.

A2 Visualiseringen ska informera om kronologin för de besökta koordinaterna.

Krav A2 testas via två tester. Test ID ​ A3.2 testar färgen på den koordinat med äldst tidsstämpel. Test ID ​ A3.1 testar färgen på den koordinat med den nyaste tidsstämpeln.

Resultatet från Test ID ​ A2.1 visar att färgen på den koordinat med den nyaste tidsstämpeln visas i som ett litet streck i rött. Rött är färgen som testet har som förväntat resultat. Testet blir därför godkänt.

Test ID ​ A3.2 som testar om den koordinaten med den tidsstämpeln som är längst ifrån nutid i datasetet, visas i blått. Resultatet visar att den äldsta koordinaten visas i den önskade färgen blå. Testet kan därför godkännas.

T2 Visualiseringen av en besökt plats (koordinat) ska kunna visa en markering runt koordinaten som simulerar synhållsradien

Två test utförs för att testa det tekniska kravet T2. Testen ser över hur

References

Related documents

(Undantag finns dock: Tage A urell vill räkna Kinck som »nordisk novellkonsts ypperste».) För svenska läsare är Beyers monografi emellertid inte enbart

Article I: Hedge Fund Herding in the Currency Market ... Related literature and hypothesis development ... Currency and carry trade returns ... Calculating returns ... Carry

Region Jönköpings län är sedan årsskiftet 2017-2018 finskt förvaltningsområde och ser att de åtgärder som utredningen föreslår är viktiga och nödvändiga för att

Ett dilemma med verksamheten skulle kunna vara att de vill fokusera på hög musikalisk kvalité samtidigt som de menar att musik är ett medel för att nå viktiga mål så som social

Although patient participation is a common concept in health care, there is yet limited understanding of the factors that facilitate and hinder it in a healthcare context.. Aims:

Den kategoriseringsprocess som kommer till uttryck för människor med hög ålder inbegriper således ett ansvar att åldras på ”rätt” eller ”nor- malt” sätt, i handling

Nielsen och Kvales synsätt (2000, 2003) får illustrera att det finns ett hot mot skolans existensberättigande, och särskilt i förhållande till yrkes- utbildning, när olika

Eftersom FUB riktas till arbetssökande med en relativt, jämfört med andra arbetssökande, svag förankring på arbetsmarknaden skulle deltagande i insatsen