Home
- HSR - Institutional Repository
Contents
1. onCreate Bundle void openBrowser String void Activity IndoorGuide sensor Sensor Activity actualMeasuredLocation Location Places sensorManager SensorManager radarView RadarView g mapView IndoorGuideMapView S cameraView CameraView poiListView PoiListView poiOverlay PoiOverlay locationOverlay MyLocationOverlay UPDATE_INTERVAL long 2000 readOnly placeListView PlaceListView placeManager PlaceManager autosearchedPlace PlaceData onCreate Bundle void choosePlace PlaceData void deletePlace PlaceData void refresh Place Place Data void searchAndLoadCurrentPlace void onCreate Bundle void choseMapFromAvaibleMaps void startUpdateThread void getLoadedPlace PlaceData ListActivity SearchPlace searchText EditText listView ListView placeList ArrayList lt PlaceData gt new ArrayList lt P onCreate Bundle void _searching void Bild 34 Package gui activity IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 E HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 84 Eo indoorGuide4 Android 4 2 7 2 Classes and methods IndoorGuide This is the main class of the IndoorGuide4Android project It starts and handles the CameraView RadarView PoiListView and the MapView When you run the application this activity is started and leads you to all the functionality of the application Starts the MapListView activity which allows yo
2. Auf der Karte soll um den aktuellen Standort ein Genauigkeitskreis gezeigt werden wel cher sich dynamisch anpasst F r das Erfassen und Analysieren der Fingerp rints w re es hilfreich diese auf der Karte wie die POls anzuzeigen Dies sollte unbedingt standardm ssig ausgeschaltet sein Version 1 8 gt 4Android Sprint6 Sprint6 Sprint6 Sprint6 Sprint7 Sprint7 Sprint7 Sprint7 Sprint7 Sprint7 Sprint7 47 18 06 2010 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 40 41 42 43 Ah 45 Benutzeranleitung AR amp Kartenansicht mit fliessendem Ubergang POls filtern Wegdistanz berech nen POls vom Handy aus erfassen POls mit Notizen ver sehen 3 5 Sprint Backlogs Die Sprints dauern jeweils 2 Wochen Die T tigkeiten werden vor dem Sprint definiert indem Benutzeranleitung in den IndoorGuide integ rieren Beim Wechsel von AR amp Kartenansicht soll ein fliessender animierter bergang ge macht werden POls sollen nicht nur nach Places gefiltert werden sondern auch nach weiteren Attribu ten wie z B nach Building Distanz von aktuellem Standort zu einem POI anhand von echten Wegdistanzen berechnen nicht Luftlinie Um das Erfassen von POls zu vereinfachen sollen sie direkt vom Handy aus erfasst und dem Server bermittelt werden k nnen Um den Benutzern die M glichkeit zu geben Notizen Kommentare zu hinterlassen sollen diese an einen PO
3. Bild 1 Systemstruktur IndoorGuide4Android cece ce eee cece cece cece eee eeeeeeeeeeeeeeeeeeeeeeeeeseaaaaaaaaneeeeeeees 6 BI NEUS Eder 16 Bild 3 Motorola Milestone ccccccccccseeeeeceeeeeeeeeeeeeeeeeeeeeeeaeeeeeeeeeeeeeeceeeesseaeeeeeesseaeeseeesaaeeeeeeneaas 17 Bio EE all e 21 Bild 5 Wikitude World Browser 21 Bil OR MaD e re er ee 22 Bid 7 Peak AR ea 22 Bak e ele e 22 Bild 9 Lokalisierungsproblematik bei nahen POIS nenn 23 Bild Te EE Enn 25 Bild 11 Scrum Prozess Quelle WWW 2010 COM u RRE 44 Bild 12 ScrumDesk Product Backlog links Sprintplanung Mitte Sprint Backlog rechts 44 Bild 13 Arbeitesumtang EEE 57 Bild 222 e CNE n nE ADE ze E 59 BUG D5 Zep O E el 59 Bild 16 Arbeitspaket ganzes Projekt cccccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeneess 60 Ei eg EN EE TT e e ME Go IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 11 Kei HOCHSCHULE F R TECHNIK RAPPERSWIL ES E 4Android Bidag Arpa ES aK SU STIG dL ayancesessscnsncncncacaceace an anda as smeesnanioncecanatncabnentaay dy se eeandun tacecacncanncapntaana 60 Bild 19 Arbeitspaket Sprint 2 wvazesscezennaseeeceneceepeuaassiessaxecussmancencenapprosesuvavaverazeeeenpaeseeeemepereesies 61 Bild 20 Arbeitspaket Sprint I een 61 Bild 21 Arbeitspaket Sprint A R EEN 61 Bid 22 OCIS aie EEN 61 Bild 23 Arbeitspaket e nh 62 Bild 24 Arbeitspaket Sprint e d 62 Bild 25 Arbeitspaket E E 62 Bild 2
4. Performanz Verf gbarkeit Komplexit t Funktionalit t Die Unabh ngigkeit ist bei diesem Service leider nicht gegeben OSM ist ein grosses Projekt hat jedoch auch eine grosse Auslastung Der Service kann durch Wartungsarbeiten Fehler oder berlastung tempor r nicht mehr verf gbar sein Ebenfalls liegen zum Beispiel Wartungszeitfenster nicht in unse rer Hand Sehr gutes Wiki in dem das meiste be schrieben ist OSM bietet XML Auch eine grosse Anzahl vorbereiteter WebServices mit n tzlichen Funktionalit ten IG4A2 Bericht vertraulich docx Version 1 8 2 2 IndoorGuide4 Android O O 1 3 1 1 2 2 2 4 O O 1 3 1 1 2 2 2 4 18 06 2010 28 Si HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 4 2 4 OpenStreetMap in a Box Unabh ngigkeit Performanz Verf gbarkeit Komplexit t Funktionalit t Sehr grosse Unabh ngigkeit da der Server von der HSR betrieben wird Daten werden von OSM gespiegelt Lokal auf dem Server kann alles konfiguriert werden Da der Server noch nicht ausgelastet ist ist die momentane Performance hoch Dies kann sich jedoch in Zukunft ndern Sollten St rungen auftreten k nnen diese von der HSR direkt behoben werden War tungsarbeiten k nnen geplant durchge f hrt werden Klare Datenstruktur jedoch noch nicht so ausf hrlich beschrieben Durch direkte Ansprechpersonen vom OSM in a Box Projekt ist Unterst tzung vorhanden OSM in a Box
5. Sprint2 Sprint2 Sprint3 Sprint3 Sprint3 18 06 2010 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 IG4A2 Bericht vertraulich docx Radar implementieren Moduswechsel AR Kartenansicht POls in AR auflisten Auf neue IndoorWPS Version umstellen Suche nach Places mit WFS und JSON POl Informationen anzeigen Datenspeicherung Multimediadaten an zeigen Auswahl des Places implementieren Kompass darstellen Layout sauber umset zen Kartenansicht imple mentieren Position auf der Karte berechnen POls und Standort auf Karte anzeigen GPS implementieren Radar implementieren welcher die POls in der naheren Umgebung anzeigt Diese sollen an hand des Kompasses richtig ausgerichtet wer den Je nach Lage des Gerats soll eine andere An sicht eingeblendet werden waagrecht Kar te senkrecht Kamera gt AR POls in einer Liste auf dem Display anzeigen und nach Distanz sortieren Da es eine grosse Umstellung in der IndoorWPS Library gab muss diese neu inte griert werden Die aktuelle Suche nach Places auf OSM wel che ein XML liefert durch eine neue WFS Ab frage auf OSM in a Box ersetzen welche ein JSON liefern soll Die POls sollen mit Detailangaben angezeigt werden k nnen wenn sie angew hlt werden Die Daten wie Places POIs und Maps sollen in der SQLite Datenbank gespeiche
6. setLocation Location void setLocation GeoPoint void onDraw Canvas MapView void onDraw Canvas MapView void onDrawltem int void _locationT oGeoPoint Location GeoPoint onSingleTapUp MotionEvent MapView boolean getMarkerAtPoint int int MapView int a A m a an ae A Bild 37 Package gui view overlay 4 2 10 2 Classes and methods MapViewOverlay Base class representing an overlay which may be displayed on top of a MapView To add an overlay subclass this class create an instance and add it to the list obtained from getOverlays of MapView PoiOverlay This class draws all the PoiData objects onto a MapView That the PoiData objects are drawn correctly this overlay needs a floor value provided by the MapView class otherwise you would see PoiData objects from floor 1 even if you are on floor 2 Starts the PoiInformation activity which displays a clicked Poi onDrawltem int Data object Builds a hit box around the provided touchdown point and checks in getMarkerAtPoint int int the stored list of PoiData if one of the objects is contained in this hit MapVi apView box Is executed from the onSingleTapUp method IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 IndoorGuide4Android MyLocationOverlay This class draws the measured position on a MapView The position is shown by a little Android fig fa HSR HOCHSCHULE FUR TECHNIK RAPPERSWIL 92
7. Dokumentation Die Dokumentation soll klar und verst ndlich verfasst sein Sie soll alle geforderten Inhalte beinhalten und soll logisch aufgebaut sein Die Do NFo2 nr sehr hoch kumentation im Code soll auf Englisch der Rest auf Deutsch verfasst sein Alle wesentlichen und notwendigen Entscheidungen sollen in der Dokumentation vorhanden sein Testing NFo3 JUnit Tests sollen w hrend dem Entwickeln des stetig aktuell gehalten och und bei nderungen laufen gelassen werden Am Schluss soll ein Sys temtest durchgef hrt werden der die ganze Funktionalit t testet IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 E HSR HOCHSCHULE FUR TECHNIK E e RAPPERSWIL Teamgeist NFo4 Es soll darauf geachtet werden dass stets ein guter und motivierter Teamgeist vorhanden ist Die Arbeiten sollen gerecht zwischen den Teammitgliedern aufgeteilt werden Meetings Es sollen regelm ssig w chentlich Meetings abgehalten werden die NFos zur Fortschritts und Qualit tssicherung dienen sollen Erarbeitetes und Neues soll besprochen und von allen Betroffenen abgenommen wer den Code NFog Der Code sollte nicht unn tig aufgeblasen werden Es soll ein sauberer und effizienter Codierstil benutzt werden Die JavaDoc soll vollst ndig und in Englisch verfasst werden 2 3 Use Cases gt 69 4Android hoch hoch sehr hoch Bei den Use Cases gehen wir grunds tzlich davon aus dass WLAN aktiviert ist und benutzt wer den kann E
8. JSON eignet sich dabei deshalb so gut weil praktisch kein Overhead entsteht Auf diesem Ser ver werden keine Daten vom Benutzer selbst ver ndert sondern lediglich die POI Daten herun tergeladen Zudem wird auch die Suche nach einem Place dar ber abgewickelt Die Reaktions zeit ist schneller als bei OSM und der IndoorGuide hat direkt nicht noch mit einem dritten Ser ver OSM zu tun Quelle WFS http www opengeospatial org standards wfs IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 31 Kei HOCHSCHULE F R TECHNIK RAPPERSWIL ES E 4Android 5 2 Lokalisierung Die Position wird mit zwei Services bestimmt Die Auswahl wann welcher Service benutzt wird h ngt von der Verf gbarkeit der Genauigkeit und den Einstellungen ab 5 2 1 IndoorWPS Anhand dieses Services wird die Lokalisierung ber WLAN gemacht Die Genauigkeit liegt bei 4 10 Meter Dabei ist es unter anderem davon abh ngig wie viele Access Points vorhanden und wie diese verteilt sind Wo und wie viele Fingerprints erfasst wurden ist ebenfalls ausschlagge bend Die Fingerprints sollten m glichst in den Ecken von R umen gemacht werden um eine gute Mittelung zu erreichen Da beim heutigen Entwicklungsstand vom IndoorWPS noch keine brauchbare Genauigkeit sowie Informationen ber Geb ude und Stockwerk zur ckgegeben werden konnten gewisse Features noch nicht implementiert werden 5 2 2 GPS Als zweite Lokalisierungsm glichkeit wurde GPS impleme
9. RFID Scrum SD Card Sprint SOLite Story Use Case User Interface WFS XML ces 4Android 126 Der Auftraggeber eines Scrumprojekts Ist eine Anzeige auf dem Smartphone welche einem ber den Fortschritte der Applikation informiert Der OR Code quick response ist ein zweidimensionaler Code der von der japanischen Firma Denso Wave im Jahr 1994 entwi ckelt wurde Erm glicht die automatische Identifizierung und Lokalisierung von Gegenst nden und Lebewesen und erleichtert damit erheb lich die Erfassung und Speicherung von Daten Scrum ist eine agile Projektmanagement Methode Ist eine Speicherkarte eines Smartphones Ist ein Teilabschnitt eines Scrum Projektes Bei Abschluss jedes Sprints entsteht ein lauff higer Prototyp der zu entwickelnden Applikation Ist eine Programmbibliothek die ein relationales Datenbanksys tem enth lt Bezeichnet eine kleine Teilaufgabe eines Sprints bei Scrum Ist ein Anwendungsschritt der mittels der dazugeh rigen Soft ware durchf hrbar sein soll Bezeichnet den Teil einer Software die der Benutzer sieht und bedient Unter einem Web Feature Service versteht man den internetge st tzten Zugriff auf Geodaten innerhalb eines verteilten GIS Extensible Markup Language ist eine Auszeichnungssprache zur Darstellung hierarchisch strukturierter Daten in Form von Text daten IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 HSR HOCHSCHULE F R
10. gen Suche eines Places implementieren Kamera Preview in den Hintergrund der AR Ansicht legen Dies im Landscape wie auch im Portrait Modus des Handys Vorl ufig sollen alle vorhandenen Fingerprints vom Indoor WPS Community Server in die SQLite Datenbank geladen werden Sp ter sollen die Fin gerprints dann auf den ausgew hlten Place be schr nkt werden Die Datenbank wird von der IndoorWPS Library erstellt und verwaltet Den aktuellen Standort vom IndoorWPS beziehen und auf einfache Art anzeigen lassen Die Anzeige kann als Text geschehen Zudem die Genauigkeit der Koordinaten testen Die Suche nach einem bestimmten Ort Place im plementieren Das Resultat soll eine Koordinate sein Zuerst soll der Dienst evaluiert werden Die Suche soll mit Ortschaften und POls z B Hoch schule Rapperswil funktionieren Sprint 3 31 03 13 04 2010 1 sr oT Gap POls modellieren OSM in a Box Daten struktur ausarbeiten POls herunterladen POls so modellieren dass sie von OSM akzep tiert werden und den gew nschten Nutzen f r den IndoorGuide erf llen Da es momentan noch keine offiziellen Indoor Daten bei OSM gibt muss ein Modell gefunden werden das den Anspr chen f r den IndoorGuide gen gt und dennoch nicht zu proprietar ist Absprache mit OSM in a Box Team welche Daten f r den IndoorGuide relevant sind W n sche an die Datenbankstruktur anbringen Die Datenstruktur soll die neu modellierten OSM Ind
11. void savePoiList ArrayList lt PoiData gt void deleteAllPlaces void loadMapList Location ArrayList lt MapData gt loadPoiList PlaceData ArrayList lt PoiData gt deletePlace PlaceData void loadMap int MapData deleteAllPois void setSelectedPlace PlaceData void loadSelectedPlace PlaceData id int serialVersionUID long 1L readOnly name String serialVersionUID long IL readOnly id String description String audioUr URL name String lowerLeft GeoPoint buildingld String description String upperRight GeoPoint buildingName String latitude double boundBox BoundingBoxE6 description String longitude double floor int floor String rotation double id String mapBytes byte imageUrl URL website URL lastChange String wikipedia URL latitude double 1 0E9 videoUrl URL longitude double 1 0E9 name String Serializable MapData Serializable PlaceData PoiData Bild 30 Package business data 4 2 3 2 Classes and methods PlaceManager This is the manager class of the PlaceData objects The class is responsible for loading and saving the PlaceData objects to the database This class also takes care of the currently se lected PlaceData object so it will be already selected on the next startup of the Indoor Guide4Android application Methods Loads all available PlaceData objects from the database of the loadPlaceList are ap
12. IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 32 Ke HOCHSCHULE F R TECHNIK RAPPERSWIL Si E 4Android 6 Resultate und Ausblick 6 1 Schlussfolgerung In dieser Arbeit wurde ein Produkt entwickelt welches die gestellten Anforderungen erf llt jedoch noch reichlich Spielraum f r Erweiterungen zul sst F r den Anwendungsbereich im Geb ude ist diese AR Applikation mit WLAN Lokalisierung momentan noch einzigartig Die Problematik der Ungenauigkeit die bis 10 Meter sein kann und die Gegebenheit dass sich die POls in naher Distanz befinden haben spezielle Anspr che ans User Interface gestellt Es ist jedoch gelungen ein sch nes und intuitiv zu bedienendes User Interface zu gestalten welches die erw hnte Problematik vor dem Benutzer so gut wie m glich versteckt Durch das Anzeigen der POls in einer distanzsortierten Liste springen sie nicht in der AR Ansicht herum und das Bild bleibt f r den Benutzer ruhig und bersichtlich AR und Kartenansicht kombiniert mit der Lokalisierung im Geb ude stellt eine Neuheit dar und kann in vielen Anwendungsgebieten n tzlich eingesetzt werden Mehr dazu ist im Kapitel 2 Vision und Ziele im Teil zu finden Was an dieser Stelle jedoch auch erw hnt werden muss ist dass der Anbieter gewisse Vorbe reitungen treffen muss damit das System auch sinnvoll benutzt werden kann Es ist eine gut abgedeckte WLAN Infrastruktur notwendig die f r eine gute Lokalisierung ausschlaggebe
13. chlich durch die Zusammenarbeit mit externen Projekten wie IndoorWPS OpenStreetMap und OpenStreetMap in a Box verbunden IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 a HSR HOCHSCHULE FUR TECHNIK RAPPERSWIL 6 Herr Stefan Keller HSR Auftraggeber und Betreuer Herr Reto Senn bitforge AG Externer Projektberater Mitarbeiter des IFS Entwickler der Herr Michael Klenk HSR IndoorWPS Library Student Entwickler des ea Son ZU IndoorGuide4Android Student Entwickler des Vary Aula Selten IndoorGuide4Android Existierende Libraries IndoorWPS Die IndoorWPS Library wurde als externe Komponente in den IndoorGuide eingebaut Sie dient zur Bestimmung der aktuellen Position und wurde vom IFS der HSR entwickelt Ergebnisse Resultat In dieser Arbeit ist es gelungen eine Android Applikation zu erstellen welche innerhalb eines Geb udes POls anzeigen kann Die Lokalisierung wird mit IndoorWPS gemacht Dabei werden die WLAN Fingerprints und Karten vom IndoorWPS Community Server bezogen Als POI Provider wird OpenStreetMap in a Box eingesetzt Die folgende Abbil dung soll die Zusammenh nge und Systemstruktur beschreiben UMTS WLAN GPS WLAN j Internet connection localization OpenStreetMap in a Box IndoorGuide 5 show POIs ei 9 Server near by place Indoor ve POI o s IndoorWPS GU N D d i one of many Es 4 save place POls access points fingerprints amp maps to database Outd
14. docx Layout entwerfen Erste Views und Hauptmen erstellen IndoorWPS integrie ren Kamera integrieren Fingerprints laden Aktuelle Standort Koordinate anzeigen Suche eines Places implementieren POls modellieren OSM in a Box Daten struktur ausarbeiten POls herunterladen Layout aller Views Dialoge und Men s auf Papier entwerfen Das Hauptactivity und die grundlegenden Views erstellen Ebenfalls ein Hauptmen im plementieren IndoorWPS Library im IndoorGuide integrie ren Sie soll Koordinaten des aktuellen Stan dorts anhand der WLAN Fingerprints zur ck geben Kamera Preview in den Hintergrund der AR Ansicht legen Dies im Landscape wie auch im Portrait Modus des Handys Alle vorhandenen Fingerprints vom IndoorWPS Community Server in die SQLite Datenbank laden Den aktuellen Standort auf einfache Art an zeigen lassen Dies anhand der Lokalisierung von IndoorWPS Die Suche nach einem bestimmten Ort Place implementieren Das Resultat soll eine Koor dinate sein POls so modellieren dass sie von OSM akzep tiert werden und den gew nschten Nutzen f r den IndoorGuide erf llen Absprache mit OSM in a Box Team welche Daten f r den IndoorGuide relevant sind W nsche an die Datenbankstruktur anbrin gen Daten der POIs von OSM in a Box herunter laden Dies soll mit der WFS amp JSON Technologie geschehen Version 1 8 Sprint Sprint Sprint Sprint2 Sprint2
15. get Fingerprints Vorbedingung UCo1 get Place Dieser Use Case wird vom IndoorGuide gestartet und liefert aufgrund der eingegebenen Desti nation alle passenden Fingerprints vom IndoorWPS Community Server zur ck IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 fa HSR HOCHSCHULE FUR TECHNIK RAPPERSWIL E E indoorGuide4 Android CRUD POIs 72 Vorbedingung OSM Server ist in Betrieb Der Administrator kann mittels dieses Use Cases die POIs in OSM direkt bearbeiten und ent sprechend f r den ndoorGuide verf gbar machen CRUD Maps Vorbedingung IndoorWPS Community Server ist in Betrieb Der Administrator kann mittels dieses Use Cases die Maps auf dem IndoorWPS Community Server direkt bearbeiten und entsprechend f r den ndoorGuide verf gbar machen CRUD Fingerprints Vorbedingung IndoorWPS Community Server ist in Betrieb Der Administrator kann mittels dieses Use Cases die Fingerprints auf dem ndoorWPS Commu nity Server direkt bearbeiten und entsprechend f r den IndoorGuide verf gbar machen IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Si HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 3 Analyse 3 12 OSM POI Modell pr IndoorGuide4 Android Damit die auf OSM definierten Indoor POls beim Transfer auf den OSM in a Box Server in die richtige Tabelle gespeichert werden m ssen sie nach folgendem Muster erfasst werden Ir T Beschreibuna Joessi LI ae mame lt Stri
16. All the PoiData objects are shown in a scrollable list setDistanceToActualLo Calculates the actual distance from the measured location to each cation Location PoiData object provided to this class g Sets the adapter for this list view This will show the PoiData objects setPoiListAdapter l provided to the adapter 4 2 10 Package gui view overlay 4 2 10 1 Description This package contains the classes for overlays on the MapView The abstract MapViewOver lay can be subclassed to create any overlay you want The IndoorGuide4Android uses two kinds of overlays one for the Poi Data and a second for your position Location IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 El HSR HOCHSCHULE FUR TECHNIK RAPPERSWIL 91 E E indoorGuide4 Android J class Class Model MapViewOverlay onManagedDraw Canvas MapView void onDraw Canvas MapView void onDrawFinished Canvas Map View void onKeyDown int KeyEvent MapView boolean onKeyUp int KeyEvent MapView boolean onT ouchEvent MotionEvent MapView boolean onTrackballEvent MotionEvent MapView boolean onSingleT apUp MotionEvent MapView boolean onLongPress MotionEvent MapView boolean V R PoiOverlay MyLocationOv erlay floor int androidHotspot android graphics Point new android gra readOnly poilcon Bitmap readOnly location GeoPoint poiList List lt PoiData gt new ArrayList lt P markerHotSpot Point readOnly
17. Ansatz stehen allerdings einige Probleme gegen ber die das Vorhaben etwas komplizierter machen Wir kennen zwar die Position anhand der Berechnungen durch die Fingerprints jedoch kann es sein dass Fingerprints aus verschiedenen Geb uden in die Berechnung einfliessen Dies ist an hand des folgenden Bildes etwas bertrieben illustriert Es ist zu sehen dass die Position aus dem class Class Model Dreieck von zwei Fingerprints aus dem Ge baude 1 und einen Fingerprint aus dem Ge baude 5 berechnet wird Somit ist es offen sichtlich dass anhand der errechneten Positi abe on nicht mit 100 prozentiger Sicherheit fest gestellt werden kann in welchem Geb ude a sich ein Benutzer aufh lt Dies zu erm glichen bedingt dass der Be Geb ude 1 rechnungsalgorithmus des IndoorWPS erwei Fingerprint 2 tert werden m sste Allerdings m ssten dazu mm noch die bestehenden Fingerprints um ein EES H Attribut building erweitert werden welches noch nicht existiert Dann k nnte der Service soweit gebracht werden dass er mit einer sehr hohen Trefferrate das korrekte Geb ude angibt Somit k nnte die Karte aus dem richtigen Geb ude geliefert werden Eine weitere berlegung war dass die Bounding Boxen der geladenen Karten bekannt sind und anhand dieser Box berpr ft werden k nnte ob die errechnete Position darin vorkommt Somit w re das Geb ude in wel chem man sich befindet eindeutig identifiz
18. Bericht vertraulich docx Version 1 8 18 06 2010 HSR HOCHSCHULE FUR TECHNIK RAPPERSWIL 71 fa E indoorGuide4 Android show POlI Information Vorbedingung UCo1 get Place UCo2 show AR View UCo3 show Map View Der Benutzer kann diesen Use Case ausf hren wenn er sich zus tzliche Informationen zu ei nem POI ansehen mochte Mittels antippen eines POls auf dem Display wird ein Fenster ge ffnet worin alle vorhandenen Informationen zum angew hlten POI dargestellt werden CRUD Data Vorbedingung Dieser Use Case wird vom IndoorGuide benutzt und verwaltet die Daten in der lokalen Daten bank Entweder werden die Daten erstellt gelesen aktualisiert oder gel scht calculate Location Vorbedingung ndoorWPS oder GPS funktioniert Dieser Use Case wird vom IndoorGuide benutzt und liefert kontinuierlich den aktuellen Stand ort des Benutzers in Form von Koordinaten Diese Koordinate wird entweder vom IndoorWPS oder GPS empfangen Die Auswahl zwischen diesen zwei Diensten h ngt von der Konfigurati on und dem Empfang ab get POls Vorbedingung UCo1 get Place Dieser Use Case wird vom ndoorGuide gestartet und liefert aufgrund der eingegebenen Desti nation alle passenden POls vom OSM in a Box Server zur ck Vorbedingung UCo1 get Place Dieser Use Case wird vom ndoorGuide gestartet und liefert aufgrund der eingegebenen Desti nation alle passenden Maps vom IndoorWPS Community Server zur ck
19. Bilder gespeichert wur den Gibt es Ubereinstimmungen werden diese dann ins AR Bild eingeblendet OR Code Eine andere M glichkeit der Bilderkennung besteht darin QR Codes im Bild zu er kennen und damit Informationen ber ein Objekt abzurufen Die Schwierigkeit besteht dort jedoch noch darin diese OR Codes f r den Bilderkennungsalgorithmus so schnell erkennbar zu machen dass dem Benutzer echtes AR Gef hl vermittelt wird Ebenfalls m ssten diese eine gewisse Gr sse haben damit sie auch auf gr ssere Distanz erkannt werden k nnten 3 2 3 Datenquelle Eine weitere Herausforderung ist die Datenquelle Die Daten der Fingerprints POIs Maps und Places m ssen auf einem Server zur Verf gung gestellt werden k nnen Dieser Server soll zum einen die Anforderungen an die Daten erf llen zum anderen soll durch diese Arbeit kein eige ner Server in Betrieb genommen sondern eine vorhandene Infrastruktur genutzt werden Fingerprints und Maps F r die Fingerprints und Maps ist die Datenquelle vorgegeben Es soll der IndoorWPS Community Server benutzt werden der alle n tigen Schnittstellen zur Verf gung stellt Diese Infrastruktur besteht schon muss unter Umst nden jedoch erweitert werden Eine Erweiterung sollte m glich sein da die betreffenden Ansprechpersonen des IndoorWPS Projekts an der HSR sind Places Um die Daten eines Ortes herunterladen zu k nnen muss es eine M glichkeit geben um sogenannte Places zu suchen z B Hochschu
20. Bitforge 14 00 Meeting mit Betreuer 14 00 Start Sprint 2 Meeting mit Betreuer 14 00 Meeting mit Betreuer 15 30 Start Sprint 3 Meeting mit Betreuer 14 00 Start Sprint 4 Meeting mit Betreuer 14 00 Meeting mit Betreuer 13 30 Start Sprint 5 Zwischenpr sentation 09 00 Meeting mit Betreuer 14 00 Version 1 8 18 06 2010 E HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 55 fa Ga indoorGuide4 Android 07 05 2010 Meeting mit Reto Senn Bitforge 14 00 12 05 2010 Start Sprint 6 20 05 2010 Meeting mit Betreuer 15 00 26 05 2010 Start Sprint 7 27 05 2010 Meeting mit Betreuer 15 00 04 06 2010 Meeting mit Betreuer 14 00 10 06 2010 Meeting mit Betreuer 15 00 11 06 2010 Abgabe Abstract amp Ao Poster an Betreuer en Abgabe des Berichts an Betreuer und des Ao Posters im Studiensekretariat el ee M ndliche BA Pr fung 11 00 25 06 2010 Pr sentationen HSR Forum 4 3 Projektphasen 03 03 17 03 31 03 14 04 16 03 2010 30 03 2010 13 04 2010 27 04 2010 22 02 02 03 2010 Vorbereitungs arbeiten en ni 11 05 2010 25 05 2010 08 06 2010 Abschlussarbeiten Sprint 1 Sprint 2 Sprint 3 Sprint 4 Sprint 5 Sprint 6 Sprint 7 Reservezeit 4 3 1 Vorbereitungsphase In der ersten Phase werden Vorbereitungen f rs Projekt getroffen Die Aufgabenstellung wird zusammen mit dem Betreuer Product Owner genau definiert und Projektmanagementvorbe reitungen gemacht die noch nicht direkt mit de
21. Min 10 Std 31 Min Woche 13 17 05 23 05 2010 32 Std 38 Min 32 Std 15 Min Woche 14 24 05 30 05 2010 26 Std 57 Min 28 Std 40 Min Woche 15 31 05 06 06 2010 37 Std 10 Min 34 Std 41Min Woche 16 07 06 13 06 2010 38 Std 30 Min 44 Std 28 Min Woche 17 14 06 16 06 2010 44 Std 52 Min 41 Std 50 Min Total 398 Std 21 Min 433 Std 32 Min Private Abwesenheit IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 ki HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 59 S Sa IndoorGuide4 Android N DWWWWW NNIDIDN OYOOO NF OOOO NA Oooo Soll Ist Christoph Egger Ist Adrian Geiter Woche 01 Woche 02 Woche 06 Woche 08 Woche 10 Woche 11 Woche 12 Woche 16 Bild 14 Wochentliche Arbeitszeit 5 3 Projektphasen 5 3 1 Zeit pro Sprint Die Sprints wurden mit 92 Stunden Soll Zeit budgetiert Dies teilt sich in 2 Wochen a 23 Stun den pro Teammitglied auf Die Vorbereitungsphase und die Abschlussarbeiten werden hier auch erw hnt obwohl sie keine Sprints sind Diese dauern jeweils 23 Stunden pro Teammit glied Bild 15 Zeit pro Sprint IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 owl HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 60 E B indoorGuide4 Android 5 3 2 Zeit pro Arbeitspaket Jeder Sprint beinhaltet verschiedene Arbeitspakete welche dann zusatzlich in verschiedene Aufgaben unterteilt sind In folgenden Diagrammen ist zu sehen f r welche Arbeitspake
22. Namen einzugeben Benennen Sie den Place so dass Sie ihn diesem Ort an dem Sie sich befinden sp ter wieder zuordnen k n nen Nach Best tigung mit OK beginnt das Herunter laden der Daten Gut zu wissen Um den Place automatisch w hlen zu k nnen muss eine GPS Verbindung bestehen oder die Lokalisierung ber WLAN funktionieren F r das Herunterladen der Daten ist eine Internetverbin dung n tig Der Vorgang kann je nach Datenmenge l n ger dauern Brechen Sie den Vorgang bitte nicht ab Falls die Daten nicht heruntergeladen werden k nnten w rde eine Fehlermeldung erscheinen Um einen schon fr her gespeicherten Place zu laden dr cken Sie auf den betreffenden Place Um einen schon gespeicherten Place zu aktualisieren dr cken Sie die Men taste und w hlen Sie Choose place aus Dr cken Sie nun lange auf den zu aktuali sierenden Place und w hlen Sie dann aus dem Kon textmen den Punkt Refresh Gehen Sie wie beim Aktualisieren vor nur w hlen Sie hier Delete aus dem Kontextmen Best tigen Sie die Sicherheitsabfrage mit Yes Der IndoorGuide besitzt zwei verschiedene Hauptan sichten Wenn Sie das Handy senkrecht halten er scheint die AR Ansicht Kamera Wenn Sie das Handy horizontal halten erscheint die Kartenansicht Bei bei den Ansichten finden Sie die Points of Interest POls aus der n heren Umgebung IG4A2 Bericht vertraulich docx Version 1 8 4Android Please enter a
23. Places POIs und Maps sollen in der SQLite Datenbank gespeichert werden Datenbank entwerfen und Create Statements erstellen Ebenfalls f r jedes Datenobjekt einen DB Manager erstellen welcher das Speichern und Laden der Daten bernimmt Sprint 5 28 04 11 05 2010 Hip stoy Beschreibung Gap Multimediadaten an zeigen Auswahl des Places implementieren Kompass darstellen Layout sauber umset zen Kartenansicht imple mentieren Die Links zu Multimediadaten wie Bilder Video und Audio sowie Websites und Wikipediaartikel sollen ge ffnet werden Ent weder im externen Browser oder integriert in der POI Information Ansicht Die Auswahl des Places nach der Suche und das anschliessende Herunterladen der Fingerp rints und POls implementieren Dazu sollen nur die Daten heruntergeladen werden die in ei nem gewissen Umkreis des Places liegen z B 1 km Kompass in irgendwelcher Weise beim Radar darstellen Eine M glichkeit w re Norden als N darzustellen und um den Kompass kreisen zu lassen Das Layout verbessern und einheitlich gestal ten Dazu sollen passende Icons gesucht und die Farben passend gew hlt werden Durch Drittpersonen ein Feedback zum Layout einho len und dieses in die Entwicklung einfliessen lassen View f r das Anzeigen der Karte implementie ren Dazu soll die georeferenzierte Karte in Voller Gr sse und unverzerrt dargestellt wer den Sie soll mit dem Finger verschiebba
24. Places auf dem Ger t zu speichern wird eine SOLite Datenbank verwendet Diese ist aus Platzgr nden auf der SD Card abgelegt Beim Ausw hlen eines Places wird in der Daten bank ein Attribut gesetzt welcher Place ausge w hlt wurde Durch diese Methode kann beim sp teren Neustart der Applikation der zuletzt ge ladene Place ge ffnet werden Bei vertikal gehaltenem Handy wird die AR Ansicht eingeblendet Bei horizontaler Lage die Kartenansicht Um bei kleinsten Lage nderungen das herumspringen zwischen den Ansichten zu vermeiden wurde eine Hysterese eingebaut Die ser ist bei ca 30 und hilft auch dabei die Messa ges zu minimieren die vom Sensor an den Appli kationshandler geschickt werden Version 1 8 18 06 2010 Foz Fo8 Fog F10 Fii HSR HOCHSCHULE F R TECHNIK RAPPERSWIL POls sollen im Kamerabild sowie mittels Radar und auf der Karte angezeigt werden Die POIs sollen aufgrund ihrer realen Position ange zeigt werden POls sollen gefiltert ange zeigt werden Die Kartenansicht soll ei nen Plan des Geb ude grundrisses zeigen Die Karten sollen je nach Ort an dem sich der Be nutzer befindet gewech selt werden IG4A2 Bericht vertraulich docx tos G 4Android Die POls werden in der AR Ansicht in einer dis tanzsortierten Liste gezeigt Die Liste ist notwen dig da durch die Ungenauigkeit der Position und der relativen N he der POls zum Betrachter diese nicht am rich
25. Position durchsucht werden Es em j werden dabei ber 200 Quellen Worlds einbezo gen welche Inhalte liefern Diese Inhalte User Con Bild 5 Wikitude World Browser tents k nnen dabei von Benutzern ber www wikitude me hochgeladen werden Gefundene Artikel wie zum Beispiel Sehensw rdigkeiten in der Umgebung k nnen auf einer Karten Satelliten Listen aber auch auf einer Augmented Reality Kameraansicht darge stellt werden Dabei wird das Kamerabild mit computergenerierten Daten berlagert Quelle Layar www layar com gt Quelle Wikitude www wikitude org IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 21 a HSR HOCHSCHULE F R TECHNIK RAPPERSWIL Si Ei 4 Android 22 3 1 3 RMaps Version 0 7 6 RMaps ist eine Positionierungssoftware die den Benutzer mittels GPS WLAN oder Zellen des Mobilenetzwerks ortet und Ihre Position dann auf der Karte anzeigt Karten und POls k nnen von verschiedensten Providern wie zum Beispiel Google Maps oder OSM bezogen werden Diese Kartenaus schnitte werden jeweils bei Gebrauch online heruntergeladen d h es muss immer eine Verbindungsm glichkeit mit dem Internet bestehen RMaps verf gt ber eine Funktion mit der die Karte immer korrekt ausgerichtet Search compass wird E My location Maps Bild 6 RMaps 3 1 4 Peak AR Mit Peak AR ist es m glich Bergspitzen im Kamerabild mit deren Namen und H he zu beschriften Wird das Ge
26. Version 1 8 18 06 2010 E HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 95 fa E 4 Android 4 4 Sequence diagrams 4 4 1 SSD 01 walkthrough sd walkthrough ListActivity Activity Activity SearchPlace IndoorGuide Places User I l User starts Application Choose Place l l MenuSelected Menultem item o startActivity new Intent Choose a new Place MenuSelected Menultem item l l 1 SSD 02 search place startActivityForResult new Intent r Le e p searching String str display result setListAdapter newArrayAdapter i onltemClick int position i load AllInformation SSD 03 load all data i handleMessage Message msg p finish returns result Automatically choose the 2 place sets amp displ MenuSelected Menultem item all data onResume n l SSD 06 automatically search place p onResume ai sets amp displays all data Bild 41 SSDo1 walkthrough 4 4 1 1 Description This sequence diagram shows a complete walkthrough of the application when you want to choose a new place for example Hochschule Rapperswil and display its data You have the opportunity to choose between manual search 1 or automatically choose the place 2 from the menu IG4A2 Bericht vertraulich docx Version
27. bietet XML und JSON 4 2 5 Schlussfolgerung IndoorGuide4 Android 29 2 4 2 6 2 2 2 2 2 4 Die Wahl f llt auf OpenStreetMap in a Box Die Faktoren Unabh ngigkeit und Performanz sind am wichtigsten Da der Server durch die HSR betrieben wird k nnen Anpassungsw nsche an gebracht werden und bei Problemen sind die Ansprechpersonen direkt vor Ort 4 3 POl Provider Es gilt zu evaluieren mittels welches Services die POls heruntergeladen werden sollen Die Kri terien und Detailbeschreibungen sind hnlich wie in der vorhergehenden Evaluation Kapitel 4 2 Genoames Provider Zwei Varianten wurden eruiert OpenStreetMap OSM und OpenStreetMap in a Box OSM in a Box IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Es HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 4 3 1 OpenStreetMap Unabh ngigkeit Performanz Verf gbarkeit Komplexit t Funktionalit t Die Unabh ngigkeit ist bei diesem Service leider nicht gegeben OSM ist ein grosses Projekt hat jedoch auch eine grosse Auslastung Der Service kann durch Wartungsarbeiten Fehler oder berlastung tempor r nicht mehr verf gbar sein Ebenfalls liegen zum Beispiel Wartungszeitfenster nicht in unse rer Hand Sehr gutes Wiki in dem das meiste be schrieben ist Leider macht die nicht defi nierte Attributwahl das ganze etwas kom plexer OSM bietet XML Auch eine grosse Anzahl vorbereiteter WebServices mit n tzlichen Fu
28. desire f This is called immediately after any structural changes format or size er have been made to the surface You should at this point update the Changed SurfaceHolder nae f Thi hodie led at f int int int Imagery In the surface Ihis method Is always called at least once af ter surfaceCreated SurfaceHolder surfaceDestroyed Surfac This is called immediately before a surface is being destroyed After eHolder returning from this call you should no longer try to access this surface IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 E indoorGuide4 Android H HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 90 This class represents a radar which is displayed on top ofthe CameraView It contains allthe Poi Data objects which are visible in the given radius a compass sensor is used to measure north direc tion sothe compass with its PoiData objects always point to north drawRadarGrid Canvas Draws all grids obtained in this class EE Calculates the position of each PoiData object in the radar Then wPoi V draws the object on the radar drawCompass Canvas Draws the compass with correct rotation onAccuracyChanged Sen Implements a compass TILT detector Will show a message to the user sor int if accuracy is low or no data can be measured at all onSensorChanged Senso Called when sensor values have changed rEvent PoiListView This class represents a list view which is displayed on top of the CameraView
29. es verschiedene L sungsm glichkeiten zu diversen Komponenten der Applikation In diesem Kapitel soll anhand von verschiedenen Bewertungs matrizen die am besten geeignete L sung evaluiert werden Den L sungsans tzen wird anhand eines Kriterienkatalogs zu jedem Kriterium ein Gewicht zu geordnet welches die Relevanz darstellt Die Gewichte variieren im Bereich von 1 3 wobei eher vernachl ssigbar ist und 3 ein sehr wichtiges Kriterium darstellt Ein L sungsansatz kann folgende Punkte erreichen o nicht erf llt 1 mittelm ssig erf llt 2 gut erf llt Die mit dem Gewicht multiplizierte Punktzahl ergibt kumuliert mit den anderen Punkten die Gesamtpunktzahl Der L sungsansatz mit der h chsten Punktzahl wird dann in der Bachelor Thesis umgesetzt 4 1 Webservice Responsetype Es gilt zu evaluieren welches Datenformat f r die HTTP Response bei einer Webserviceanfrage geeignet ist Zwei Varianten wurden eruiert XML und JSON 4 1 1 Kriterienkatalog und Gewichtung Kriterium Beschreibung Gewicht 1 3 Overhead Um den teuren Datentransfer bei Mobileger ten zu minimie ren soll der Response Overhead so klein wie m glich gehalten werden 3 Komplexit t Es sollte nicht unn tig viel Zeit investiert werden m ssen die Technologie zu erlernen Kein zu grosser Implementierungsaufwand 1 f r gew nschte Funktionalit t Funktionalit ten Das Parsen Bearbeiten und Verwenden des Daten formats sollte so einfach und so schn
30. fa E Android 107 MapView Diese Ansicht wird angezeigt wenn das Handy waagrecht gehalten wird Dabei wird die Karte eingeblendet auf welcher der aktuelle Standort und die POIs angezeigt werden Die Karte kann mit dem Finger verschoben werden Beim ersten ffnen wird automatisch auf den aktuellen Standort zentriert Ist keine Karte geladen erscheinen das Logo der Applikation und ein Text mit dem Hinweis dass mit l ngerem Dr cken auf den Bildschirm die Karte gew hlt werden kann Es werden dann alle Karten angezeigt die vom aktuellen Standort aus in Frage kommen w rden und geladen sind Available Maps HSR Gebaeude 1 EG HSR Gebaeude 1 MG HSR Gebaeude 1 OG Bild 50 Kartenansicht Bild 51 Kartenansicht Mainmenu Beim Dr cken der Men taste auf dem Handy wird ein Men mit folgenden Men punkten eingeblendet e Choose place Choose place Settings e Settings e About e Exit Bild 52 Men 5 3 2 Poilnformation Activity Beim anw hlen eines POls in der Liste oder auf der Karte werden die Informationen ber diesen POI in einem eigenen Activity angezeigt wel ches das Aussehen einer Dialogbox hat Als Informationen werden Na esse Floor me Geb ude Stockwerk Distanz zum aktuellen Standort Datum der BE letzten nderung und Beschreibung angezeigt Falls die Beschreibung Mee mehr Text beinhaltet als Platz ist kommt eine Scrollbar zum Einsatz Zus tzlich werden Links zu Multimediainhal
31. mit Points of Interest POls die als drei dimensionale Icons Stecknadeln an ihrem Ort schweben Beispiele daf r sind Wikitude oder Layar Innerhalb der AR gibt es verschiedenste Ans tze darunter die Orientierung im Geb ude und in Anlagen indoor wie z B in einem Campus Einkaufszentrum oder Muse um Aufgabenstellung F r diesen Ansatz soll auf Basis eines Android Smartphones das u a mit Kamera Wifi GPS und mit Kompass ausgestattet ist ein Prototyp neu entworfen und realisiert werden Es handelt sich dabei um ein mobiles Besucher Informationssystem Mobile Guide innerhalb der HSR und auf dem HSR Campus als AR Applikation Zwei Anwendungsszenarien stehen im Vordergrund Einerseits soll sich ein ortsunkundiger Besucher eines Campus ber die R ume in der N he informieren k nnen Er soll sich auch Hypertext und Multimedia Inhalte zu naheliegenden Objekten anzeigen lassen k nnen dies mittels AR Kamerabild und Karte Hier der Beginn der zwei Szenarien Ein externer Besucher kommt auf dem Campus der HSR an und sucht das Sitzungszimmer 1 227 Er richtet seine Kamera im Hauptgeb ude 1 auf den Kiosk es erscheint eine Infobox mit ffnungszeiten und den in der N he befindlichen R umen Wenn er sein Handy waagerecht h lt erscheint ein Gebaudeplan Im zweiten Szenario gibt es eine Job Ausstellung im Hauptgeb ude mit Herstellern St nden Der Ausstellungsbesucher richtet sein Handy auf einen Stand und erh lt In
32. nun gut Dem Benutzer muss noch kommuni ziert werden welcher Dienst gerade aktiv ist Anmerkung nach sp teren Test Sta tussymbol wird nun angezeigt Wird ebenfalls kurz angezeigt Noch Probleme wenn kein Signal ge funden wird Anmerkung nach sp teren Test Prob lem gel st indem nach 15 Sekunden Suchzeit abgebrochen wird Wenn bei der Suche mit der Enter Taste auf der Softtastatur gestartet wird bricht der Dialog danach nicht ab Anmerkung nach sp teren Test Prob lem ist behoben 113 18 06 2010 5 5 7 D Testfall Bemerkung zum Testergebnis 30 31 32 33 34 35 36 37 6 Resultate und Weiterentwicklung HSR HOCHSCHULE F R TECHNIK RAPPERSWIL Release 0 7 Karten herunterladen funktioniert auch bei mehreren Karten Es werden nur die aktuell m glichen Kar ten angezeigt je nach Standort Die Karte kann ausgew hlt werden Datenbank auf der SD Card funktioniert auch mit gr sseren Datenmengen Settings k nnen gesetzt werden wirken sich entsprechend aus und werden per sistiert Compass Tilt Detector gibt die Meldung aus falls der Kompass kalibriert werden MUSS Exceptions werden in einer Dialogbox an gezeigt Statussymbol wird entsprechend dem gew hlten Lokalisierungsdienst ange zeigt Beim Wechsel wird eine Meldung ausgegeben 6 1 Resultate Siehe Kapitel 6 Resultate und Ausblick im Teil I 6 2 M gliche Wei
33. praktische Art dargestellt werden Die Kartenansicht soll die POIs ebenfalls anzeigen In der AR Ansicht sollen die POls in einem Radar angezeigt werden Dieser soll die Po sition der POls im richtigen Abstand und Winkel zueinander anzeigen In der Karten ansicht sollen die POls an ihrer gegebenen realen Position angezeigt werden Damit nicht Ubermassig viele POIs angezeigt werden sollen sie sinnvoll gefiltert wer den Der Benutzer soll die bersicht ber viele POIs nicht verlieren Bei der Kartenansicht soll ein Plan eines Geb udegrundrisses angezeigt werden Da keine offiziellen Karten von Geb uden existieren sollen diese als georeferenzierte Bil der im IndoorGuide angezeigt werden Die Karte soll passend zum Geb ude in dem man sich befindet angezeigt werden Bei mehreren Karten z B mehrere Stockwerke berschneidungen von Karten soll die richtige Karte angezeigt werden EC HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 68 ES a 4Android Der IndoorGuide soll auf der Karte die eigene Position so genau wie m glich anzeigen Es gibt bei der Messung der Position mittels IndoorWPS immer eine gewisse Lokalisie Ge rungsungenauigkeit Diese Ungenauigkeit soll durch einen sich dynamisch ndernden Kreis um die eigene Position herum angezeigt werden a Damit der Benutzer sich mit der Karte besser zurechtfindet soll sich diese anhand des Kompasses ausrichten Um dem Benutzer Informationen ber die POIs anzeigen zu k nnen so
34. runs in a sep arate thread and sends messages to the activity handler of the Places searchAndLoadCurrentPI BE activity If no position could be found in a period of time it shows a mes sage and returns If a position could be found it shows a prompt to label this place and then download all data from this place IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 a HSR HOCHSCHULE FUR TECHNIK RAPPERSWIL 85 LC IndoorGuide4Android Settings This class takes care of the settings for the whole IndoorGuide4Android The settings are defined in the Android R xml settings XML file Every setting defined in this XML file is displayed automatically through Android and can be accessed from everywhere in the project to get the status of the settings Poilnformation This class is responsible to show a clicked PoiData object It shows the whole information and dis plays the browser links as buttons Methods openBrows Starts the Android browser with the provided URL er java lang String uri 4 2 8 Package gui util 4 2 8 1 Description This package contains all the util classes which are use all over the application They provide functionality like sensor events geo utilities constants dialog handling read more in the fol lowing detail description class Class Model F BoundingBoxE6 mLatNorthE6 int readOnly RADIUS_EARTH_METERS int 6378140 readOnly mLatSouthE6 int readOnly EARTH_RA
35. ure with an accuracy circle around it Methods gt This class simply draws its android figure to the provided Location onto the MapView 4 2 11 Package gui view util 4 2 11 1 Description This package contains the adapter classes which are use for example by list views The standard adapter is the array adapter which is extended by the PlaceAdapter and the PoiAdapter The reason to do that is because if you extend the adapter you are able to overwrite how the objects provided to the adapter are displayed in the list view or list activity If the normal array adapter is used the toString method of the objects will be called to display the item class Class Model ArrayAdapter PlaceAdapter placeList ArrayList lt PlaceData gt place PlaceData PlaceAdapter Context int ArrayList lt PlaceData gt getView int View ViewGroup View ArrayAdapter PoiAdapter poiList ArrayList lt PoiData gt PoiAdapter Context int ArrayList lt PoiData gt getView int View ViewGroup View Bild 38 Package gui view util IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL fa indoorGuide4 Android 4 3 Package and class diagrams 4 3 1 Package diagram 4 3 1 1 Description This diagram shows the dependencies between all top level packages of the Indoor Guiden Android class Class Model ch hsr indoorguide4android2 gui I activity overlay I uti
36. used data interchange format is JSON getByteArrayOfBitmap Downloads the byte Graphic Data of the given MapData MapData from the IndoorWPS server parseMapDataXML String Executes the SAXParser and parses the given map XML string tring Databrovider This class is responsible for delegating the whole download and saving process Methods Executes a thread which is created in this method Without start ing a thread the application would block The thread activates the loadAlllnformation loading saving of the whole data available to the PlaceData object which was provided to the DataProvider in the con structor The thread sends updates in progress to the handlers loadFingerprints Delegates the loading of the Fingerprint objects loadPois Delegates the loading saving of the PoiData objects loadMaps Delegates the loading saving of the MapData objects IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Ei HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 78 a indoorGuide4 Android Sets the B dingBoxE6 depending on the parsed upper right finalizeMapList ArrayList EE H g p PEENI lt MapData gt and lower left GeoPoint coordinate Finally delegates the down load of the graphics data savePlace Delegates the saving of the current loaded PlaceData object LocationProvider This class manages the GPS functionality and the functionality of the IndoorWPS library Based on the GPS and WLAN IndoorWPS l
37. v Compass Tilt tiv storanfallig ist soll ein Detektor implemen 34 Detector implemen tiert werden Dieser soll eine Meldung ausge 2 08 tieren ben wenn der Kompass Lagesensor zu unge Exceptionhandling umsetzen 35 36 gen Statussymbol anzei Ei HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 54 IndoorGuide4 Android Da der Kompass bei den meisten Handys rela nau ist und neu kalibriert werden muss Exceptions sollen dem Benutzer weitergeleitet und sinnvoll dargestellt werden Dazu ist zu beachten dass ein benutzerfreundlicher Text 7 18 zu verwenden ist mit dem der Benutzer etwas anfangen und einem Techniker helfen kann Es soll ein Statussymbol angezeigt werden welches dem Benutzer zeigt ber welchen Dienst die aktuelle Koordinate bezogen wird Vor allem ist es wichtig f r den Benutzer zu wissen wenn keine Koordinate zur ckgegeben wurde 52 4 Zeitplanung 4 1 Vorgeschriebene Arbeitszeit Gem ss Vorgabe der Hochschule Rapperswil muss pro ECTS Punkt 30 Arbeitsstunden geleistet werden Die Bachelorarbeit ergibt bei erfolgreichem Abschluss 12 ECTS Punkte woraus eine minimale Arbeitszeit von 360 Stunden pro Student resultiert 4 2 Terminplanung 22 02 2010 24 02 2010 03 03 2010 10 03 2010 17 03 2010 24 03 2010 31 03 2010 14 04 2010 23 04 2010 28 04 2010 05 05 2010 IG4A2 Bericht vertraulich docx Beginn der BA Kickoff Meeting 14 00 Start Sprint 1 Meeting mit Betreuer und Reto Senn
38. vertraulich docx Version 1 8 18 06 2010 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL ee ee 1 bh i al 1 u A Sprint 6 62 IndoorGuide4 Android E Projektmanagement E Impl ProgressDialog E Impl Karte Position E Impl Karte Overlay E Impl Place speichern amp laden E Impl GPS E Impl Aktueller Place E Impl POIs filtern Bild 23 Arbeitspaket Sprint 6 Sprint 7 E Projektmanagement E Dokumentation Impl Karte Download E Impl Karte Ausw hlen E Impl Datenbank E Impl Settings E Impl Compass Tilt Detector E Impl Exceptionhandling Impl Statussymbol E Impl Refactoring H Impl Bugfixing Bild 24 Arbeitspaket Sprint 7 Abschluss 13 15 E Projektmanagement E Dokumentation E Impl Bugfixing E Impl Refactoring E Impl JavaDoc IG4A2 Bericht vertraulich docx Bild 25 Arbeitspaket Abschluss Version 1 8 18 06 2010 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 6 Risiko Management Ro Ro2 Ro3 Ro4 Ros Ro6 Ro7 Hot Rog R10 IG4A2 Bericht vertraulich docx Ausfall eines Team mitglieds Krankheit Unfall Team Probleme Streit Uneinigkeit Fehlende Motivation gt reduzierte Leis tungsf higkeit Geringer Fortschritt Entwicklung ist auf w ndiger als erwar tet Ausfall Hardware Datenverlust H here Gewalt Kata strophe f hrt zu Da tenverlust oder Ar beitsverhinderung Gew hlte Technolo gie
39. wird ein schriftliches Protokoll gef hrt Dadurch sind berlegungen und Entscheidungen f r sp teren Gebrauch und Nachvollziehbarkeit festgehalten Die Sitzungsprotokolle sind auf der beigelegten CD zu finden 7 2 Iteratives Vorgehen Bei Scrum wird in Sprints Iterationen entwickelt Diese Sprints dauern f r dieses Projekt je weils zwei Wochen Nach einem Sprint werden die Ergebnisse besprochen und anhand der R ckmeldung die weiteren Aufgaben f r den n chsten Sprint definiert 7 3 Einsatz eines Versionierungssystems SVN F r die Entwicklung des Programmcodes wurde ein SVN Repository auf einem Server des IFS verwendet Durch den Einsatz eines Versionierungssystems ist es allen beteiligten Personen jederzeit m glich auf die aktuellen Daten zuzugreifen Zudem hat man Zugriff auf ltere Versi onsst nde des Projekts Ferner werden auch durch Unaufmerksamkeit oder andere Einfl sse verursachte Datenverluste reduziert 7 4 ScrumDesk Um die Projektfortschritte zu kontrollieren wurde das Programm ScrumDesk eingesetzt Dieses diente ebenso zur Planung der Sprints Es erm glichte dass alle Teammitglieder Entwickler wie auch der Betreuer Product Owner den aktuellen Stand des Projektes einsehen konnten 7 5 JUnit Tests Um die Code Qualit t zu gew hrleisten resp die Ausf hrbarkeit und Korrektheit wurden JU nit Tests implementiert welche jeweils vor dem Commit ins SVN durchlaufen werden 7 6 Programmierrichtlinien Damit die W
40. 1 8 18 06 2010 Kei HOCHSCHULE F R TECHNIK RAPPERSWIL ES E 4Android 4 4 2 SSD 02 search place 5 sd Use Case Model ListActivity Thread SearchPlace i searching new Thread start i rund downloadPlaces searchT ext placeList lt PlaceData gt placeList clear gd client executeRequest placesStr JSONObject jsonPlaceOb l er l placeList addAll JsonParser parseJson jsonPlaceObj List lt PlaceData gt client executeRequest poiStr JSONObject jsonPlaceObj placeList addAll JsonParser parseJson jsonPlaceObj List lt PlaceData gt Ern callback via Handler eg a fm Bild 42 SSDo2 search place 4 4 2 1 Description This sequence diagram shows the program flow started if the user decided to manual search the place The SearchPlace activity starts a thread and provides it with a handler whereby the thread will notify the activity when he has done his job or in worst case what went wrong IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Ke HOCHSCHULE F R TECHNIK RAPPERSWIL 4 4 3 SSD 03 load all data tos i 4 Android sd Use Case Model ListActivity SearchPlace new DataProvider context place dialogHandler activityHandler dataProvider loadAll lnformation DataProvider LocationProvider i loadFingerprints loadFingerprints place getLatitude place getLongitude RAD
41. 2 inkl Visio 2007 Wird zur UML Modellierung f r die Dokumen UML Modellierung tation verwendet Quelle www sparxsystems com SparxSystems Enterprise Architect 7 0 Zur Synchronisation von Dokumenten Dropbox 0 7 Repote Quelle www dropbox com IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Kei HOCHSCHULE F R TECHNIK RAPPERSWIL 4Android 18 Dient zum Management der Scrum Abl ufe K Projektmanage Planung und Kontrolle der Sprints Arbeitszu ScrumDesk 4 5 Dn teilung Quelle www scrumdesk com Wird f r die Zeiterfassung gebraucht Bietet l einen praktischen Desktop Client sowie eine Paymo 3 0 Zeiterfassung gute Auswertungsm glichkeit Quelle www paymo biz 1 4 Vorgehen Aufbau der Arbeit Zu Beginn der Arbeit waren noch keine Erfahrungen mit Handyprogrammierung vorhanden Auch das Betriebssystem Android war noch unbekannt Deshalb wurde beim Projektstart stark aufs Technologiestudium gesetzt Vertieft wurde das Thema indem die vorausgehende Bachelor Thesis zum Thema ndoorGui dea Android durchgelesen wurde Zudem wurde das Buch Hello Android durchgearbeitet wel ches grundlegendes Wissen ber die Android Programmierung vermittelte Dies wurde dann parallel mit praktischen Beispielprogrammen vertieft Darauf folgte ein vielseitiges Ausprobie ren von Funktionen die sp ter im IndoorGuide eingesetzt werden sollten Dazu geh rte das Ansteuern der Kamera und das Auslesen des Winkelsens
42. 6 Use Case Ee E 69 BI 275 Datenbank ModS aE S 75 Bild 28 Activity LITECY CIO aaa aaa aaa raaa a aa a a araa aa 75 PING 202 Package EE 76 Bidaa Pac age DU nes E 79 Bild 31 Package business net 80 Bild 32 Package business inet util 444444444404RRRRRRRRRRRRRRRRRRnnn nn RR RR RR nn RR Rn nn nn nn nn nn nnnnnnnnnnen 81 Bidas Package E 82 Bild 32 Package SCHI VI Ve 83 Bild 35 Package out un 85 Bild 36 PACK CIE 88 Bild 37 Package GQUIVIEW EE 91 Bild 38 Package GU VIEW e 92 Bild 39 Package dagram en 93 Bild 40 Layer class diagram s sssnssrenesssreeeessstttttrrttttttttttttttttteEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEE EEEEEEEeEEee 94 Bidar o Deka aie 6 95 ll ey res SO 2S e 96 BiG e ER 97 Bild 22 55D 02 downoad PO E 97 Bild 25 55 DOG download Map ee er 98 Bild 46 SSD06 automatically search place AA 99 Bild 47 Position Berechnungsproblem RR RR RR RR HH nn nn nn nn nn Hanna 103 Bild 48 georeferenZierte Karte 0 0 2 2 cece cece ee eeeeceee eee e ee ee eee ener eee aaaeeeeeeeeeeeeeeeeettneeees 103 Bild Ag EE 106 Bild 50 Kartenansicht Bilder ege ee ee 107 RTE ee ee en eee 107 Bild 53 POIl Information anne 107 Bild 54 von links nach rechts gespeicherte Places Men Namenvergabe bei Auto Suche KON ORU a er 108 Bild 55 von links nach rechts Suchbegriff eingeben Suche l uft Resultate Download der DIE EE 108 BOB e E 109 BIOS RAR e EE nt ROT ai ee ee 109 Bild 58 AR Ansicht Landecape rtrt ren
43. ArrayList lt PoiData gt new ArrayList lt P placeManager PlaceManager poiManager PoiManager Surface View SurfaceHolder Callback CameraView surfaceHolder SurfaceHolder camera Camera surfaceCreated SurfaceHolder void surfaceChanged SurfaceHolder int int int void surfaceDestroyed SurfaceHolder void sortPois void setDistanceT oActualLocation Location void setPoiList ArrayList lt PoiData gt void Bild 36 Package gui view 4 2 9 2 Classes and methods MapView This class is the main view for maps The view displays the provided MapData object and manages the drawing of all MapViewOverlay objects Its possible to move the map in every direction Methods Draws the view at the correct position Forces the drawing of all exist onDraw Canvas ing overlays onSingleTa Executes the onSingleTapUp method for all existing overlays bUp MotionEvent For example this is used to open a POI Decodes the Bitmap object from the provided MapData object setMapData MapData which is used and manipulated by the MapView Sets the Boun dingBoxE6 used for the geo calculating IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 a HSR HOCHSCHULE FUR TECHNIK RAPPERSWIL 89 fa N indoorGuide4 Android MapViewProjection This code was copied from OSM Andnav application and manipulated for the needs of the Indoor Guide4Android This class wraps the whole calculating like fr
44. DIUS_KM int 6371 mLonEastE6 int readOnly DEG2RAD float float Math Pl readOnly mLonWestE6 int readOnly RAD2DEG float float 180 0 readOnly PI float float Math PI readOnly getLatNorthE6 int PI_2 float Pl 2 0f readOnly getLatSouthE6 int PI_4 float PI A OT readOnly getLonEastE6 int MILLION int 1000000 getLonWestE6 int getRelativePositionOfGeoPointInBoundingBoxWithLinearlnterpolation int int float float gudermannInverse double double getGeoPointOfRelativePositionWithLinearlnterpolation float float GeoPoint gudermann double double isLocationInBoundingBox Location boolean mod int int int distanceKm double double double double double DialogMessageHandler GeoPoint DIALOG_STEP1 int 1 readOnly Ks DIALOG_STEP2 int 2 readOnly DIALOG_STEP3 int 3 readOnly DIALOG_SEARCHING int 4 readOnly DIALOG_DISMISS int 5 readOnly dialog ProgressDialog GeoPoint GeoPoint int int getLongitudeE6 int getLatitudeE6 int getLongitude double HANDLER_SET_ADAPTER int 1 readOnly getLatitude double HANDLER_CLOSE_ACTIVITY int 3 readOnly setLongitudeE6 int void HANDLER_EXCEPTION int 4 readOnly Een setLatitudeE6 int void HANDLER_LOADING_AUTOSEARCHED_PLACE int 5 readOnly scher setCoordsE6 int int void HANDLER_NAMING_AUTOSEARCHED PLACE int 6 readOnly heise as toString String HANDLER_SET_AU
45. Data Transfer Object sind einfache Java Objekte die innerhalb einer Applikation benutzt und manipuliert werden k nnen Features werden als Funktionen einer Software bezeichnet Als Feature wird in einem Geoinformationssystem GIS auch die kleinste fachlich sinnvolle Einheit innerhalb eines raumbezoge nen Datenbestandes bezeichnet Ist die Grundlage zur Positionsberechnung via WLAN An be stimmten Punkten misst man WLAN Signale und packt diese Daten inklusive der Position zu einem Fingerprint zusammen Version 1 8 18 06 2010 124 MY i HOCHSCHULE FUR TECHNIK RAPPERSWIL Geonames org GIS GPS HSR Hysterese IFS IndoorWPS Community Server JavaDoc JSON KML Latitude Location Longitude Memory Leaks OpenStreetMap OpenStreetMap in a Box Overhead Parsen Place Points of Interest POIs POJO IG4A2 Bericht vertraulich docx ces 4Android 125 Ist eine freie geographische Datenbank auf die Uber diverse Webservices zugegriffen werden kann Geoinformationssystem Ist ein sehr exaktes Positionierungssystem welches mittels Satel liten die Position trackt Es funktioniert auf der ganzen Welt Hochschule der Technik in Rapperswil Ist ein Institut an der HSR Institut f r Software Dieser Service liefert Fingerprintdaten und Karten zu Geb uden Kommentare im Java Source Code JavaScript Object Notation ist ein kompaktes Datenformat in f r Mensch und Maschine einfach lesbar
46. Die Interesse erweckenden Ausstellungsst cke w ren mit dem IndoorGuide schnell auffindbar Den Ausstellungsst cken k nnten zus tzliche Audio oder Textnachrichten angeh ngt oder sogar Informationen in Form von Bildern oder Filmen zur Verf gung gestellt werden Dies soll vor allem Personen anspre chen die nicht gerne an F hrungen teilnehmen oder Zusatzinformationen w nschen 2 3 Messe An Messen k nnte der ndoorGuide hnlich wie bei einem Museum eingesetzt werden Hier gibt es jedoch noch eine andere interessante Anwendung die beim Aufbau und der Einrichtung ei ner Messehalle zu tragen k me Dies muss immer sehr schnell von statten gehen und viel Mate rial muss von Lieferanten und Arbeitern an den richtigen Ort gebracht werden Es ist nicht im mer ganz einfach den richtigen Sektor in einer riesigen Messehalle zu finden Gerade solchen Lieferanten die sich nicht auskennen und nur eine Sektornummer f r die Auslieferung kennen w rden ihr Ziel mit einem IndoorGuide sicherlich schneller finden IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 19 Kei HOCHSCHULE F R TECHNIK RAPPERSWIL ES Ei 4Android 2 4 Firma Firmengel nde k nnen sehr weitl ufig und verwinkelt beziehungsweise unlogisch aufgebaut sein Der IndoorGuide k nnte auch hier Unterst tzung geben um sich auf einem fremden Firmengel nde zurechtzufinden Es sollte folglich problemlos m glich sein bei einem Meeting oder Vorstellungsgespr ch den richt
47. ENENEEEEEEEREESEEHERENEREREEEUENEEEEEEENENSEEREEEBERERERFRENEREREEERENER 76 4 3 Package and class GaGa NS rare Ren 93 Ee HE e ele se 95 Be enge D BEE anna anne 100 5 1 Implementationdetaile nen nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 100 5 2 Entscheidungen amp Knackpounkte sssssssssssnnnnneennnssrreressssstrrrrtrttrrnttttrennnrrrrrn rnnr renn 103 5 3 User Interface Implementation nenne eennnnnnnnnnnnnnnnnnnnnnnnnne nenn 106 Be Automatische Testvenahre E 110 5 5 ERR 110 6 Resultate und WeilterehtWicklUNG e eetenetesetenefeeeeueeeeereereeseeseennteneeeeeng sees 114 6 1 ROSE 114 6 2 M gliche Weiterentwicklungen nennen 114 IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 10 Ke HOCHSCHULE F R TECHNIK RAPPERSWIL Si a A Android 6 3 Voraussetzungen f r gewisse Weiterentwicklungen 116 BES e 116 SEET HE Elend 117 7 1 NS Ba Le EE 117 7 2 Benutzeranleitung f r den IndoorGuide4Android 22222222224222000000000 117 7 3 FRU ice al ZUE e E e D 121 7 4 Tutorial zur Fingerprint amp Map Ertassung 122 ANHANG seat naeh near ee ee 123 1 de e ie gals 10 e RE 124 1 1 Applikation ne 124 1 2 Beete 124 2 ANHANG Glossar und AbkUrzungsverZeiChnis nn 124 3 ANHANG Literatur und Ouellenverzeichns 127 3 1 Bt Und ATIRE a 127 3 2 Links und iMi onna e ee ee 127 4 ANHANG D Originale unterschriebene Aufgabenstellung sssssssssssssserrrrrrnreessssssrrrn 128 Abbildungsverzeichnis
48. ES HSR HOCHSCHULE F R TECHNIK RAPPERSWIL indoorGuide4 Android Bachelor Thesis Abteilung Informatik Hochschule f r Technik Rapperswil Fr hjahrssemester 2010 Autoren Christoph Egger Adrian Geiter Betreuer Prof Stefan F Keller HSR Institut f r Software Projektpartner Reto Senn bitforge AG Rapperswil Experte Claude Eisenhut Eisenhut Informatik AG Burgdorf Gegenleser Prof Andreas Steffen HSR CZ HSR HOCHSCHULE F R TECHNIK RAPPERSWIL ES Ei 4Android Impressum Christoph Egger Adrian Geiter Prof Stefan F Keller Informatikstudent Informatikstudent Institut f r Software HSR Hochschule f r Technik Rapperswil Oberseestrasse 10 Postfach 1475 CH 8640 Rapperswil Tel 41 0 55 222 4111 Fax 41 0 55 222 44 00 office hsr ch www hsr ch Projektwebsite http wiki hsr ch StefanKeller wiki cgi IndoorGuide4Android2 Developer Wiki amp Repository http dev ifs hsr ch indoorguidezandroid Erkl rung der Eigenst ndigkeit Wir erkl ren hiermit e dass wir die vorliegende Arbeit selber und ohne fremde Hilfe durchgef hrt haben ausser derjenigen welche explizit in der Aufgabenstellung erw hnt ist oder mit dem Betreuer schriftlich vereinbart wurde e dass wir s mtliche verwendeten Quellen erw hnt und gem ss g ngigen wissenschaftlichen Zitierregeln korrekt angegeben haben Ort Datum Rapperswil 17 06 2010 Name Unterschrift Adrian Geiter AE Christoph Egger d Sa IG4A2 Bericht vert
49. Gesamtarbeitszeit Dies entspricht einem Plus von 62 Stunden 8 6 gegen ber der Minimalarbeitszeit Schlussendlich wurden 832 Stunden aufgewendet Was ei nem Plus von 112 Stunden 15 5 gegen ber der Minimalarbeitszeit entspricht E Minimalarbeitszeit E Soll Arbeitszeit E Ist Arbeitszeit Bild 13 Arbeitsumfang IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 E HSR y HOCHSCHULE F R TECHNIK RAPPERSWIL 58 WR indoorGuide4 Android 5 2 W chentliche Arbeitszeiten In folgender Tabelle werden die geleisteten Arbeitsstunden pro Woche angezeigt Die Soll Arbeitszeit wurde von den Teammitgliedern auf 23 Stunden pro Person und Woche gesetzt anstelle von den vorgeschriebenen ca 21 Stunden Woche 1 22 02 28 02 2010 12 Std 55 Min 13 Std 52 Min Woche 2 01 03 07 03 2010 18 Std 15 Min 16 Std 21 Min Woche 3 08 03 14 03 2010 14 Std 55 Min 22 Std 31 Min Woche 4 15 03 21 03 2010 23 Std 13 Min 20 Std 53 Min Woche 5 22 03 28 03 2010 19 Std 51 Min 23 Std 38 Min Woche 6 29 03 04 04 2010 18 Std 48 Min 18 Std 54 Min Woche 7 05 04 11 04 2010 22 Std 8 Min 25 Std 41 Min Woche 8 12 04 18 04 2010 22 Std 13 Min 25 Std 20 Min Woche 9 19 04 25 04 2010 12 Std 37 Min 24 Std 2 Min Woche 10 26 04 02 05 2010 6 Std 10 Min 23 Std 47 Min Woche 11 03 05 09 05 2010 25 Std 26 Min 26 Std 8 Min Woche 12 10 05 16 05 2010 21 Std 43
50. Handy aus erfassen Damit der Anbieter die POls nicht Uber einen PC erfassen muss wo er die Koordinate m hsam herausfinden muss k nnte eine Weiterentwicklung Richtung POI Erfassung auf dem Handy laufen Dies k nnte unter Umst nden mit der Fingerprinterfassung verbunden werden F r die ses Feature ist ein Upload auf den OSM Server resp IndoorWPS Community Server n tig 6 2 7 POls mit Notizen versehen Um die Applikation noch interaktiver zu gestalten k nnte man dem Benutzer anbieten Kom mentare und Notizen zu hinterlassen Beispielsweise w re dies in einem Museum attraktiv wenn der Besucher seine Meinung bei den Ausstellungsst cken anheften und die Meinung an derer lesen k nnte Dies w rde nat rlich ebenfalls einen Upload auf den OSM Server erfordern Zudem m sste die POI Struktur erweitert werden Es ist auch fraglich ob solche Daten ber haupt von OSM zugelassen w ren Evt muss f r diese Weiterentwicklung eine andere L sung zur Datenhaltung gefunden werden IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 115 CZ HSR HOCHSCHULE F R TECHNIK RAPPERSWIL E E 4 Android 116 6 3 Voraussetzungen f r gewisse Weiterentwicklungen Einige der oben genannten Weiterentwicklungen setzen die Weiterentwicklung des IndoorWPS voraus Es ist also darauf zu achten dass folgende Punkte zuerst beim IndoorWPS implemen tiert wurden e IndoorWPS gibt der Location die Genauigkeit mit e Die Location enth lt Inform
51. I angeheftet und dem Server bermittelt werden k nnen 48 4 Android die h chst priorisierten Stories aus dem Product Backlog ausgew hlt werden Nach einem Sprint wird jeweils ein ausf hrbares Release generiert In den folgenden Auflistungen werden die Stories der Sprints genauer beschrieben als im Backlog Zudem ist die daf r aufgewendete Arbeitszeit angegeben in Stunden 3 5 1 O1 02 03 IG4A2 Bericht vertraulich docx Sprint 1 03 03 16 03 2010 10 stoy Beschreibuna Gap Layout entwerfen Erste Views und Hauptmen erstel len IndoorWPS integ rieren Layout aller Views Dialoge und Men s auf Papier entwerfen Ebenfalls den Ablauf festhalten den ein Benutzer machen muss wenn er den IndoorGuide benutzen will Das Hauptactivity IndoorGuide und die grundle genden View f r den IndoorGuide den Aboutscreen und die Settings erstellen Ebenfalls ein Hauptmen mit About Settings und Exit im plementieren und mit deren Views verkn pfen IndoorWPS Library im IndoorGuide integrieren Sie soll Koordinaten des aktuellen Standorts an hand der WLAN Fingerprints zur ckgeben Version 1 8 1 48 22 28 18 06 2010 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 3 5 2 04 05 06 3 5 3 o8 09 10 on nga IO Sprint 2 17 03 30 03 2010 hip stoy ___Toescreiun Gap Kamera integrie ren Fingerprints laden Aktuelle Standort Koordinate anzei
52. IUS loadFingerprints latitude Library IndoorWPSLibrary SSD 04 download longitude radius POls loadPois loadMaps _ SSD 05 download Maps I I I I I saves the downloaded Fingerprints to the internal database 4 4 3 1 Description Bild 43 SSDo3 load all data This sequence diagram shows the first part of the program flow after the user has finally chosen a place and the application is going to download all the related data Here the fingerprints around your place are downloaded from the IndoorWPS Community Server 4 4 4 SSD 04 download POIs sd Use Case Model loadPois downloadPois place List lt PoiData gt l l l client executeRequest poiString jsonObject i parseJson jsonObject List lt PoiData gt e l savePoiList List lt PoiData gt DataProvider DataGateway HttpRequester fam PoiManager saveToDatabase IG4A2 Bericht vertraulich docx Bild 44 SSDo4 download POIs Version 1 8 18 06 2010 Kei HOCHSCHULE F R TECHNIK RAPPERSWIL 4 4 4 1 Description 4 Android This sequence diagram shows the program flow for downloading the POls from the IndoorWPS Community Server A bounding box is created out of the provide place based on this bounding box the POls will be downloaded meaning every POI that is contained in the bou
53. LE F R TECHNIK RAPPERSWIL ES Ei 4Android Abstract Augmented Reality AR steht f r eine zukunftsweisende Technik die in Mobile Applikationen immer h ufiger eingesetzt wird Dabei wird das Kamerabild mit kontextabh ngigen Informati onen berlagert Kombiniert mit der F higkeit moderner Handys sich lokalisieren zu k nnen entstehen daraus sehr attraktive und praktische Szenarios f r Applikationen Die am h ufigsten eingesetzte Technologie f r die Lokalisierung GPS st sst bei der Ortung innerhalb eines Geb udes klar an seine Grenzen Im Rahmen dieser Bachelor Thesis wurde eine AR Applikation f r Android Smartphones er stellt welche auch innerhalb eines Geb udes verwendet werden kann Anhand von Signalen die von Wireless Access Points empfangen werden kann der aktuelle Standort berechnet wer den Diese Technologie wird durch den IndoorWPS Community Server einem weiteren Projekt der Forschungsgruppe zur Verf gung gestellt Dabei werden zum Schutz der Privatsph re zu keinem Zeitpunkt Informationen wie die eigene Position dem Server mitgeteilt Der IndoorGui de4Android kann dadurch Points of Interest POIs in einem Geb ude z B Museum Campus oder Einkaufszentrum anzeigen Die durch das Kamerabild gezeigte Realit t wird mit diversen POI Informationen und Links zu Multimediainhalten erg nzt Bei horizontal gehaltenem Handy wird automatisch auf die Kar tenansicht gewechselt auf dem der Grundriss des entspre
54. Lokalisierung eingesetzt werden soll IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 20 Si HSR HOCHSCHULE F R TECHNIK RAPPERSWIL Fi K IndoorGuide4 Android 3 1 1 Layar Version 3 0 5 Der Layar Reality Browser entwickelt in Holland zeigt die reale Welt mit digitalen Informationen in Echtzeit an Diese Technologie wird Augmen ted Reality genannt Das durchs Handy gesehene Bild wird basierend zur Position berlagert Wie funktioniert Layar s Augmented Reality Die Idee ist simpel Layar funktioniert anhand der Kombination von Handykamera Kompass und GPS Daten Damit wir die Position und das Sichtfeld des Benutzers be stimmt Auf diesen geografischen Koordinaten basierend werden Daten empfangen und das Kamerabild berlagert Bild 4 Layar Layar bietet noch mehr es gibt die M glichkeit anhand des API von Layar einen eigenen Webserver zu erstellen und seine eigenen Daten in die Layar Applikation einzu binden 3 1 2 Wikitude World Browser 4 Version 8 08 Wikitude World Browser ist ein mobiler Augmented Reality AR Browser f r die Android Plattform Der I a auf Wikipedia und Oype Artikeln sowie Panoramio Museum of Contempor 700 m Photos beruht welche mit Geodaten verkn pft sind Aon C Das Musetim of Contemporary Art 8 e MOCA befindet sich in Los Somit k nnen weltweit ca 350000 Artikel nach Ad sere Angeles Kalifornien Der Komplex in a e Ge n resse oder GPS
55. TECHNIK RAPPERSWIL 4 Android 127 3 ANHANG Literatur und Quellenverzeichnis 3 1 Bucher und Artikel 1 2 3 Prof Stefan Keller Zitat der originalen Aufgabenstellung f r die Bachelorarbeit 2010 T Ossipova M Reiter Bachelor Thesis IndoorGuide4Android 2009 Ed Burnette Hello Android 2 1 2010 ISBN 978 1934356494 3 2 Links und Informationen 4 5 6 7 8 9 10 11 12 13 14 17 18 19 20 Layar http www layar com Wikitude http www wikitude org RMaps http code google com p robertprojects Peak AR http peakar salzburgresearch at IndoorWPS http wiki hsr ch StefanKeller wiki cgi IndoorWPS IndoorWPS Community Server http labs geometa info indoorwps VisiVis http www ifs hsr ch VisiVis 6057 0 html Computer Vision http www technologyreview com computing 22218 page1 WFS http www opengeospatial org standards wfs Agiles Manifest http www agilemanifesto org ScrumDesk http www scrumdesk com PointZero http wiki hsr ch StefanKeller wiki cgi PointZero OSM in a Box http dev ifs hsr ch osminabox OSM http www openstreetmap org Android Developers http developer android com IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 a HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 128 a indoorGuide4 Android 4 ANHANG D Originale unterschriebene Aufgabenstellung Sr HSA HOCHSCHULE F R TECHNIK RAPFERSWIL HSR Hochsch
56. TOSEARCHED_PLACE int 7 readOnly ANGLE_CHANGED int 1 readOnly equals Object boolean handier Handler distanceT o GeoPoint int context Context angleValues float angleXold float 0 angleZold float 0 ExceptionAlertDialog DisplayModus d 5 onAccuracyChanged Sensor int void i onSensorChanged SensorEvent void LANDSCAPE_MAP int 0 readOnly ExceptionAlertDialog Context String String getZAngle float LANDSCAPE_AR int 1 readOnly show void i PORTRAIT_MAP int 2 readOnly setAlertTitle String void getXAngle float S getYAngle PORTRAIT_AR int 3 readOnly setAlertT ext String void DialogMessageHandler ProgressDialog handleMessage Message void Bild 35 Package gui util IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 E HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 86 a E IndoorGuide4 Android 4 2 8 2 Classes and methods BoundingBoxE6 This class represents a bounding box based on geo coordinates There are methods to calculate from GeoPoint to Point x amp y on a screen and inverse Also some helper methods to deal with geo staff concerning to bounding boxes getRelativePositionOf GeoPointInBounding BoxWithLinearlnterpola tion int in float Calculates the relative x and y values for a given latitude longitude GeoPoint The calculated x y values represent the relative coordi nates on the screen proportionally to the siz
57. UPA 2 Mbps Bildschirm SCH ie Touchscreen 480 x Kamera 5 Megapixel 2560 x 1920 Pixel Betriebssystem Android 2 1 Bild 2 Nex s One IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 HSR HOCHSCHULE FUR TECHNIK RAPPERSWIL 17 a E IndoorGuide4Android Motorola Milestone Prozessor ARM Cortex A8 550 MHz GSM UMTS GPRS Klasse 12 EDGE Klasse 12 Nate HSDPA 10 2 Mbps HSUPA 5 76 Mbps Bildschirm 3 7 Zoll TFT kapazitiver Touchscreen 480 x 854 Pi xel 16 Mio Farben Kamera 5 Megapixel 2592 x 1944 Pixel Bild 3 Motorola Milestone Betriebssystem Android 2 0 1 gt sp ter Update auf Android 2 1 1 3 3 Entwicklungsumgebung l l l IDE f r die Entwicklung in Java 1 6 Eclipse Java EE 3 5 Galileo Entwicklung Sul i uelle www eclipse org Eclipse Plugin f r die Synchronisation mit dem Tigris Subclipse 3 0 Repository SVN Repository Quelle subclipse tigris org Das Software Development Kit zur Android Android SDK 2 1 Entwicklung Programmierung fur die Plattform 2 1 Quelle www android com Wird f r die Entwicklung von Android Apps Android Development gebraucht Bietet Emulatoren AVD LogCat Toolkit 0 9 SES File Explorer usw Quelle www android com l Testframework f r TestCases und TestSuites JUnit 4 0 Testen Quelle www junit org 1 3 4 Organisatorische Software Wird zum Schreiben der Dokumentation ver Dokumentation wendet Quelle www microsoft com Microsoft Office 2007 SP
58. _id readOnly MAP_NAME String name readOnly MAP_NORTH String north readOnly MAP_ROTATION String rotation readOnly MAP_SOUTH String south readOnly MAP_TABLE_NAME String map readOnly MAP_WEST String west readOnly PLACE DESCRIPTION String description readOnly PLACE_LATITUDE String latitude readOnly PLACE_LONGITUDE String longitude readOnly PLACE_NAME String name readOnly PLACE_OSM_ID String osm_id readOnly PLACE_SELECTED String selected readOnly PLACE _TABLE_NAME String place readOnly POI_AUDIO_URL String audio_url readOnly POI BUILDING_ID String building_id readOnly POI_BUILDING_NAME String building name readOnly POI DESCRIPTION String description readOnly POI_FLOOR String floor readOnly POI_IMAGE_URL String image _url readOnly POI_LAST_CHANGE String lastchange readOnly POI_LATITUDE String latitude readOnly POI_LONGITUDE String longitude readOnly POI_NAME String name readOnly POI_OSM_ID String osm_id readOnly POI_TABLE_NAME String poi readOnly POI_VIDEO_URL String video_url readOnly POI_WEBSITE String website readOnly POI_WIKIPEDIA String wikipedia readOnly DbHelper database SQLiteDatabase DATABASE_NAME String data db readOnly dbFile File SUBDIRECTORY String indoorguide readOnly close void create void open SQLi
59. aft gespeichert damit bei erneutem ion k Enable radar Start die gleichen Einstellungen geladen werden Folgende Einstellungen r stehen zur Verf gung Enable status icon 7 Enable status message e GPS ein ausschalten Default ausgeschaltet wi e Radar ein ausblenden Default eingeblendet e Statussymbol der aktuellen Lokalisierungsart ein ausblenden Default eingeblendet e Statusnachrichten Uber den Wechsel der Lokalisierungsart ein ausblenden Default eingeblendet Ba BOr Settngs 5 3 6 About Activity Dieses Activity hat das Aussehen eines Dialogfensters und zeigt Informationen Uber die Soft ware die Version und die Entwickler Zudem verweist ein Link auf die Website des ndoorGui de4Android Der Dialog wird Uber die aktuelle View geblendet 5 3 7 Sprache Das UI ist komplett in englischer Sprache verfasst Durch die Verwendung eines XML Files mit allen Texten ist es jedoch gut m glich Internationalisierung einzuf hren 5 3 8 Layout Das ganze Layout ist so gestaltet dass man das Handy im Port rait und im Landscape Modus halten kann Dazu mussten ledig lich die Layouts f r das IndoorGuide sowie das PoiInfor mation Activity in beiden Varianten separat erstellt werden PPS Classroom 1 26 Alle anderen werden auto 5m matisch kor 1 200 via_1 262 rekt darge MR stellt Bild 58 AR Ansicht Landscape Bild 57 AR Ansicht Portrait 5 3 9 Exceptions UnknownHostException F r die Au
60. age business IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 HSR HOCHSCHULE FUR TECHNIK RAPPERSWIL 71 fa E indoorGuide4 Android 4 2 2 2 Classes and methods DataGateway This Class implements the methods for all kind of data downloading used in the Indoor GuidegAndroid Project Methods Downloads all the MapData objects from the IndoorWPS project server which can be found based on the given parameters The IndoorWPS server calculates a bounding box with 1 kilometer ra dius based on the given latitude longitude coordinates The used data interchange format is XML This method just gets the addi tional information about the map file name id description upper right GeoPoint lower left GeoPoint rotation downloadMaps double double and not yet the graphic data because the XML just contains a link to the graphics path on the IndoorWPS server Downloads all PlaceData objects from the OSM in a Box server which can be found based on the given parameter The used data downloadPlaces String interchange format is JSON The method does two search re quests on the OSM in a Box server one for the WFS Feature place_lookup and a second for the WFS Feature poi_lookup Downloads all PoiData objects from the OSM in a Box server downloadPois double contained in the provided bounding box The bounding box is cal double double double culated on the server based on the given parameters The
61. agement SUMMARY E Ee Le EE EE Bee EE EE Inbalteverzeichnts sssini eaaa EEN TEIL Technischer Bericht EEN DK EON e a RRR A R R RRR III RRR RRR 1 1 Problemstellung EE 1 2 Aufgabenstellung cccccceeeceeeeeeceeteeeeeeeeeeeeeeeeeteeeeees 1 3 Rahmenbedingungen cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeees 1 4 Vorgehen Aufbau der Arbeit 3 VISION Und Zielen 24 Ek 2 2 MUSEUM esse ee ee reese 2 3 MESSE nee 2 4 F ee ee ee eee eee eee 2 5 EUAN SZ UN een 2 6 Bibliothek Gee 3 Stand EEN 3 1 Bestehende L sungsans tze eect eee e eee eeeeeeeeeeeeee 3 2 Realisierbarkeit und Heraustorderungen seeen fo EVOO 4 1 Webservice Responsetype sssssseesesssssrrrrrrrrrrrrrrreeeeeeee gt IG4A2 Bericht vertraulich docx Version 1 8 4Android 18 06 2010 8 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL Si a A Android 4 2 Geonames TEEN 27 4 3 PORTO gene ee nena een ee 29 5 WIS SEZ IS lt a E E 31 5 1 Datenquellen ccccccscsseseeeeceeccceeeeeeeeeeeeeeeseeeeeeeeeeeeeeaeaeceeeeeeeeeesaeaseeeeeeessssaageeseeeeees 31 5 2 Be i gee en eee ee er ee re 32 5 3 RE E 32 Ener 33 63 a Ne E Dn 33 SEP Ziene Un WE 33 6 3 Ausblick WeiterentwicklUnng ccccccccccceceeeeeeeeceeeeeeeeeeeeeeeeeeeeeeaaaaaeaaanaeeeeeeeeeeeeeess 38 6 4 PECOT B ME ee es 39 6 5 Riet 40 TEIL l Pr jektmanage m nt u a sera ie eaaa 41 k Poco aO 42 A BESDTOCI NEE eaaa A E E E A reer 42 3 Projektvorgeh m EE 43 et 43 3 2 5 CU e
62. arte den Bereich in dem Sie POls erfassen wol len Spannen Sie Uber diesen Bereich ein Recht eck auf und w hlen Sie Download Mit dem Mausrad k nnen Sie zoomen und mit gedr ckter rechter Maustaste die Karte ver schieben Unten links sehen Sie die Koordinate an welcher sich der Mauszeiger befindet Wahlen Sie das Werkzeug Draw nodes lt Klicken Sie nun doppelt an die Stelle an der Sie den POI platzieren wollen Der Node ist nun aus gew hlt rot und kann auf der rechten Seite mit Informationen versehen werden Um einen neuen Tag hinzuzuf gen m ssen Sie auf Add klicken F gen Sie fol gende Tags f r ein Indoor POl hinzu key gt value Beispiel e name gt 1 258 e description gt Classroom 1 258 e indoor gt yes e level gt 2 e website gt http www hsr ch e wikipedia gt http www hsr ch e Image url gt http www hsr ch e video url gt http www hsr ch e audio url gt http www hsr ch IG4A2 Bericht vertraulich docx Version 1 8 2 1 258 http www youtube com wat e http AYwiki hsr ch Stefankeller 18 06 2010 Kei HOCHSCHULE F R TECHNIK RAPPERSWIL Relation erstellen POls einer Relation hinzuf gen Daten auf OSM spei chern Kontrolle auf OSM Um dem POI ein Gebaude zuzuweisen muss eine Relation f rs Geb ude erstellt werden Kli cken Sie dazu unten auf Create a new relation 27 F gen Sie folg
63. artsthe WLAN service startWlanServices from the IndoorWPS library new WlanLocator true setSelectedPlace location backto SSD 01 Bi PlaceManager setsthe founded location Bild 46 SSDo6 automatically search place 4 4 6 1 Description This sequence diagram shows the program flow if the user chose to let the place be searched automatically In this mode the application tries to determine its location itself This means the Location Provider is started to receive localization via GPS or WLAN The application waits for 15 second if no location could be provided the thread notifies the activity via the handler otherwise the determined location is set and the activity is notified about the success The application will now start downloading all related data as shown in SSDo1 IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Kei HOCHSCHULE F R TECHNIK RAPPERSWIL ES Ei 4Android 5 Implementation und Test 5 1 Implementationdetails 5 1 1 IndoorWPS Fur die Lokalisierung mittels WLAN wird auf die Applikation IndoorWPS zur ckgegriffen Diese wurde vom Institut f r Software IFS der HSR entwickelt Folgend eine kurze Beschreibung Das Wireless Positioning System WPS des Instituts f r Software GlSpunkt HSR basiert auf einem Positionierungsverfah
64. ase o 1 ml Testfall Bemerkung zum Testergebnis BZ 01 Hauptactivity wird gestartet i Aboutscreen wird als Dialog Activit Aboutscreen amp Settingscreen k nnen g Y 02 S S Settingscreen als Setting Activit bers Men angezeigt werden ae J Y geoffnet Updatethread wird gestartet und liefert Es wird regelmassig eine Koordinate regelmassig eine leere Koordinate mit Lat 0 0 Lon 0 0 geliefert 5 5 2 Release 0 2 ml Testfall Bemerkung zum Testergebnis Bei Nexus One ok Beim Milestone wird die Kamera im Portrait Modus gedreht angezeigt Eintr ge in Inter Kamera wird korrekt im Landscape amp O4 netforen und das Debugging best P M l Gelee zeig tigte dass die Kamera beim Milesto ne Handy im Portrait Modus nicht verwendet werden kann Se Fingerprints werden in die Datenbank ge Fingerprints werden heruntergeladen laden und in die Datenbank gespeichert Quelle zur Testing Problematik aus dem Android Developers Forum http groups google com group android developers browse_thread thread a680b65f287e1b8c http markmail org message yasuuw3lhsccoiwl query android 2o0junit 20RuntimeException 2ostubl page mid or77qx4bz73xzbve state results IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 110 E HSR HOCHSCHULE F R TECHNIK RAPPERSWIL Si Ed IndoorGuide4 Android 411 Dabei werden sie bei erneutem Her unterladen noch nicht berschrieben sondern zus tzlich angelegt Die
65. ationen Uber das Stockwerk und das Geb ude Mit diesen zwei Voraussetzungen k nnen die Features Genauigkeitsangabe und POls filtern relativ einfach umgesetzt werden Zudem kann damit die automatisierte Kartenauswahl um gesetzt werden 6 4 Codestatistik e Anzahl Packages 10 e Anzahl Klassen 41 e Anzahl Methoden 277 e Anzahl Lines of Code 3680 IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 ES HSR HOCHSCHULE F R TECHNIK RAPPERSWIL Si E 4Android 117 7 Anleitungen und Tutorials 7 1 Installation Die Applikation IndoorGuide4Android kann ber die Website http dev ifs hsr ch indoorguidezandroid als apk heruntergeladen werden Speichern Sie das apk File auf der SD Card und installieren Sie die App mit einem File Explorer z B ES File Explo rer Sie sollten die App auch ber den Android Market finden und installieren k nnen 7 2 Benutzeranleitung f r den IndoorGuidegAndroid Hier folgt eine Anleitung wie der IndoorGuide4Android zu bedienen ist Starten Starten Sie den IndoorGuidezAndroid nach der Instal lation ber das Icon amp amp 3 im Android Applikationsmen Beim Start wird direkt der zuletzt verwendete Place geladen Place w hlen Um den IndoorGuidegAndroid an einem bestimmten Ort zu verwenden m ssen Sie den entsprechenden Place Ort laden Bitte beachten Sie dass der Indoor Guide4Android nur an Orten verwendet werden kann an denen er vorgesehen und vom Anbieter angeb
66. benfalls wird davon ausgegangen dass OSM OSM in a Box und IndoorWPS ihre Dienste funktionst chtig anbieten und die Software korrekt installiert wurde 2 3 1 Use Case Diagram uc Use Case Model UC10 CRUD POls IndoorGuide4 Android OSM in a Box UCO1 get Place include include include UC11 CRUD Maps Mobile User UC03 show X Map View include N DA N include N N N UC09 get Fingerprints UC04 show POI Information UC12 CRUD Fingerprints UCO6 calculate Location Administrator Bild 26 Use Case Diagram IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 CC HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 70 E E IndoorGuide4Android 2 3 2 Aktoren name oem Verwaltet die Daten und sorgt f r die Funktionalit t der Libraries welche der IndoorGuide benutzt Administrator Mobile User Anwender des ndoorGuides4Android 2 3 3 Beschreibungen der Use Cases det Place Vorbedingung Internetverbindung ist m glich Der Benutzer m chte den ndoorGuide an einer Destination verwenden und muss dazu diesen Use Case ausf hren Der Use Case ist n tig um berhaupt die notwendigen Daten laden zu k nnen Er wird via Men ausgef hrt und bietet die M glichkeit nach einer gew nschten Des tination per Namen zu suchen Ebenfalls ist es m glich automatisch die richtige Destination zu finden anhand der Koordinate Hat der Benutzer seine
67. ccess Points Zudem kostet es ihn nat rlich Zeit f r das Erfassen von Fingerprints POls und Karten Bei der Durchf hrung dieses Projektes wurde in verschiedenen Bereichen einiges gelernt e Neue Technologien erlernt Android JSON WFS e Erstellen einer Mobileapplikation e Einblick in den Geoinformatik Bereich e Funktionsweise eines WLAN Positionierungssystems e Services wie OpenStreetMap OpenStreetMap in a Box In doorWPS Geonames org e Durchf hrung eines Projektes mit der agilen Methodik Scrum e Vertieftes Wissen im Software Engineering Bereich Ein grunds tzliches Problem liegt noch bei der Genauigkeit der Positionsbe stimmung ber IndoorWPS oder allgemein WLAN Zudem ist das Bitmap Handling bei Android 2 1 eine allgemein bekannte Problematik welche das Arbeiten mit grossen Bildern in diesem Fall grossen Karten schwierig macht Offen bleibt auch noch das automatische W hlen der richtigen Karte wenn mehrere m glich w ren W rde eine weitere hnliche Arbeit durchgef hrt werden w rde von den wichtigsten Funktionen zu einem fr heren Zeitpunkt ein Prototyp erstellt werden Dies w re n tzlich um den Aufwand und die Machbarkeit dessen besser absch tzen zu k nnen Ansonsten w rde das Projekt hnlich durch gef hrt werden Version 1 8 18 06 2010 7 Kei HOCHSCHULE F R TECHNIK RAPPERSWIL Inhaltsverzeichnis Int etg E E Erkl rung der Eigenstandigkeit RR nderungsgeschichte E Ree POS Ul OG as Man
68. ceptions auf welche uns darauf aufmerksam machten weshalb die Applikation sich so verlangsamte Nach einer Analyse des Heaps mittels des vom Android SDK mitgelieferten DDMS Tools zeigte sich dass der Winkelsensor extrem viele Message Objekte produziert Diese Objekte wurden allesamt via Handler an die IndoorGuide Activity zur ckgesendet und f llten den Heap stetig weiter auf Aus diesem Grunde erweiterten wir die Implementation unseres AngleSensorEvtListener s damit er nur noch markante nderungen der Winkel weiterleitet Somit waren die Probleme gel st und das Feature funktionierte wie gew nscht Es brachte dem Benutzer noch einen zus tzlichen Nutzen Die Ansichten wechseln nicht schon bei kleinsten Bewegungen Ersch tterungen 5 2 4 Location Provider Die Auswahl welcher Location Provider genommen werden soll h ngte von verschiedenen Kriterien ab Zum einen ist GPS nicht immer eingeschaltet zum anderen sind die Dienste nicht immer verf gbar Wir haben uns dazu entschieden GPS zu bevorzugen wenn der Dienst ein gutes Ergebnis liefert Dies aus dem einfachen Grund dass dort in der Regel genauere Werte zur ckgegeben werden Die zentrale Methode des Location Providers ist public Location getLocati on boolean gpsEnabled der Klasse LocationProvider Hier wird kurz der Ablauf in Pseudocode beschrieben der durchlaufen wird 1 if gpsEnabled Abfrage ob GPS in den Settings des IndoorGuides aktiviert ist if gpsServiceStarte
69. chenden Geb udes mit den enthalte nen POls und des aktuellen Standorts angezeigt wird Durch die Verwendung des Open Source Projekts OpenStreetMap k nnen die POls bequem vom PC aus bers Internet erfasst werden Diese k nnen dann direkt in den IndoorGui dea Android geladen werden Um jedoch von der WLAN Lokalisierung im Geb ude profitieren zu k nnen ist eine gewisse Vorbereitung und Infrastruktur des Anbieters n tig IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 4 HSR HOCHSCHULE FUR TECHNIK RAPPERSWIL 5 Si E 4Android Management Summary Ausgangslage Grundidee Die Grundidee f r diese Arbeit ist es die immer h ufiger verwendete Technik Augmented Reality AR und Benutzung von Karten in den Indoor Bereich zu bringen Es existieren noch keine Applikationen mit dieser Funktionalit t welche in einem Geb ude funktionieren w rde Es soll ein IndoorGuide entstehen der dem Benutzer Informationen ber verschiedene Points of Interest POls liefert Ziele Ziel dieser Arbeit war es einen Mobile Guide f r die Android Plattform zu entwickeln welcher in einem Geb ude eingesetzt werden kann Die wichtigsten funktionalen Anforderungen werden hier kurz erl utert e Die Position des Benutzers soll zuverl ssig bestimmt werden e Daten sollen im Voraus heruntergeladen werden k nnen e POls sollen im Kamerabild sowie mittels Radar und auf der Karte angezeigt werden e Die Kartenansicht soll einen Plan des Geb
70. chtige Applikation zu erstellen welche in diesem Rahmen noch nicht existiert 6 4 2 Adrian Geiter Ich war von Beginn weg motiviert f r dieses Projekt da ich selbst von Handys und deren M g lichkeiten begeistert bin Ich sah auch den Nutzen hinter der Idee des IndoorGuides und konnte mich sehr schnell mit dem Thema anfreunden Den Einblick in die Geoinformatik zusammen mit der Lokalisierungsthematik fand ich sehr interessant Die Arbeit mit Android war f r mich v lliges Neuland in der Benutzung wie auch in der Entwicklung Doch das Einarbeiten war viel leichter als zuerst erwartet Ich kann mir momentan gut vorstellen auch weiterhin in der Ent wicklung f r Android Ger te t tig zu sein Dieses Projekt war f r mich das erste agil durchgef hrte Projekt Die Auswahl von Scrum f r dieses Projekt fand ich optimal und habe gerne mit dieser Methodik gearbeitet Im Bereich Software Engineering lernte ich vor allem den bewussten Umgang mit Ressourcen Da auf ei nem Handy die Ressourcen knapper als auf einem PC sind musste sparsam damit umgegangen werden Wir stiessen oft an Grenzen mit dem internen Speicher und mussten auch die langsa mere und teure Internetverbindung beachten IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 be Kei HOCHSCHULE F R TECHNIK RAPPERSWIL ES E 4Android Das Arbeitsklima empfand ich als angenehm und konstruktiv Teilweise hatte ich das Gef hl dass unser Betreuer Herr Keller uns mit seinen vie
71. d false startGpsServices Services f r GPS starten if isProviderEnabled Abfrage ob GPS Provider in den Android Settings aktiviert ist gpsLocation getLastKnownLocation Location von GPS holen if gpsLocation null if currentTimeMillis gpsLocation getTime lt 10000 amp amp gpsLocation getAccuracy lt 1 diese zwei Abfragen sind um veraltete und ungenaue Locations zu ignorieren return location Location zur ckgeben IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 105 a HSR HOCHSCHULE F R TECHNIK RAPPERSWIL E a 4 Android 2 ifwlanLocator getStatus active Abfrage ob IndoorWPS neue Loca tions liefert toleranceCounter limit Toleranzz hler aufs Limit setzten return wlanLocator getAveragedLocation Location zur ckgeben 3 else iftoleranceCounter gt o Ai Wenn Status NICHT active ist jedoch der Z hler noch nicht o erreicht hat wird nochmals die letzte Location zur ckgegeben toleranceCounter 3 return wlanLocator getAveragedLocation 4 return new Location 0 0 0 0 0 Ai Wenn die Toleranz unter o geschritten ist wird eine leere Location zur ckgegeben Wir haben uns f r den Toleranzwert entschieden da es oft vorkommt dass der Status vom WlanLocator f r kurze Zeit nicht active ist Dies w rde bewirken dass immer dann eine leere Location zur ckgegeben w rde Das w rde nat rlich den aktuellen Standort auf der Karte verschwinden lasse
72. den und in der SQLite Datenbank speichern In ei nem ersten Schritt m ssen die zur Karte geh renden XML Dateien heruntergeladen und ge parst werden Darin ist dann der n tige Link zum Bild zu finden Im XML stehen weitere wichtige Informationen wie z B die Eckkoordi naten und der Floor Da es gr ssere Daten mengen sind muss hier besonders auf die Per formance geachtet werden Es soll ein Men erstellt werden in dem man verf gbare Karten ausw hlen kann Dies ist z B beim l ngeren Dr cken auf die Kartenan sicht m glich oder direkt beim ersten Anzeigen der Karte Im Men sollen alle gefundenen Kar ten erscheinen die mit der aktuellen Koordina te bereinstimmen also Karten des Geb udes in dem man sich befindet Da sich im letzten Sprint herausgestellt hat dass der interne Speicher zu wenig Platz f r die Datenbank mit gespeicherten Karten hat muss die Datenbank auf die SD Card ausgelagert werden Falls dies nicht funktioniert w re noch eine M glichkeit die Karten in einem eigenen Ordner auf der SD Card zu speichern und in der Datenbank lediglich den Pfad zur Karte zu speichern Um dem Benutzer die M glichkeit zu geben den IndoorGuide in beschr nkter Weise seinen W nschen zu gestalten sollen Einstellungs m glichkeiten implementiert werden Dazu geh ren z B GPS oder Radar ein ausschal ten Version 1 8 loorGuide4 Android 4 92 41 63 8 8 13 76 2 05 18 06 2010 k
73. e ee 43 3 3 GcrumlDesk OE 44 3 4 Product Backlog WE 45 3 5 DO MIG Ela 48 Le e e e e WE EA 4 1 Vorgeschriebene Arbeitszeit ccccccceceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeasaaaeaaneeeneeees 54 H ue d Cis ee NENNE NEE NENNENNENIISTENGE 54 4 3 PROSE KUD MSS E 55 4 4 Melens cine seses 56 4 5 BEE 56 5 Auswertung der Arbeitszeten EE EEEEEEEEEEEEnn EEEE E EEE 57 DL ADELU e 57 Be Wo chentiche e een rn n o S 58 5 3 Been ane Se Ul acess cee cece eeu erases ao nenrer nwo eusaiusvsusarusapacmpaamusosmees asus 59 6 Risiko Management E 63 IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 9 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL ES E 4Android 7 e E lag El de ee ee ee ee ee ee 64 7 1 SIZUNG SPOT e UE 64 7 2 Iteratives Vorgehen E 64 7 3 Einsatz eines Versionierungssystems NNTI nenne nnnn nn nn nennen 64 7 4 SChUMIDES E 64 7 5 INNE E 64 7 6 Programmiertichtlinien ensure 64 8 Arbeitsumgebung E 64 TEIL IIl SW Projektdokumentation a eu 65 De E 66 2 Anforderungsspezifikation cccccccceeceeeeeeeeeeeeeeeeeeneeeeeeeeeeeeeeeeeeeeeeccccccccieeeeeeeeeeeeeeeeteteeeees 66 2 1 Funktionale Antorderungen ccccee cece ee eeeeeceeeaeeeeeeeeeeeeeeeeeeeaaaaaaaaaaaaaeeeeeeeeeeeees 66 3 2 Nicht funktionale Anforderungen 68 2 3 UOL Cl ene A A E 69 NEE Ee 73 341 Or hoe oo ae 73 3 2 RE E Ee lese 75 3 3 Android E E ee 75 ir DES ON E 76 4 1 7 de gie EE 76 4 2 Logical Arc Vie ARMRORERERERENERERENEN
74. e einzelnen Komponenten zusammenzuf hren und f r den Benutzer sinnvoll benutzbar zu machen Einige der grundlegenden Herausforderungen werden hier kurz beschrieben 3 2 1 Lokalisierung Die Lokalisierung anhand von WLAN Signalen ist noch nicht fertig ausgereift bringt jedoch ein gen gendes Resultat um eine erste Version des IndoorGuides zu erstellen Die Problematik liegt in der Ungenauigkeit des aktuellen Standorts Sie variiert je nach Anzahl Fingerprints und Ac cess Points zwischen 4 10 Meter Radius Ebenfalls hat die Umgebung einen Einfluss auf das Signal und somit auf die Genauigkeit Ein Problem in diesem Zusammenhang liegt darin dass sich die errechnete Position ohne tats chliche Positions nderung immer wieder ndert her umspringt Durch das Springen der aktuellen Position ist es schwierig die POls in der AR Ansicht genau im Bild zu positionieren dies w rde den Benutzer irritieren Mit diesem Problem haben Applikatio nen die mit dem genaueren GPS Signal und gr sseren Distanzen arbeiten weniger zu kamp fen Es muss daher eine Darstellung gew hlt werden die f r den Benutzer trotzdem bersicht lich und intuitiv ist Zudem soll auf der Kartenansicht mit einem Ungenauigkeitsradius um den aktuellen Standort angedeutet werden dass die Position nicht genau ist Eine zus tzliche Problematik bringen POls welche nahe beieinander liegen Falls sie einen zu kleinen Abstand zueinander haben kann nicht mehr eindeutig bestim
75. e ofthe bounding box getGeoPointOfRelative PositionWithLinearlnter Calculates aGeoPoint object based on the parameters polation float float isLocationInBounding Calculates if a provided Location object appears in the bounding Box Location box AngleSensorEvtListener This class is responsible for providing the IndoorGuide with actual measured sensor events An event contains the actual measured x y and z angle value depending on how the user holds the phone These values are necessary for the IndoorGuide to decide which view must be displayed onAccuracy Implements a compass TILT detector Will show a message to the user Changed Sensor int if accuracy is low or no data can be measured at all ANGLE CHANGED ill b t if th le ch is bi onSensorChanged Senso x message will be sent if the angle change is bigger rEvent than 30 degrees Otherwise there would be a bunch of messages sent to the handler which leads into performance lack This class represents a GeoPoint object which is a point in reality with its latitude and longitude Calculates the distance between this and the provided GeoPoint object distanceTo GeoPoint IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 a HSR HOCHSCHULE FUR TECHNIK RAPPERSWIL 87 K ES IndoorGuide4Android This class contains constants and geo methods used in the IndoorGuidegAndroid project distanceKm double double double double Calculates the d
76. ei grosser Anzahl POIs schaffen Das Filtern nach Geb u de oder Stockwerk ist jedoch nur m glich wenn der IndoorWPS erweitert w rde Dort m sste zur zur ckgegebenen Location noch die Geb ude und Stockwerkinformation mitgegeben werden 6 3 4 Wegdistanzen berechnen Momentan wird nur die Luftdistanz zu einem POI berechnet Eine Weiterentwicklung w re das Berechnen der wirklichen Wegdistanz Dies w rde wahrscheinlich das Implementieren von Rou teninformationen bedingen 6 3 5 POls vom Handy aus erfassen F r den Anbieter w re es eine angenehme Sache wenn er vor Ort beim POI diesen erfassen und auf den Server laden k nnte Evt k nnte dies mit der Funktion verbunden werden an die ser Stelle direkt auch einen Fingerprint zu setzten 6 3 6 POls mit Notizen versehen Damit POls noch interaktiver genutzt werden k nnten w re das anbringen von Notizen eine spannende Weiterentwicklung Dies w rde z B in einem Museum erm glichen dass die Besu cher Notizen mit ihren Kommentaren hinterlassen k nnten IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 5 Ke HOCHSCHULE F R TECHNIK RAPPERSWIL Si E 4Android 6 4 Pers nliche Berichte 6 4 1 Christoph Egger Noch vor Antritt der Arbeit war ich etwas skeptisch gegen ber dem Themenbereich dieser Ba chelorarbeit Dies vor allem bez glich der mir unbekannten Augmented Reality Technik und dem georeferenzieren beziehungsweise der Verwaltung von Geodaten Die Erfahrung mi
77. eiterentwicklung und Wartung des Codes vereinfacht wird wurde die standard m ssige Java Formatierung von Eclipse verwendet Ebenfalls wurde auf einheitliche und ver st ndliche Namensgebung geachtet 8 Arbeitsumgebung Siehe Kapitel 1 3 Rahmenbedingungen im Teil I IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 R ki HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 65 fa Sa IndoorGuide4 Android TEIL II SW Projektdokumentation IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL indoorGuide4 Android 1 Vision Siehe Kapitel 2 Vision und Ziele im Teil I 2 Anforderungsspezifikation 2 1 Funktionale Anforderungen 2 1 1 Foi Foz Foz Fo4 Fos Fo6 FO7 Fo8 Fog F10 F11 F12 F13 F14 F15 F16 F17 F18 bersicht Die Position des Benutzers soll zuverl ssig bestimmt werden Ein Place soll ber eine Suchfunktion gefunden werden Daten sollen im Voraus heruntergeladen werden k nnen Die heruntergeladenen Daten sollen persistiert werden Beim Starten der Applikation soll der zuletzt geladene Place ge ffnet werden Zwischen AR und Kartenansicht soll gewechselt werden k nnen POls sollen im Kamerabild sowie mittels Radar und auf der Karte ange zeigt werden Die POls sollen aufgrund ihrer realen Position angezeigt werden POls sollen gefiltert angezeigt werden Die Kartenansicht soll einen Plan des Geb udegrundrisses
78. ell wie m glich zu bewerkstelligen 2 sein 4 1 2 XML rm 0 Overhead Der Overhead bei XML ist sehr gross XML ist einfach zu verstehen und bei den Komplexit t Entwicklern des IndoorGuides schon gut be 1 2 2 kannt Das Parsen von XML ist bestens bekannt je Funktionalit t BR doch auch relativ aufw ndig und langsam IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 HSR HOCHSCHULE FUR TECHNIK RAPPERSWIL 27 E E indoorGuide4 Android 4 1 3 JSON Ce ns e Overhead existiert bei JSON praktisch nicht Overhead und ist deshalb sehr gut geeignet 3 2 JSON wurde von den Entwicklern noch nie Komplexitat verwendet Dies sollte jedoch nicht zu viel 1 1 1 Zeit furs Technologiestudium beanspruchen JSON ist kompakt und schnell das Parsen ist Funktionalitat Sen ebenfalls weniger aufw ndig 4 1 4 Schlussfolgerung Die Wahl f llt auf JSON Obwohl sich das Entwicklerteam damit noch nicht auskennt Uberwie gen die Vorteile Da bei dieser Applikation vor allem Wert auf die Performance und ein minima ler Datentransfer gelegt werden soll eignet sich diese Technologie am besten 4 2 Geonames Provider Es gilt zu evaluieren mittels welches Services das Geoname Lookup Auffinden einer Koordina te zu einem Namen realisiert werden soll Dazu wurden drei Varianten eruiert GeoNames org OpenStreetMap OSM und OpenStreetMap in a Box OSM in a Box 4 2 1 Kriterienkatalog und Gewichtung Gewicht 1 3 Krite
79. en CD zu finden IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Ke HOCHSCHULE F R TECHNIK RAPPERSWIL Si E 4Android 3 Projektvorgehen 3 1 Agiles Vorgehen Die Aufgabenstellung f r dieses Projekt verlangt eine agile Vorgehensweise Dies aus dem Grund einen flexiblen und schlanken Softwareentwicklungsprozess zu benutzen welcher eine lauff hige Software gegen ber umfangreicher Dokumentation bevorzugt Es soll mehr auf die zu erreichenden Ziele fokussiert werden Als Grundlage daf r gelten das agile Manifest und die 12 Prinzipien dahinter 3 2 Scrum Aus den verschiedenen agilen Vorgehensmodellen wurde f r dieses Projekt Scrum ausgew hlt Dieses Modell eignet sich besonders gut weil es das Ziel verfolgt durch Reduzierung von unn tigem Management Ballast m glichst schnell zu ausf hrbarer Software zu kommen Mit Hilfe von lauff higen Zwischenversionen wird Feedback beim Auftraggeber eingeholt welches in die Weiterentwicklung mit einbezogen wird Ebenfalls eignet sich diese Methode da bei Beginn des Projektes noch nicht alle Details und Features welche zu implementieren sind bekannt waren Die Iterationen werden bei Scrum Sprints genannt Die Sprints werden in diesem Projekt auf zwei Wochen ausgelegt Zu Beginn eines Sprints werden die am h chsten Priorisierten Features aus dem Product Backlog dem Sprint zugeordnet Die grob beschriebenen Features des Product Backlog werden feiner ausgearbeitet und im Sprint Back
80. en vom Benutzer wenn Online ggf vorg ngig heruntergeladen z B mittels Angabe des Geb ude oder Ortsnamen Suche Die Arbeitsweise ist agil wo sinnvoll mit Unit Tests Es wird Wert auf ausgetestete Software und einfache Installation gelegt F r die erfolgreich abgeschlossene Arbeit werden 12 ECTS angerechnet d h es wird eine Arbeitsleistung von mind 360 Stunden pro Person erwartet Randbedingungen Infrastruktur Termine und Beurteilung e Randbedingungen Hardware OS o Android Hardware o OS Android Java e Software o Java SE gem Android o ANT Eclipse IDE e Termine und Beurteilung gem ss Angaben auf www i hsr ch IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 CZ HSR HOCHSCHULE F R TECHNIK RAPPERSWIL a E indoorGuide4 Android 16 1 3 Rahmenbedingungen 1 3 12 Administratives Terminbeschreibung 22 02 2010 Beginn der BA 11 06 2010 Abgabe Abstract amp Ao Poster an Betreuer 18 06 2010 Abgabe des Berichts an Betreuer 12 00 18 06 2010 l l ES Abgabe des Ao Posters im Studiensekretariat 6 113 25 06 2010 Prasentationen HSR Forum 01 07 2010 11 00 M ndliche BA Pr fung 1 3 2 Devices Hardware Arbeitsplatzrechner Prozessor Intel Core 2 Duo E6750 2 66 GHz Arbeitsspeicher 3 00 GB Betriebssystem Windows XP Professional SP3 HTC Nexus One Google Phone Prozessor Qualcomm Snapdragon OSD8250 1 GHz en GSM UMTS GPRS Klasse 10 EDGE Klasse 10 HSDPA 7 2 Mbps HS
81. ende Tags hinzu key gt value Beispiel e name gt HSR Geb ude 1 e type gt building Markieren Sie alle POIs die sich in einem Gebau de befinden Diese Nodes sollten nun alle rot markiert sein achten Sie darauf dass NUR die POls ausgew hlt wurden Suchen und w hlen Sie nun die passende Relation die sich in der Liste mit Relations befinden sollte Klicken Sie auf Open an editor for selected relation BER Sie sehen die ausgew hlten POls auf der rechten Seite unter Selection Diese k nnen Sie nun auf die linke Seite transferieren Somit sind die POIs dieser Relation hinzugef gt Um nun die erstellten Daten auf OSM verf gbar zu machen m ssen Sie hochgeladen werden Klicken Sie dazu auf File Upload data Nun sollten Sie alle nderungen sehen die bermit telt werden Kontrollieren Sie diese bitte sorgf l tig Geben Sie noch einen kurzen Kommentar ber die nderung ab und klicken Sie dann auf Upload Changes Wenn Sie kontrollieren wollen ob die Daten rich tig bermittelt wurden k nnen Sie diese auf www openstreetmap org anschauen 7 4 Tutorial zur Fingerprint amp Map Erfassung Die Tutorials zur Erfassung von neuen Fingerprints und Maps finden Sie auf der IndoorWPS Projektwebsite http dev ifs hsr ch indoorwps IG4A2 Bericht vertraulich docx Version 1 8 bei 4Android Settings Tags of new changeset Upload all changes in one request Provide a br
82. er Textform zum Zweck des Datenaustauschs zwischen Anwendungen Keyhole Markup Language ist eine Auszeichnungssprache zur Beschreibung von Geodaten fur die Client Komponenten der Programme Google Earth und Google Maps Bezeichnet die geographische Breite einer Position auf der Erde Stellt Ihre aktuelle Position dar Bezeichnet die geographische Lange einer Position auf der Erde Smartphones oder allgemein Computer haben einen beschrank ten Adressraum sogenanntes Memory wird dieser Uberbean sprucht kommt es zu Absturzen sprich Memory Leaks Ist ein Open Source Dienst der eigene Standards entwickelt und eine immer gr ssere Community erreicht Der Dienst georefe renziert die ganze Welt Ist ein Projekt der HSR es spiegelt samtliche Daten von OSM und besch ftigt sich damit diese Daten in ein fein strukturiertes Da tenbankmodel zu mappen Bezeichnet die zus tzlichen Daten die nebst den Nutzdaten im selben Stream ausgetauscht werden m ssen Ist das einlesen von Datenaustausch Formaten wie XML Dabei werden aus den Textstrukturen wieder Objekte generiert Bezeichnet einen Ort zum Beispiel Rapperswil Dabei handelt es sich um interessante Punkte die sich an einem geografischen Ort befinden Plain Old Java Object bezeichnet ein simples Java Objekt das mehrheitlich nur Getter amp Setter Methoden besitzt Version 1 8 18 06 2010 BY a HOCHSCHULE FUR TECHNIK RAPPERSWIL Product Owner Progress Dialog OR Code
83. ern Der Benutzer soll den Place ausw hlen k nnen von dem er die Daten herunterladen will Dazu soll eine Suchfunktion implementiert werden mit der nach Orten und POls z B Hochschule Rapperswil gesucht werden kann Eines der Konzepte des ndoorGuides geht davon aus dass der Benutzer nicht perma nent mit dem Internet verbunden ist Aus diesem Grund muss es m glich sein im Vor aus Daten Uber den gew nschten Place herunterzuladen Es soll also von zu Hause aus nach einem Place gesucht werden und die Daten dazu heruntergeladen werden k n nen Die heruntergeladenen Daten sollen auf dem Ger t persistent gespeichert werden Bei einem erneuten Applikationsstart sollen die Daten nicht neu heruntergeladen werden m ssen Beim Starten des ndoorGuides soll der zuletzt geladene Place erscheinen Der Zustand beim beenden soll also persistiert werden Der IndoorGuide soll die F higkeit haben auf eine intelligente Art und Weise zwischen der AR und der Kartenansicht zu wechseln Realisiert werden soll dies mittels der In formationen des internen Winkelsensors Es soll eine M glichkeit gefunden werden die je nach Neigung des Handys die Ansicht wechselt Falls das Handy horizontal liegt soll die Kartenansicht und im gegenteiligen Fall die AR Ansicht angezeigt werden Der IndoorGuide soll aufgrund der von ihm ermittelten Daten die POls stetig in der AR und der Kartenansicht anzeigen k nnen Dabei sollen diese auf eine bersichtliche und
84. ests zum IndoorWPS Community Server sehen wie folgt aus Request f r Fingerprints Latitude Longitude Radius in km http labs geometa info indoorwps rest fingerprint search 47 222803 8 817025 0 1 Request f r Maps Latitude Longitude http labs geometa info indoorwps rest geomap search 47 222803 8 817025 5 1 4 Trennung von Code und Layout Das Layout wurde vom eigentlichen Code getrennt Es ist in XML Files definiert und wird jeweils beim Start eines Activitys als Ressource geholt und eingebunden Die ContentView muss jeweils in der onCreate Methode gesetzt werden Wichtig zu wissen ist dass nur im G l tigkeitsbereich dieser Methode Ressourcen z B Views aus der ContentView geholt werden k nnen Danach ist ein Zugriff darauf nicht mehr m glich Eine Ressource wird wie folgt geholt MapView mapView MapView findViewById R id map view Alle Farben und Strings welche in der Applikation verwendet werden sind in ein externes XML ausgelagert colors xml und strings xml Die Bilder sind alle im Ordner drawable hdpi zu finden IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 E ge HOCHSCHULE F R TECHNIK RAPPERSWIL Si E 4Android 5 2 Entscheidungen amp Knackpunkte 5 2 1 Kartenauswahl Eine wichtige Entscheidung war wie wir das Ausw hlen der korrekten Karte dem Benutzer er m glichen Der offensichtliche Ansatz w re hier anhand der errechneten Position die korrekte Karte zu laden Diesem
85. et werden type building Obligatorischer Tag welcher bei allen Rela tionen zwingend gesetzt werden muss IG4A2 Bericht vertraulich docx Version 1 8 HSR Geb ude 1 building 18 06 2010 H HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 74 ES E 4Android Beispiel eines solchen POls SEET user ageiter visible true version 4 lee AVC 2229968 len No 2 es gt lt tag k name v 1 258 gt lt tag k desceripriom v Glacsroom 157537 gt lt tag k indoor v yes gt lt tag k level v 2 gt lt tag k website vnete wiki Wer cl Suerankellller wiki coi indeorGuide4Android2 77 eG k imecre ure v http upload wikimedia org wikipedia commons 8 86 HSR See elle 280 0 gt Gee EE v http www youtube com watch v 0SQOlsLzK4qs amp amp NR 1 gt EE E EE MEET musste dowilloael sake 2007 tx musicgate _pil 5Bg0 5D download amp samp plus amp amp next gt lt node gt Beispiel einer solchen Relation lt relavriom 1d 7559067 eameseaemp 7201700412770 87 56 2 2727 edel version 1 gt lt tag k name v HSR GebAuude 1 gt lt eag E EE be eelere lt member type node ref 411729126 lt member type node ref 411729127 lt member type node ref 411729129 lt member type node ref 411729131 lt member type node ref 411729132 lt member type node ref 411729134 lt member type node ref 411729141 lt ice ll ac lom gt IG4A2 Be
86. float double GeoPoint toPixels GeoPoint Point Point toPixels GeoPoint double Point Point toPixels GeoPoint Point boolean Point MapView mapBitmap Bitmap null bb BoundingBoxE6 null touchDownX int 0 touchDownY int 0 overlays List lt OpenStreetMapViewOverlay gt readOnly gestDetector GestureDetector onDraw Canvas void onLongPress MotionEvent void onSingleTapUp MotionEvent boolean setMapData MapData void getProjection MapViewProjection recycleBitmap void adapter ArrayAdapter lt MapData gt location Location MapView Projection ListActivity ListView MapListView PlaceListView viewWidth int mapManager MapManager placeManager PlaceManager CONTEXTMENU_ CHOOSE int 1 readOnly CONTEXTMENU_REFRESH int 2 readOnly CONTEXTMENU_DELETE int 3 readOnly onCreate Bundle void _setLocationListAdapter void PlaceListView Context AttributeSet setPlaceListAdapter void RadarView viewWidth int viewHeight int midpointX float midpointY float orientation double 0 currentLocationLongitude double currentLocationLatitude double poiList List lt PoiData gt new ArrayList lt P onDraw Canvas void drawRadarGrid Canvas void drawPois Canvas void drawCompass Canvas void drawCircle Canvas void setLocation Location void onAccuracyChanged Sensor int void onSensorChanged SensorEvent ListView PoiListView poiList
87. formati onen dazu Weitere Details sollen innerhalb der Arbeit erarbeitet werden Wichtiger Be standteil der Arbeit ist auch der Entwurf von stimmigen Bildschirmdialogen Zitat der originalen Aufgabenstellung f r die Bachelorarbeit Autor Stefan Keller IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 14 BY i HOCHSCHULE FUR TECHNIK RAPPERSWIL 15 Si J 4 Android Folgende Lieferdokumente sollen erstellt werden deutsch wo nichts angegeben Android Applikation User Interface englisch Bedienungsanleitung ist nicht n tig Vollst ndiger compilier bereiter Sourcecode englisch sowie als Download gekenn zeichnetes Zip File mit ausf hrbarem Bytecode Installationsanleitung falls sinnvoll englisch Technischer Bericht deutsch und SW Engineering Dokumentation z T englisch Allf llige Dokumente gem ss Vorgaben der Abt I Plakat Abstract deutsch Dokumentierte Demo im Web stichwortartig bebildert ggf Video Hinweise e Es wird in diesem Prototyp ein Not Always Online Betrieb angenommen was die Re alisierung eines Cachings bedingt Der Positionierungsdienst f r indoor basiert auf IndoorWPS einem anderen HSR Forschungsprojekt das auf Basis von Wifi Signalen arbeitet Es ist abzukl ren inwie fern sich ohne grossen Aufwand auch das eingebaute GPS einbinden l sst Bei der Wi fi Positionierung ist mit ungenauen umherspringenden Koordinaten zu rechnen Die POls und Geb udepl ne werd
88. gew nschte Destination gefunden kann er diese anklicken worauf der IndoorGuide den UCoz get POIs UCo8 get Maps und UCoog get Fingerprints startet Um die Daten in der lokalen Datenbank zu speichern f hrt der IndoorGuide UCos CRUD Data aus Beim Anzeigen und ffnen von schon gespeicherten Places f hrt der IndoorGuide den UCos get Data aus show AR View Vorbedingung Die Augmented Reality Ansicht kann vom Benutzer jederzeit angezeigt werden indem er das Handy senkrecht h lt Falls in seiner Umgebung geladene POls vorhanden sind werden diese angezeigt Ansonsten sieht der Benutzer eine leere Liste und einen leeren Radar Die POls werden ber den UCos CRUD Data beschafft F r die Funktionalit t dieses Use Cases ist er auf den UCo6 calculate Location angewiesen welcher ihm permanent die aktuelle Position anhand der Messungen von IndoorWPS oder GPS liefert show Map View Vorbedingung Die Kartenansicht kann vom Benutzer jederzeit angezeigt werden indem er das Handy hori zontal h lt Falls in seiner Umgebung POls vorhanden sind werden diese auf der Karte ange zeigt Ansonsten sieht der Benutzer eine leere Karte oder ein Standardbild wenn keine Karte vorhanden ist Die POIs werden ber den UCos CRUD Data beschafft F r die Funktionalit t dieses Use Cases ist er auf den UCo6 get Location angewiesen welcher ihm permanent die aktuelle Position anhand der Messungen von ndoorWPS oder GPS liefert IG4A2
89. gewissen Umkreis befinden sollen durch Anzeige im Kamerabild und Positionierung in einem Radar den Benutzer unterst tzen sich in der Umgebung zurecht zufinden Wird das Handy horizontal gehalten soll das Kamerabild durch eine Karte ersetzt werden die den Grundriss des entsprechenden Geb udes mit den enthaltenen POls und der aktuellen Position anzeigt Der momentane Hype um AR ist in der Mobile Community gross Dies soll ausgenutzt werden um die bestehenden Applikationen mit einer Indoor Anwendung zu erg nzen welche noch einzigartig im AR Bereich ist Der IndoorGuidegAndroid hat sein Einsatzgebiet vor allem an Orten an denen kein GPS Signal empfangen werden kann Dies soll anhand von WLAN Lokalisierung realisiert werden bei dem anhand von Signalen von mehreren Wireless Access Points der aktuelle Standort berechnet werden kann Im Folgenden werden kurz einige realistische Einsatzm glichkeiten vorgestellt 2 1 Campus Da sich das Finden von einem gewissen H rsaal bei einem gr sseren Campus zum Beispiel ei ner Fachhochschule oder einer Universit t als schwierig erweisen kann w rde der IndoorGuide dem Studierenden unter die Arme greifen Zudem g be es die M glichkeit n tzliche Informati onen wie beispielsweise der Men plan der Mensa zur Verf gung zu stellen 2 2 Museum In einem Museum k nnten Ausstellungsst cke als POIs markiert werden So ware es m glich anhand der Karte einen berblick ber das Museum zu erlangen
90. gleichen mit den Werten in der Daten bank gewisse Toleranz um berhaupt einen Treffer zu bekommen Dadurch kann die aktuelle Position nur vermutet werden Um ein herumspringen der aktuellen Position zu vermindern wird die Position des Ger ts durch eine Mittelung ber mehrere Berechnungen noch weiter verfeinert Als Resultat wird die Koordinate der errechneten Position zur ckgegeben 5 1 1 2 Integration in IndoorGuide4Android Vom IndoorWPS Projekt wurden zwei Libraries verwendet IndoorWPSLib beinhaltet die Hauptfunktionalitat vom IndoorWPS IndoorWPSAndroid beinhaltet Funktionalit t die auf die Android Plattform zugeschnitten ist Datenbank WLAN Service usw Diese beiden Libra ries wurden als Java Archive JAR File ins IndoorGuide4Android Projekt importiert Es wurde eine Klasse LocationProvider erzeugt welche die Schnittstelle zum IndoorWPS darstellt Dort werden die Fingerprint Datenbank und der WlanLocator erstellt Der Loca tionProvider greift dabei auf Methoden vom IndoorWPS zu Dies w re unter anderem 10 adFingerprints latitude longitude radiusInKm und getAveragedLo cation Zudem wird die Methode getStatus auf dem WlanLocator aufgerufen um den Status der Resultate zu erfahren ob veraltet oder neu und dementsprechend zu rea gieren 5 1 2 Requests zum OSM in a Box Server Die Anfragen zum OSM in a Box Server werden ber WFS Web Feature Service gemacht Dieser Service ist speziell f r Geodaten gemacht
91. his package shows the business classes They are the classes which are used from higher level classes and deal with lower level classes They manage the providing of the data needed by the application class Class Model OSM_SERVER String http sinv 56 readOnly client HttpRequester new HttpRequester xmlHandler MapRequestXmIParser downloadPlaces String ArrayList lt PlaceData gt downloadMaps double double ArrayList lt MapData gt parseMapDataXML String void getByteArrayOfBitmap MapData byte dataGateway DataProvider dialogHandler Handler activityHandler Handler loadPois void DataGateway OSM_POI_REQUEST String wfs request ge readOnly OSM_POI_REQUEST_BOUNDINGBOX String amp BBOX readOnly OSM_PLACE_SEARCH_REQUEST String wfs request ge readOnly OSM_POI_SEARCH_REQUEST String wfs request ge readOnly downloadPois double double double double ArrayList lt PoiData gt LocationProv ider gpsLocation android location Location STATUS_GPS int 1 readOnly locProv STATUS_WLAN int 2 readOnly loadAlllnformation void STATUS_NOTHING int 3 readOnly loadFingerprints void GPS _ACCURACY int 15 readOnly loadMaps void loadFingerprints double double int void finalizeMapList ArrayList lt MapData gt void getLocation boolean Location savePlace void getStatus int Bild 29 Pack
92. hmen sich die Ungenauigkeit be finden kann Die gelben Symbole 2 kennzeichnen die POIs POI Auswahl Dr cken Sie auf einen POL um dessen Informationen anzuzeigen Kartenwechsel Wenn Sie sich z B in ein anderes Stockwerk begeben und die Karte nicht mehr stimmt k nnen Sie mit langem Dr cken auf den Display die richtige Karte laden IG4A2 Bericht vertraulich docx Version 1 8 gt 4Android Available Maps 18 06 2010 119 Kei HOCHSCHULE F R TECHNIK RAPPERSWIL POI Informationen anzeigen Einstellungen machen Wenn Sie ein POI angew hlt haben ffnet sich ein neues Fenster in dem Sie die Informationen zu diesem POI finden Wenn l ngere Beschreibungen keinen Platz haben k nnen Sie diese scrollen Die Buttons im unteren Bereich des Fensters sind grau wenn kein Link hinterlegt ist und gelb wenn sie nutz bar sind Wenn Sie darauf dr cken ffnet sich das Browserfenster mit dem entsprechenden Link zum POI Hier noch die Beschreibung der verschiedenen Links e Ei Website e wikipedia I pila im e I Audio Dr cken Sie die Men taste und w hlen Sie Settings aus Hier k nnen Sie nun gewisse Einstellungen vor nehmen e Enable GPS diese Einstellung ist standard m ssig ausgeschaltet Sie muss aktiviert wer den wenn die Lokalisierung auch ber GPS gemacht werden soll Denken Sie auch daran in den Android Einstellungen GPS zu erlauben e Enable radar d
93. ibrary positioning systems this class provides a Location or GPSLocation object Delegates the loading of the Fingerprint objects to the In loadFingerprints double doorWPS library The FingerprintWsClient loads the Fin double int gerprint objects contained in the bounding box calculated from params and saves them to the database This method provides a GPS or a WLAN location object If GPS is getLocation boolean enabled the returned location will be an GPS location thats be cause GPS is more accurate then WLAN positioning Returns the actual status of the LocationProvider STATUS GPS STATUS WLAN STATUS NOTHING getStatus 4 2 3 Package business data 4 2 3 1 Description This package shows the DTOs and their manager classes The DTOs are valid through the whole application and can be accessed from everywhere via the manager classes The DTOs are POJOs and won t be described nearer in this chapter just one thing PlaceData and PoiData implements Serializable because they need to be passed between Ac Civiles IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 E HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 79 E Sa IndoorGuide4Android class Class Model dbHelper DbHelper dbHelper DbHelper dbHelper DbHelper savePlace PlaceData void saveMap MapData SQLiteDatabase void savePoi PoiData SQLiteDatabase void loadPlaceList ArrayList lt PlaceData gt saveMapList ArrayList lt MapData gt
94. ief comment For the changes you are uploading telabon of the rooms in a bulding Open anew changeset 18 06 2010 E HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 123 E E indoorGuide4 Android ANHANG IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Es HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 1 ANHANG Inhalt der CD 1 1 Applikation e IndoorGuidezAndroid apk e Sourcefolder o Workspace o JavaDoc e Bilder 1 2 Dokumentation e Sjitzungsprotokolle e IG4A2 Bericht docx e 1G4A2 Bericht pdf e G4A2 Poster pptx 2 ANHANG Glossar und Abk rzungsverzeichnis IndoorGuide4Android Android Augmented Reality AR Backlog BLOB Bounding Box Dalvik VM DTO Features Fingerprint IG4A2 Bericht vertraulich docx Ist ein Betriebssystem f r mobile Ger te wie Smartphones Wird von der Open Handset Alliance entwickelt Augmented Reality Erweiterte Realit t die computergest tzte Erweiterung der Realit tswahrnehmung H ufig in Form von vi sueller Darstellung von Informationen in Bildern Videos oder Kamerabild Ist ein Teil von Scrum und enth lt die Features der zu entwi ckelnden Applikation Binary Large Object ist eine Variante um Objekte in Datenban ken zu schreiben Es wird dann der Bytewert eines Objekts wie er ist in die Datenbank geschrieben Ist ein Rechteck bestehend aus vier Geographischen Punkten als Ecken Ist die bei Android eingesetzte Virtual Machine
95. iert Leider funktio niert auch dieser Ansatz nicht denn um die Karte verl uft nicht entlang des Grundrisses sondern die Box umspannt die Karte in einem Rechteck Dies folgt daraus dass die Karten mit einer Rotation von o zu Norden ausgerichtet sind georeferenziert Somit k nnen sich Punkte auf den Karten berlagern und es kann wieder nicht mit Sicherheit entschieden werden in wel p i Bild 48 georeferenzierte Karte chem Geb ude sich der Benutzer befindet 7 Gelingt es die Wahl auf ein Gebaude festzulegen muss desweiteren entschieden werden in welchem Stockwerk sich der Benutzer befindet Die Fingerprints enthalten bereits jetzt ein Att ribut floor welches jedoch noch nicht verwendet wird Um automatisch das richtige Stock werk zu w hlen stellt sich das gleiche Problem wie bei den Geb uden was im obigen Bild dar IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 103 Kei HOCHSCHULE F R TECHNIK RAPPERSWIL ES E 4Android gestellt ist Allerdings ist dies im Geb ude noch schwieriger Der IndoorWPS Algorithmus muss folglich noch intelligenter werden Aus all diesen Gr nden haben wir uns beim IndoorGuide4Android f r eine manuelle Auswahl der Karten entschieden Die m glichen Karten werden aufgrund der errechneten Position und der Bounding Boxen der Karten erstellt die sich wie erw hnt Uberlagern k nnen 5 2 2 Memory leaks Dies war ein grosses Thema im sp teren Verlauf unserer Bachelorarbeit A
96. iese Einstellung k nnen Sie deaktivieren wenn Sie den Radar ausblenden wollen e Enable status icon diese Einstellung k nnen Sie deaktivieren wenn Sie das Statussymbol in der AR Ansicht rechts oben ausblenden wollen e Enable status message diese Einstellung k nnen Sie deaktivieren wenn Sie die Mel dungen ber den Wechsel des Lokalisierungs status ausblenden wollen Um die letzten drei Einstellungen aktivieren zu k n nen m ssen Sie das Handy vorsichtig sch tteln Sie k nnen auch einen kurzen Wechsel zwischen AR amp Kartenansicht machen IG4A2 Bericht vertraulich docx Version 1 8 4 Android Enable GPS Enable radar Enable status icon Enable status message 18 06 2010 KM HOCHSCHULE F R TECHNIK RAPPERSWIL 7 3 Tutorial zur POI Erfassung Hier folgt ein kurzes Tutorial f rs Erfassen von POIs Dazu wird der Java Editor JOSM Java gt 4Android OpenStreetMap eingesetzt Nat rlich kann die Erfassung auch ber die OSM Website mit dem Potlatch Editor gemacht werden was jedoch umstandlicher und weniger intiutiv zu bedienen ist JOSM herunterladen und installieren Karte herunterladen Navigation Neuer POI erstellen Tags hinzuf gen JOSM kann ber http josm openstreetmap de heruntergeladen werden Installieren und starten Sie danach das Tool Klicken Sie nun auf File Download from OSM und suchen Sie sich auf der angezeigten K
97. igen Sitzungsraum zu finden Eine weitere Einsatzm glich keit w re das publizieren von interessanten Informationen wenn die Firma einen Tag der offe nen T r veranstaltet 2 5 Einkaufszentrum In einem Einkaufszentrum gibt es oft das Problem die gew nschten L den zu finden oder berhaupt in Erfahrung zu bringen welche L den existieren Hier k nnte der IndoorGuide eine bersicht liefern mit der man sich schneller zurechtfindet Ebenfalls k nnte man Informationen wie beispielsweise ffnungszeiten oder Sonderangebote zu den verschiedenen L den zur Ver f gung stellen 2 6 Bibliothek In Bibliotheken k nnte der IndoorGuide eingesetzt werden um das Finden von Regalen mit be stimmten Genres oder Autoren zu vereinfachen So gibt es noch viele weitere Einsatzm glichkeiten f r den ndoorGuide In dieser Arbeit soll die Grundlage f r einen stabilen und brauchbaren ndoorGuide gelegt werden der dann je nach Anwendungsgebiet weiter ausgebaut werden kann 3 Stand der Technik 3 1 Bestehende L sungsans tze Es gibt bereits einige Applikationen die auf AR setzen Ebenfalls sind L sungen vorhanden die hnlich wie der IndoorGuide aufgebaut sind und hnliche Funktionalit t bieten jedoch f r Out door Szenarien mit GPS konzipiert sind Vier solcher Applikationen werden hier beschrieben und k nnen als Quelle der Inspiration und Ideensuche dienen Zudem wird als f nfter L sungsansatz IndoorWPS beschrieben welcher f r die
98. im Starten der Applika tion soll der zuletzt gela dene Place ge ffnet wer den Zwischen AR und Karten ansicht soll gewechselt werden k nnen IG4A2 Bericht vertraulich docx Die Positionierung des Benutzers wird mit dem IndoorWPS gemacht welcher im jetzigen Ent wicklungsstadium noch eine Ungenauigkeit von 4 10 Metern mit sich bringt Diese konnte durch eine gr ssere Anzahl Fingerprints noch etwas verbessert werden Durch die Berechnung der Position ber den Durchschnitt einer gr sseren Anzahl Messungen konnte erreicht werden dass sie stabiler bleibt weniger herumspringt Es wurden zwei verschiedene Suchfunktionen implementiert Die eine geht auf den Suchbegriff des Benutzers wobei dieser einen Ort oder ein POI z B Hochschule Rapperswil suchen kann Es werden alle Suchresultate des eingegebenen Strings zur ckgeliefert Die andere Suchfunktion sucht automatisch an hand der aktuellen Koordinate ob in der Umge bung Fingerprints POls und Karten vorhanden sind Diese Funktion kann der Benutzer beispiels weise verwenden wenn er an einem Ort ist an dem er weiss dass IndoorGuide Daten vorhanden sind Die Koordinate wird dann normalerweise Uber GPS bezogen Es ist anhand der oben genannten Suchfunktion m glich einen Place im Voraus herunterzuladen und zu speichern Dies erm glicht den Offline Betrieb am Ort an dem der IndoorGuide einge setzt werden soll Um die Daten wie Fingerprints POls Karten und
99. in der N he informieren k nnen Er soll sich auch Hypertext und Multimedia Inhalte zu naheliegenden Objekten anzeigen lassen k nnen dies mittels AR Kamerabild und Karte Hier der Beginn der zwei Szenarien Ein externer Besucher kommt auf dem Campus der HSR an und sucht das Sitzungszimmer 1 227 Er richtet seine Kamera im Hauptgeb ude 1 auf den Kiosk es erscheint eine Infobox mit ffnungszeiten und den in der N he befindlichen R umen Wenn er sein Handy waagerecht h lt erscheint ein Geb udeplan Im zweiten Szenario gibt es eine Job Ausstellung im Hauptgeb ude 1 mit Herstellern St nden Der Ausstellungsbesucher richtet sein Handy auf einen Stand und erh lt Seite von 2 IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Si HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 129 IndoorGuide4Android HER IndoorGuide Android FS10 HOCHSCHULE FUR TECHBIK RAPPERS WIL Informationen dazu Weitere Details sollen innerhalb der Arbeit erarbeitet werden Wichtiger Bestandteil der Arbeit ist auch der Entwurf von stimmigen Bildschirmdialogen Folgende Lieferdokumente sollen erstellt werden deutsch wo nichts angegeben Android Applikation User Interface englisch Bedienungsanleitung ist nicht n tig Vollst ndiger compilier bereiter Sourcecode englisch sowie als Download sekennzeichnetes Zip File mit ausf hrbarem Bytecode a Installationsanleitung falls sinnvoll englisch a Technischer Bericht deutsch
100. istance in kilometers between two points on earth Bearing double double double double Computes the bearing in degrees between two points on earth DialogMessageHandler This class wraps a provided ProgressDialog object for taking control over it and be able to set dialog text and also dismiss the dialog ExceptionAlertDialog This class wraps an exception message and stores it in an alert object which then can be shown ina dialog 4 2 9 Package gui view 4 2 9 1 Description This package contains every view used in the application The views run in the context of an activity There are several types of views e View This is a simple view that can be instanced by an activity e ListView This is a view that must have a list view defined a list can be set through an adapter The view will then display the objects of the list e SurfaceView This type of view gives you the possibility to draw other views on top of it e ListActivity In fact it s an activity that is able to show a list of objects just like the list view but with the additional functionality of an activity MapListView and PlaceListView won t be described because they re really simple list VIEWS IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 CC HSR HOCHSCHULE F R TECHNIK RAPPERSWIL ke 88 IndoorGuide4Android class Class Model viewHeight int MapViewProjection fromPixels float float GeoPoint fromPixels float
101. kann nicht ver wendet werden Mangelnde Soft warequalit t Fehlentwicklung ei nes Kernelements Kontakt mit infizierten Personen vermei den Keine erh hten gesundheitlichen Risiken eingehen Sich regelm ssig nach Wohlbefinden er kundigen R cksicht auf die Meinung des anderen nehmen Sich regelm ssig nach Motivation erkun digen Bei Unzufriedenheit mit gegenw r tigen Aufgaben nach M glichkeit andere Themen zuweisen Ziele eines Sprints reduzieren Qualit t vor Quantit t Redundanz bei Ausfall von Schulrechner kann auf Notebook gewechselt werden Handys sind zwei vorhanden Verwenden von Subversion und Dropbox Daten zus tzlich lokal auf mehreren PCs Keine Massnahme m glich Evaluation durchf hren bei der die Brauchbarkeit der Technologie gut abge kl rt wird Alternativen suchen Testing Reviews und Besprechungen mit Betreuer durchf hren Fundierte Analyse und Besprechung der Kernelemente Feedback von Betreuer einholen Version 1 8 IndoorGuide4 Android Lal c o E U 7 x 50 4 0 60 80 10 100 100 60 30 80 Total Reserve 5 Gewichtung h 20 10 5 2 10 6 15 12 5 0 5 5 5 0 01 0 1 15 9 10 3 5 4 51 6 18 06 2010 CZ HSR HOCHSCHULE F R TECHNIK RAPPERSWIL Si Ei 4 Android 7 Qualitatsmassnahmen 7 1 Sitzungsprotokolle Bei Besprechungen mit dem Betreuer oder externen Kontaktpersonen
102. ktoren abh ngen Zum Beispiel von anderen Applikationen die gestartet sind oder zu grossen Karten die auf dem IndoorWPS Community Server abgelegt sind Die Applikation IndoorGuidegAndroid ist in Sachen Speicherverwaltung auf dem neusten Stand 5 2 3 Wechsel AR Kartenansicht Wir wollten eine innovative Idee f r den Wechsel zwischen der AR und Kartenansicht realisie ren Das Ergebnis war dass wir die Interaktion des Benutzers auf ein Minimum reduzierten und den Wechsel zwischen den Ansichten automatisierten Quelle Tech Blog und Android Dev http ttInews blogspot com 2010 01 attacking memory problems on android html http android developers blogspot com 2009 o1 avoiding memory leaks html IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 104 de HOCHSCHULE F R TECHNIK RAPPERSWIL Si Eg 4 Android Halt der Benutzer das Handy senkrecht erscheint die AR Ansicht Will er sich die Karte anse hen halt er sein Handy waagerecht vor sich hin Wie wir festgestellt haben ist dies das Norm verhalten Kamerahaltung und Haltung einer echten Papierkarte Wir konnten also genau diesen Ablauf mit dem im Handy integrierten Winkelsensor erkennen und die Ansichten auto matisch umschalten Dies tragt existentiell zur angenehmen Benutzung des IndoorGuides bei Als das Feature implementiert war bemerkten wir einen gr sseren Performanceverlust unserer Applikation der uns zu denken gab Auch traten dann sporadisch Heap Ex
103. l m util m view import ch hsr indoorguide4android2 business DataGateway DataProvider LocationProvider r m data use ch hsr indoorguide4android2 db DbHelper eq DbConstants Bild 39 Package diagram IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 be Es HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 94 ES E 4Android 4 3 2 Layer class diagram 4 3 2 1 Description This diagram shows an overview of the application It s divided into 3 layers of abstraction Also shown are the dependencies between the different classes and layers Persistence Represents the lowest layer which stores the POJOs and provides the ap plication with the needed data Problem Domain Represents the manager layer with all the business classes which are re sponsible to make the 3 layers work together correctly View Represents the gui layer on top of the application this layer uses the lower layers to display the data to the user and interact with him Activity Context The activities are logically placed on top of the system They work close to the problem domain and build the environment for the views class Class Model DTOs amp Constants DisplayModus DbConstants IV DataProvider BoundingBoxE6 GeoPoint SearchPlace MapData Persistence PlaceData SQLite database PoiData Bild 40 Layer class diagram IG4A2 Bericht vertraulich docx
104. l Bemerkung zum Testergebnis Funktioniert eigentlich wobei noch keine Progress Dialoge angezeigt werden Anmerkung nach sp teren Test Nun funktioniert auch das Anzeigen eines Progress Dialogs mit 3 Schritten Das Verschieben ruckelt noch muss noch verbessert werden Anmerkung nach sp teren Test Ver schieben funktioniert nun auch gut 112 18 06 2010 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 5 5 6 Release 0 6 ml Testfall Bemerkung zum Testergebnis 20 21 22 23 24 25 26 27 28 29 IG4A2 Bericht vertraulich docx POls werden am korrekten Ort auf der Karte platziert POls k nnen auf der Karte angew hlt werden und die Informationen werden angezeigt Standort wird korrekt angezeigt und ver schiebt sich wenn man sich bewegt GPS kann genutzt werden GPS und IndoorWPS wechseln automa tisch zum besseren Dienst Places werden aufgelistet und k nnen gew hlt aktualisiert und gel scht werden Bei Programmstart wird der zuletzt aktive Place geladen Aktueller Place wird mit GPS automatisch gesucht und unter einem eigenen Namen gespeichert Nur die POls des geladenen Places werden in der Liste angezeigt Progress Dialoge werden bei der Suche und beim Herunterladen angezeigt Version 1 8 IndoorGuide4 Android Das Ausw hlen geht noch nicht so gut dies muss noch verbessert wer den Anmerkung nach sp teren Test An w hlen funktioniert
105. le Rapperswil Uni Z rich usw F r diese Su che wird ein Dienst ben tigt welcher einen Suchbegriff nach einem Ort oder POI entgegen nimmt und die Koordinate dessen zur ckgibt F r diesen Dienst gibt es verschiedene Anbieter GeoNames org OpenStreetMap oder OpenStreetMap in a Box w ren m gliche Anbieter eines solchen Dienstes Die Herausforderung besteht darin den richtigen auszuw hlen wobei die Unterschiede nur klein sind POls Points of Interest sind die wichtigsten Daten in dieser Applikation Dabei sollen diese speziell f r den Gebrauch im Indoor Bereich ausgestattet werden Zudem geht aus der Aufga benstellung hervor dass sie Links zu Multimediainhalten speichern sollen Es soll ein passender Dienst gefunden werden welcher diese Anspr che abdeckt Beispielsweise w re OpenStreet Quelle VisiVis www ifs hsr ch VisiVis 6057 0 html Quelle Computer Vision www technologyreview com computing 22218 page1 IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 24 Ke HOCHSCHULE F R TECHNIK RAPPERSWIL 25 m a A Android Map ein solcher Dienst welcher auch das Speichern von selbst definierten Attributen erlaubt Da dort noch fast kein Gebrauch von Indoor POls gemacht wird m ssten diese neu modelliert werden Da trotz wenigen Einschr nkungen bei der Attributdefinierung ein gewisser Stan dard eingehalten werden soll wird diese Aufgabe einige wichtige Entscheide beinhalten Ein anderer m glicher Diens
106. len Ideen und Vorstellungen berfordern w rde Wir mussten ihn oder uns selbst ab und zu auf den Boden der Realit t zur ckholen Trotzdem fand ich seine kreativen Ideen wertvoll f r dieses Projekt Es freute mich besonders zu sehen wie er sich auch selbst mit dem Thema auseinander setzte und uns viele Hinweise zu hnlichen Applikationen oder Themen schickte Ich denke ein so motivierter und engagierter Betreuer tr gt viel f r eine gelungene Arbeit bei Die Zusammenarbeit mit meinem Teamkolle gen Christoph Egger war ebenfalls gut Wir waren nicht immer gleicher Meinung konnten uns jedoch immer einigen Unsere unterschiedlichen St rken erg nzten sich gut und ich w rde wie der ein Projekt mit ihm zusammen durchf hren In einem Satz zusammengefasst Dieses Projekt forderte mich heraus war lehrreich und ich bin begeistert von dem erreichten Resultat 6 5 Dank An folgende Personen wollen wir unseren Dank f r die Unterst tzung aussprechen Prof Stefan Keller HSR Wir danken Ihnen f r die Unterst tzung w hrend des Projekts Es war angenehm mit Ihnen zusammen zu arbeiten und haben Ihre Gedankenanst sse gesch tzt Reto Senn bitforge AG Vielen Dank f r deine Unterst tzung beim User Interface Wir konn ten deine Ratschl ge jeweils gut in die Arbeit einfliessen lassen Michael Klenk HSR Danke f r deine Hilfe und Flexibilit t beim integrieren der IndoorWPS Library Auch danken wir dir dass du kurzfristige nderungen u
107. llen diese beim F 4 Anw hlen preisgegeben werden Es soll auch die Zusatzinformation der Distanz ange zeigt werden Die POIs sollen mit Links zu Multimediainhalten und Websites versehen werden k n Fas nen Diese sollen im ndoorGuide ge ffnet werden k nnen In der AR Ansicht soll ein Kompass Norden anzeigen um dem Benutzer eine gewisse E Orientierung zu geben Da an den meisten Orten keine Lokalisierung ber WLAN m glich ist soll es m glich F17 sein dort auf GPS zur ckzugreifen Es soll automatisch der beste Dienst GPS WLAN ausgew hlt werden Dem Benutzer soll es m glich sein gewisse Einstellungen in der Applikation selbst F18 vornehmen zu k nnen Zum einen muss sicher GPS zum anderen Elemente im User Interface ausgeschaltet werden k nnen 2 2 Nicht funktionale Anforderungen User Interface Das User Interface soll verst ndlich und effizient zu bedienen sein Der Benutzer soll sich gut zurechtfinden und es sollen die blichen Bedien elemente von Android eingesetzt werden Um dies zu erreichen sollen folgende Punkte beachtet werden NFoa 1 Buttons Listeneintr ge oder Objekte m ssen generell gross genug Sehr hoch sein damit eine zufriedenstellende Benutzbarkeit entsteht 2 Die diversen Abl ufe sollen logisch aufgebaut sein und einen roten Faden bilden Der Benutzer soll nichts suchen m ssen 3 Die Fehlermeldungen oder Informationen des IndoorGuides sollen immer klar verst ndlich und sinnvoll sein
108. log festgehalten W hrend eines Sprints werden t glich kurze Meetings abgehalten damit alle Entwickler den aktuellen Stand des Projekts mitbekommen Nach einem Sprint wird die nutzbare Software w hrend dem Sprint Review dem Product Owner vorgef hrt Schlussendlich wird noch ein team internes Sprint Retrospective durchgef hrt bei welchem sich das Team ber Erfahrungen des vergan genen Sprints und m glichen Verbesserungen des Entwicklungsprozesses reflektiert Dann wird der n chste Sprint geplant und m glicherweise der Product Backlog mit gewonnenen Erkennt nissen und evt neuen Features erg nzt und Uberarbeite 3 Quelle agiles Manifest www agilemanifesto org IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 bk a HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 44 E IndoorGuide4Android ProductBacklog SprintBacklog N e Client prioritized product Features assignedto Working Code Ready features Sprint for Deployment e Estimated by team Time boxed Team Commitment Test Develop Product Backlog Backlog tasks lp Pa SprintPlanning Meeting Daily Scrum Meetings Sprint Review Meeting e Review Product Backlog Donesincelastmeeting e Demo features toall Estimate Sprint Backlog e Plan fortoday Retrospective onthe Sprint e Commit e Roadblocks Accelerators Adjustments Bild 11 Scrum Prozess Quelle www doto com 3 3 ScrumDesk F r die Planung der Sprints wurde die Software ScrumDesk Version 4 5 0 eingeset
109. ls wir die Kartenan sicht implementierten und die ersten Bitmaps generieren wollten ging die Dalvik VM bald ein mal in die Knie java lang OutOfMemoryError bitmap size exceeds VM budget Dieses Problem ist in der Android Community allgemein bekannt und ist teilweise auf einen Bug in den bisherigen Android SDK Versionen zur ckzuf hren dies soll in SDK 2 2 besser werden Jedoch liegen viele Ursachen dieser Exception wohl beim Programmierer selbst Es ist extrem wichtig sauber und ressourcenschonend zu programmieren Das heisst e Keine unn tigen Referenzen bergeben e Referenzen nicht unn tig halten e Bitmaps nur dann erstellen wenn sie gebraucht werden e Bitmaps immer sauber aufr umen bitmap recycle e Wiederverwendete Bitmaps static definieren Der Code wurde nach all diesen von uns ermittelten Regeln angepasst Zu beachten ist dass Android wenn man das Handy kippt die komplette Activity beendet und sie neu startet Dies bietet die gr sste Angriffsfl che f r OutOfMemoryExceptions Es muss also akribisch genau aufger umt werden Eine weitere Handlung die wir vorgenommen haben war das Auslagern der Datenbank auf die SD Karte Dadurch hatten wir uns eine Verbesserung der Situation erhofft da die Datenbank dann nicht im internen Speicher liegt und das System nicht zus tzlich belastet Nach diesen Anpassungen verschwanden praktisch alle Memory Leak Probleme Sollten weite re auftreten kann dies von vielen Fa
110. lt werden Nach dem Ausw hlen eines Places werden die Karten zur Auswahl angezeigt welche beim aktu ellen Standort des Benutzers verf gbar sind Bei spielsweise werden alle Stockwerkkarten des Ge baudes angezeigt in dem sich der Benutzer be findet Eine automatische Auswahl der richtigen Karte ist nicht m glich da momentan noch keine Stockwerkinformation vom IndoorWPS Dienst angeboten wird Version 1 8 18 06 2010 Fi F13 F14 F15 F16 F17 F18 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL Die eigene Position soll in der Kartenansicht ange zeigt werden Die Karte soll sich automa tisch ausrichten POl Informationen sollen angezeigt werden k nnen Multimediainhalte Websi tes eines POls sollen ge ffnet werden k nnen Ein Kompass soll die Rich tung angeben Lokalisierung soll ausser halb des Geb udes mit GPS gemacht werden Der Benutzer soll die Ap plikation nach seinen Be d rfnissen konfigurieren k nnen IG4A2 Bericht vertraulich docx 4Android Die eigene Position wird auf der Karte angezeigt Beim Anzeigen der Karte wird auf diesen Punkt zentriert Danach wird die Karte nicht automa tisch bei Ver nderung des Standorts verschoben da es beim herumspringen der Position zu unru hig und verwirrend wirken w rde Um die eigene Position gibt es einen Ungenauig keitskreis der statisch gesetzt ist Die dynami sche nderung ist noch nicht m glich da die von Ind
111. mt werden welcher POI n her ist Somit muss dies beim Erfassen der POls ber cksichtigt oder beispielsweise mit Bil derkennung optimiert werden In folgendem Bild soll dies verdeutlicht werden Das Handy kann nicht eindeutig anzeigen ob sich der Benutzer nun vor dem M nner oder Frauen WC befindet Doch es wird erkannt dass die Cafeteria und die Telefonkabine weiter entfernt sind als die WCs POI WC M nner Nn Ungenauigkeitsradius 4 10 Meter L Ney IndoorGuide4Android2 Benutzer Bild 9 Lokalisierungsproblematik bei nahen POls IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 23 Kei HOCHSCHULE F R TECHNIK RAPPERSWIL ES E 4Android 3 2 2 Alternativen zur WLAN Lokalisierung F r diese Arbeit ist die externe Komponente IndoorWPS vorgegeben Jedoch darf hier auch auf andere Ans tze der Lokalisierung oder Erkennung von POls hingewiesen werden RFID VisiVis ein Projekt der HSR realisieren eine Lokalisierung anhand von RFID Tags Dort ist jedoch der grosse Nachteil dass diese an den Gegenst nden physikalisch angebracht wer den m ssen Ebenfalls muss der Benutzer dabei ein RFID Empf nger mit sich f hren um die n tigen Informationen zu bekommen Computer Vision Microsoft hat den Weg der Computer Vision Algorithmen eingeschlagen bei der aufgenommene Bilder eines Films oder der Kamera real time analysiert werden Sie werden mit einer Datenbank abgeglichen in der vorg ngig analysierte
112. n In doorGuide seinen W nschen anpassen z B GPS den Radar und die Statusbenachrichtigungen ein bzw auszuschalten Version 1 8 18 06 2010 NFo NFo2 NFo3 NFo4 NFos NFo6 IG4A2 Bericht vertraulich docx HSR HOCHSCHULE FUR TECHNIK RAPPERSWIL User Interface Dokumentation Testing Teamgeist Meetings Code tos 7 4Android Das User Interface wurde durchgehend und sch n gestaltet Die Buttons Listeneintr ge oder sons tigen Objekte k nnen gut ausgew hlt werden sodass eine gute Benutzbarkeit entstand Eben falls sind die Abl ufe logisch und intuitiv zu be dienen Die Fehlermeldungen und sonstigen Mel dungen informieren den Benutzer ber die akti ven Vorg nge oder Probleme Zus tzlich sind die Fehlermeldungen mit Detailinformationen verse hen die dem Entwickler helfen den Fehler zu fin den In der Dokumentation wurden die wesentlichen Entscheidungen und wichtigsten Klassen und Me thoden beschrieben Das automatische JUnit Testing unter Android stellte sich als relativ schwierig heraus da Activi ties nur beschr nkt getestet werden k nnen Die se sind von Benutzeraktionen und Hardwarebe dingten Events abh ngig Wo m glich wurden JUnit Tests gemacht Zudem wurde mit System tests unter verschiedenen Umst nden und Szena rios die Funktionalit t getestet Das Arbeitsklima im Team war angenehm und es wurde in die gleiche Richtung gearbeitet Zudem gab es kei
113. n und Unruhe in die POI Liste und den Radar bringe Erst wenn 15 Mal nacheinander ein anderer Status als active eingetroffen ist gilt IndoorWPS wirklich nicht mehr als verf gbar 5 3 User Interface Implementation 5 3 1 IndoorGuide Activity Beim Starten der Applikation wird das Activity IndoorGuide gleich mit dem zuletzt gewahl ten Place angezeigt Der geladene Place wird zur Information kurz als Text eingeblendet Der IndoorGuide kennt die zwei verschiedenen Ansichten AR und Kartenansicht CameraView Diese Ansicht wird ange 1 267 zeigt wenn das Handy senkrecht wie beim Jet 2m Fotografieren gehalten wird Dabei wird im IP Hintergrund das Kamerabild eingeblendet IF welches dann mit Informationen berlagert e wird Im linken oberen Bereich des Bild schirms ist die Liste mit den POls halbtrans parent eingeblendet Sie ist nach Distanz sortiert Die POIs sind mit Name Beschrei s Bild 49 AR Ansicht bung und Entfernung beschriftet Im rechten unteren Bereich ist ein Radar eingeblendet welcher die POIs in n chster N he anzeigt Der Kompass richtet die POIs korrekt aus und ist als N am Rand des Radars ersichtlich Im rechten oberen Bereich werden Statusinformationen zum aktuellen Location Dienst WLAN GPS keine Location mit einem Icon und beim Wech sel einem eingeblendeten Text angezeigt IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 HSR HOCHSCHULE FUR TECHNIK RAPPERSWIL
114. name for this place OK Cancel Hochschule Rapperswil Hochschule Rapperswil 18 06 2010 118 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL AR Ansicht Kartenansicht POI Liste Im linken oberen Bereich finden Sie die POI Liste welche nach Distanz zu Ihrem aktuellen Standort sortiert ist Dr cken Sie auf ein POL um dessen Infor mationen anzuzeigen Radar Im rechten unteren Bereich finden Sie den Ra dar welcher die POls aus unmittelbarer Umgebung anzeigt Dabei sind die POIs in Blickrichtung oben an gezeigt Status In der rechten oberen Ecke befindet sich das Statussymbol Dieses kann drei Zust nde annehmen e A No localization possible Ihre Position kann nicht bestimmt werden Entweder kann die WLAN Lokalisierung an diesem Ort nicht gemacht werden das WLAN ist ausgeschaltet oder es besteht keine GPS Verbindung Kd Localization with WLAN Die Lokalisie rung wird ber WLAN gemacht e EI Localization with GPS Die Lokalisierung wird ber GPS gemacht Kartenauswahl Beim ersten Wechseln in die Karten ansicht wird angezeigt dass eine Karte geladen wer den soll Dr cken Sie dazu lange auf den Bildschirm und w hlen Sie eine Karte aus falls eine an Ihrem ak tuellen Standort verf gbar ist Karte Die Karte wird an Ihren aktuellen Standort zent riert Ihr Standort wird mit dem gr nen Android m gekennzeichnet Der blaue Kreis um Ihren Standort zeigt in welchem Ra
115. nd ist Ebenfalls m ssen gen gend Fingerprints erfasst werden Schliesslich m ssen noch die POls erfasst und die Karten auf den Server geladen werden Nach dieser Arbeit wird der IndoorGui dea Android einen Mehrwert f r grosse und komplexe Geb ude bringen 6 2 Zielerreichung In folgender Aufz hlung werden r ckblickend die funktionalen und nicht funktionalen Anforde rungen betrachtet und deren Zielerreichung in einem kurzen Resultatbericht beschrieben Fast alle Anforderungen konnten erf llt werden die niedrig priorisierte Anforderung F13 wurde aus Zeitgr nden zur ckgestellt und drei Anforderungen Fog F11 F12 konnten wegen fehlender Funktionalit t beim IndoorWPS nicht vollst ndig jedoch zufriedenstellend erf llt werden Die nicht funktionale Anforderung NFo3 konnte aus technischen Gr nden abh ngig von der Android Plattform nur teilweise erf llt werden Die funktionalen und nicht funktionalen Anfor derungen sind im Kapitel 2 Anforderungsspezifikation im Teil Ill zu finden IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 4 Android k mp Anforderung Resultat Fo Fo2 Foz Fo4 Fos Fo6 Die Position des Benutzers soll zuverlassig bestimmt werden Ein Place soll Uber eine Suchfunktion gefunden werden Daten sollen im Voraus heruntergeladen werden k nnen Die heruntergeladenen Daten sollen persistiert werden Be
116. nd W nsche ernst genommen und umgesetzt hast Andreas Meier amp Joram Zimmermann HSR Studenten Danke f r eure Unterst tzung beim OSM in a Box Projekt Wir waren froh dass wir ein Mitspracherecht bei der Datenstruktur f r die Indoor POls hatten und dass ihr dies so umsetzen konntet Robert Geiter geiterkonzept Vielen Dank f r das super Logo welches du uns kreiert hast Es gef llt uns sehr und macht einen professionellen Eindruck IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 ki HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 41 fa Sa indoorGuide4 Android TEIL Il Projektmanagement IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 E HSR y HOCHSCHULE F R TECHNIK RAPPERSWIL 42 WR IndoorGuide4Android 1 Projektorganisation Herr Stefan Keller HSR vertraulich Auftraggeber und Betreuer Herr Reto Senn bitforge AG vertraulich Externer Projektberater Mitarbeiter des IFS Entwickler der Herr Michael Klenk HSR vertraulich bone Livan Student Entwickler des Herr Christoph Egger vertraulich EE ne en Student Scrum Master Entwickler des IndoorGuide4Android Die Studierenden teilen sich die Arbeiten gleichm ssig untereinander auf Beide sind jeweils Uber die Arbeiten des anderen informiert und kennen die Funktionsweise sowie den Code Dies erm glicht bei Ausfall eines Studierenden dass der andere seine Arbeiten weiterf hren kann Der Scrum Master ist f r die Projektplanung Aufgabenverteil
117. nding box 4 4 5 SSD 05 download maps sd Use Case Model i Su finalizeM We T getByteArrayOfBitmap byte arseMapDataXM L xml Gr apData map mania DataGateway HitpRequester MapRequestXmlParse MapManager downloadMaps place List lt MapData gt client executeReque xml l l l l l l l l e l st mapString l parse xml getMapList ListcMapData gt saveMapList mapList save ToDatabase Ss en ee ee 4 4 5 1 Description Bild 45 SSDos5 download maps This sequence diagram shows the program flow for downloading the maps from the IndoorWPS Community Server Based on the provided places all the maps near to it will be downloaded First just the XML with the available maps is parsed it doesn t yet contain the effective map graphic but all the meta information In the finalizeMapList method finally the map graphic is downloaded and will be saved as BLOB to the database IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Ke HOCHSCHULE F R TECHNIK RAPPERSWIL 4 4 6 SSD 06 automatically search place 99 4Android sd Use Case Model Activity Places automaticaly search place onOptionsitemSelected Menultem item searchAndLoadCurrentPlace l l IndoorWPS li WlanLocator LocationProvider start st
118. ne gr sseren Auseinandersetzungen was die Arbeitsaufteilung oder die Entscheidun gen anbelangt Es wurden regelm ssig Meetings mit dem Be treuer durchgef hrt bei denen er auf den aktu ellsten Stand gebracht wurde und seine W nsche einbringen konnte Zudem konnten wertvolle In puts geholt werden Der Code sollte verst ndlich geschrieben sein Zudem wurden komplizierte Stellen mit Kom mentaren versehen Der ganze Code ist mit Java Doc in Englisch dokumentiert worden Version 1 8 18 06 2010 Kei HOCHSCHULE F R TECHNIK RAPPERSWIL EEE 4Android 6 3 Ausblick Weiterentwicklung Der IndoorGuidegAndroid kann mit dem jetzigen Entwicklungsstand ohne weiteres verwendet werden Trotzdem gibt es einige M glichkeiten zur Weiterentwicklung Diese werden im Kapi tel 6 Resultate und Weiterentwicklung im Teil III ausf hrlich erl utert Hier nur eine kurze Auflistung der weiteren M glichkeiten 6 3 1 Genauigkeitsangabe Dem Benutzer k nnte angezeigt werden wie genau seine Lokalisierung gesch tzt wird Dies ware bei GPS kein Problem bei IndoorWPS jedoch noch in Entwicklung 6 3 2 Fingerprints anzeigen Ein Feature fur den Anbieter eines IndoorGuides ware wenn man auf der Karte die Fingerprints sichtbar machen k nnte Dies w rde das Erfassen von Fingerprints unterst tzen 6 3 3 POlsfiltern Dem Benutzer k nnte die M glichkeit angeboten werden die POl Liste zu filtern Eine solche Weiterentwicklung w rde bersicht b
119. nen rtre reenn 109 BIO SSL EXCEL ION WE 109 IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 12 E HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 13 Si E indoorGuide4 Android TEIL Technischer Bericht IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 MY io HOCHSCHULE FUR TECHNIK RAPPERSWIL ES E 4Android 1 Einf hrung 1 1 Problemstellung Die heutige Welt ist sehr stark technisiert und sucht immer weiter nach neuen technischen M glichkeiten um dem Benutzer noch mehr Komfort zu bieten Ortsbestimmung und Naviga tion ist bei Apps f r Mobiledevices nicht mehr wegzudenken Augmented Reality AR steht f r eine zukunftsweisende Technik die immer mehr Einzug in die Welt der Mobiledevices nimmt Beispiele neuer Mobile Apps zeigen dass sich Entwickler immer h ufiger dieser neuen Technologie bedienen Kombiniert mit der Lokalisierung mittels GPS k nnen daraus sehr attraktive und praktische Applikationen erstellt werden GPS hat aber auch ganz klar seine Grenzen Die Ortung bricht innerhalb eines Geb udes ab Dass jedoch eine Lokalisierung kombiniert mit AR Funktionalit t auch innerhalb von einem Geb ude funktionieren kann soll diese Arbeit aufzeigen 1 2 Aufgabenstellung Einf hrung Augmented Reality AR ist eine neue Entwicklung die auf Mobiles Phones bzw Smartphones besonders zur Geltung kommt Dabei wird das Kamerabild mit kontextab h ngigen Informationen berlagert beispielsweise
120. ng gt 7 a ES description lt Strina gt W D g Wa 2 indoor yes Oo y L O O ie C level lt String gt website lt URL gt wikipedia lt URL gt image_url lt URL gt Info Tags video_url lt URL gt audio_url lt URL gt Obligatorischer Tag f r die Benennung des POIs Empfohlener Tag f r die Beschreibung des POIs Obligatorischer Tag der den POI als Indoor POI bezeichnet Ohne diesen Tag w rde der POI den Weg in den IndoorGuide nicht finden Obligatorischer Tag der das Stock werk beschreibt in welcher der POI liegt Optionaler Tag f r das Speichern eines Links zu einer Website Optionaler Tag f r das Speichern eines Links zu einem Wikipedia Artikel Optionaler Tag f r das Speichern eines Links zu einem Bild oder mehreren Optionaler Tag f r das Speichern eines Links zu einem Video z B auf YouTu be Optionaler Tag f r das Speichern eines Links zu einer Audiodatei 1 258 Classroom 1 258 oder Mensa Men plan yes 1 f r 1 Stockwerk http www hsr ch http www hsr ch http www hsr ch http www hsr ch http www hsr ch Um der POI einem Geb ude zuordnen zu k nnen wird eine Relation gebraucht Diese muss nach folgendem Muster erfasst werden Obligatorischer Tag f r die Benennung der name lt String gt Relation Es soll der Geb udename daf r verwend
121. nktionalit ten 4 3 2 OpenStreetMap in a Box Unabh ngigkeit Performanz Verf gbarkeit Komplexit t Funktionalit t Sehr grosse Unabh ngigkeit da der Server von der HSR betrieben wird Daten werden von OSM gespiegelt Lokal auf dem Server kann alles konfiguriert werden Da der Server noch nicht ausgelastet ist ist die momentane Performance hoch Dies kann sich jedoch in Zukunft ndern Sollten St rungen auftreten k nnen diese von der HSR direkt behoben werden War tungsarbeiten k nnen geplant durchge f hrt werden Klare Datenstruktur jedoch noch nicht so ausf hrlich beschrieben Durch direkte Ansprechpersonen vom OSM in a Box Projekt ist Unterst tzung vorhanden OSM in a Box bietet XML und JSON IG4A2 Bericht vertraulich docx Version 1 8 2 IndoorGuide4 Android O O 1 3 al al 1 1 2 4 SE LT em Ponie To 2 4 2 6 2 2 2 2 2 4 18 06 2010 30 Ke HOCHSCHULE F R TECHNIK RAPPERSWIL WR 4 Android 4 3 3 Schlussfolgerung Die Wahl f r den POI Provider f llt hier konsequenterweise aus denselben Gr nden wie bei der vorhergehenden Evaluation Kapitel 4 2 Geonames Provider auf OSM in a Box 5 Umsetzungskonzept In diesem Kapitel wird eine grobe bersicht ber das angewandte L sungskonzept gegeben Detailliertere Informationen werden im Teil III beschrieben Auch im Kapitel 6 2 Zielerrei chung wird kurz beschrieben wie die Anforderungen erf llt wu
122. nn darauf gedr ckt werden Zudem erscheint bei l ngerem Dr cken ein Kontextmen welches die drei Men punkte Ausw hlen Aktualisieren und L schen beinhaltet Beim Aktualisieren werden alle Daten dieses Places erneut heruntergeladen und gespeichert falls eine neuere Version vorliegt z B ein POI neue Daten aufweist Beim L schen wird noch eine Sicherheitsabfrage gestellt danach wird der Place aus der Datenbank gel scht 5 3 4 SearchPlace Activity Sucht man nach einem neuen Place gelangt man in dieses Activity Hier kann man im Suchfeld einen Suchbegriff eingeben wobei dies ein Ort POI z B Hochschule Rapperswil oder ein Teil eines Wortes sein kann Unter den angezeigten Resultaten kann man den gew nschten Place ausw hlen worauf dessen Daten heruntergeladen werden Beim Herunterladen wird ein Pro gress Dialog eingeblendet der anzeigt bei welchem Schritt sich der Prozess befindet Sind alle Daten geladen wird dieser Place direkt ausgew hlt und im IndoorGuide angezeigt Choose a new place hochschule WEED Erop a sa tiie imi kit yxcvbnm amp Bild 55 von links nach rechts Suchbegriff eingeben Suche l uft Resultate Download der Daten IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 a HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WR IndoorGuide4Android 109 5 3 5 Settings Activity In diesem Activity k nnen Einstellungen f r die ganze Applikation ge en macht werden Diese werden dauerh
123. ntiert Dieses muss jedoch zuerst in der Android Konfiguration aktiviert sein und der Benutzer muss es bei den Settings im Indoor Guide noch zus tzlich aktivieren Dies ist n tig da GPS standardm ssig ausgeschaltet sein soll um Strom zu sparen Falls GPS eingeschaltet ist wird auf diesen Service gewechselt sobald die Genauigkeit besser als 15m betr gt und die Koordinate nicht veraltet ist Beim Starten des IndoorGuides wird ein Update Thread gestartet welcher in regelm ssigen Abst nden momentan alle 2 Sekunden eine Location holt Falls weder IndoorWPS noch GPS ihren Dienst anbieten wird eine leere Location mit Latitude 0 0 und Longitude 0 0 zur ckge geben 5 3 Datenhaltung Die heruntergeladenen Daten werden in zwei SQLite Datenbanken gespeichert Zwei sind es aus dem Grund weil die IndoorWPS Library die Daten selbst ndig verwaltet In dieser Daten bank sind nur die Fingerprints gespeichert In der Datenbank des IndoorGuides sind die POls Karten und Places gespeichert Diese Datenbank musste auf die SD Card ausgelagert werden da sie den zur Verf gung stehenden internen Speicherplatz berschritt Die Datenbank ist haupts chlich wegen den Karten relativ gross geworden Dabei handelt es sich w hrend den Tests mit dem Place Hochschule Rapperswil um ca 4 MB wobei eine Karte mit 500 KB noch zu gross und nicht optimal war Weitere Details zur Datenhaltung sind im Kapitel 3 2 Daten bank Modell im Teil Ill beschrieben
124. om GeoPoint to Point and inverse It s an inner class of the MapView because this class is just used in combination with the MapView Methods fromPixels float float Calculates a GeoPoint object based on the provided x y values fromPixels float float Calculates a GeoPoint object with bearing based on the provided x double y values toPixels GeoPoint Point Calculates a Point object based on the provided GeoPoint object toPixels GeoPoint doub Calculates a Point object with bearing based on the provided Geo le Point Point object CameraView This class represents a view which shows what the camera sees Used for the augmented reality Provides a dedicated drawing surface embedded inside of a view hierarchy You can control the for mat of this surface and if you like its size the SurfaceView takes care of placing the surface at the correct location on the screen The surface is Z ordered so that it is behind the window holding its SurfaceView the Surface View punches a hole in its window to allow its surface to be displayed The view hierarchy will take care of correctly compositing with the surface any siblings of the SurfaceView that would normal ly appear on top of it This can be used to place overlays such as buttons on top of the surface Methods surface This is called immediately after the surface is first created Implemen Created SurfaceHolder tations of this should start up whatever rendering code they
125. oor POI IndoorWPS Community Server SQLite database Bild 1 Systemstruktur IndoorGuide4 Android IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Ke HOCHSCHULE F R TECHNIK RAPPERSWIL Bewertung Zielerreichung Abweichung Kosten Ausblick Gelerntes Verbleibende Probleme Was w rde an ders gemacht werden IG4A2 Bericht vertraulich docx gt 4Android Der entwickelte IndoorGuide ist an verschiedensten Orten sinnvoll einsetz bar Es ist gelungen eine Applikation zu erstellen welche als Guide in einem Geb ude wie beispielsweise einem Museum Campus oder Einkaufszentrum eingesetzt werden kann Dies ist momentan noch neuartig und existiert im Rahmen von AR Kartenapplikationen noch nicht Alle geforderten Anforderungen wurden erf llt Es gibt jedoch noch Erweite rungsm glichkeiten die aus Zeitgr nden noch nicht realisiert wurden Zu dem k nnen gewisse Teil Anforderungen nur realisiert werden wenn beim IndoorWPS gewisse Weiterentwicklungen erfolgen Das automatische Ausw hlen der richtigen Karte konnte nicht realisiert werden da vom IndoorWPS noch keine Information ber das Geb ude und Stockwerk in dem sich der Benutzer befindet geliefert wird Da auf Open Source Libraries und Services zugegriffen wurde entstanden keine Kosten in Form von Geld F r einen m glichen Anbieter des IndoorGu ides entstehen lediglich Kosten f r die Lokalisierungsinfrastruktur mit Wire less A
126. oor POls wiederspiegeln k nnen sodass bei einer Anfrage NUR als Indoor POI gekenn zeichnete POls zur ckgegeben werden Daten der POls von OSM in a Box herunterla den Dies soll mit der WFS amp JSON Technologie geschehen Dazu soll die WFS Abfrage so formuliert werden dass die Daten auswahl schon auf dem Server m glichst ein geschr nkt und nur das wichtigste dem Client bertragen wird IG4A2 Bericht vertraulich docx Version 1 8 bk orGuide4 Android 11 15 1 93 20 82 3 42 N 18 06 2010 E HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 11 Radar implementieren Moduswechsel AR amp Kartenansicht Radar implementieren welcher die POIs in der n heren Umgebung anzeigt Diese sollen an hand des Kompasses richtig ausgerichtet wer den Es soll ausprobiert werden ob es m glich ist gewisse POls zu beschriften Je nach Lage des Ger ts soll eine andere An sicht eingeblendet werden waagrecht Karte senkrecht Kamera gt AR Es muss herausge funden werden ab welchem Winkel die Um stellung zu vollf hren ist damit es nicht st rend wirkt 3 5 4 Sprint 4 14 04 27 04 2010 GER Bescreung Gap 13 _ POlsin AR auflisten Auf neue IndoorWPS 1 4 Version umstellen Suche nach Places mit WFS und JSON POl Informationen anzeigen IG4A2 Bericht vertraulich docx POls in einer Liste auf dem Display anzeigen und nach Distanz sortieren Man soll die POls in der Liste a
127. oorWPS zur ckgelieferten Genauigkeitswerte noch nicht brauchbar sind Dies ist jedoch eine m gliche Erweiterung sobald das IndoorWPS Projekt diesen Stand erreicht hat Die Implementation f r das automatische Aus richten der Karte mit Hilfe des Kompasses wurde angefangen Die mit niedriger Priorit t versehene Anforderung konnte aus Zeitgr nden nicht fertig gestellt werden Sie wird nachtr glich noch zu Ende entwickelt werden Der IndoorGuide wurde so aufgebaut dass beim Anw hlen eines POls in der Liste oder auf der Karte Informationen dar ber in einem neuen Fenster angezeigt werden Dieses ist auch mit Buttons zu den Multimediainhalten und Websites versehen Wenn keine Links hinterlegt sind wird der Button in grau deaktiviert dargestellt Beim Anw hlen eines Buttons zu einem Multime diainhalt oder einer Website wird diese im exter nen Browser ge ffnet Zudem besteht bei You Tube Filmen die Auswahlm glichkeit diese in der YouTube Applikation anzuschauen Es wurde am Rand des Radars ein N eingebaut welches immer nach Norden zeigt GPS wurde als Alternative zur WLAN Lokalisierung eingebaut Wenn diese in den Ein stellungen aktiviert ist wird automatisch auf GPS Koordinaten gewechselt sofern diese eine gewisse Genauigkeit und Aktualit t erreichen Der aktive Dienst wird dem Benutzer mit einem Statussymbol angezeigt Mit der M glichkeit selbst Einstellungen vor nehmen zu k nnen kann der Benutzer de
128. or implemen tieren Exceptionhandling umsetzen Statussymbol anzei gen Karte drehen Genauigkeitskreis an zeigen Fingerprints auf Karte anzeigen Places in Datenbank speichern Ebenfalls sol len sie geladen werden k nnen Bei Pro grammstart soll automatisch der letzte Place geladen werden Place anhand der aktuellen Koordinate von GPS suchen und entsprechend die Daten herunterladen POls in der Liste filtern dass nur die angezeigt werden welche zum geladenen Place geh ren Bei l nger dauernden Vorg ngen sollen Pro gress Dialoge eingeblendet werden Alle Maps aus einem bestimmten Range beim IndoorWPS Community Server herunterladen und in der SQLite Datenbank speichern Men erstellen in dem man verf gbare Kar ten ausw hlen kann Da der kleine interne Speicher der zur Verf gung steht bei den Kartendaten nicht aus reicht soll die Datenbank auf die SD Card ver schoben werden Settings implementieren z B GPS oder Radar ein ausschalten Detektor implementieren der eine Meldung ausgibt wenn der Kompass Lagesensor zu ungenau ist und neu kalibriert werden muss Exceptions sollen dem Benutzer sinnvoll dar gestellt werden Statussymbol anzeigen welches dem Benut zer zeigt ber welchen Dienst die aktuelle Location berechnet wird oder keine Location geliefert wird Karte immer nach Norden ausrichten Falls dies nicht m glich w re sollte ein Nordpfeil angezeigt werden
129. ors das Integrieren des Browsers in eine Applikation die Verwendung des Kompasses und weitere grundlegende Fertigkeiten Die Entscheidungen wie und wann die geplanten Features eingebaut werden sollten wurden agil getroffen So wurde jedes Feature priorisiert und zum gegebenen Zeitpunkt im Sprint ein geplant und implementiert Abgeschlossen wurde die Arbeit indem neben diesem Bericht auch noch Benutzeranleitungen f r das Erfassen neuer Points of Interest POIs wie auch das Bedienen der Android Applikation erstellt wurden Ebenfalls wurde eine Wiki Seite eingerichtet auf der die Applikati on heruntergeladen werden kann und zus tzliche Informationen und Verweise auf verwandte Arbeiten ersichtlich sind Vorausgehende Bachelor Thesis eprints hsr ch 81 1 IG4A_Dokumentation pdf gt Hello Android Pragmatic Programmers Introducing Google s Mobile Development Platform 3 Edi tion Autor Ed Burnette ISBN 13 978 1934356494 Version 2010 2 25 IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Ke HOCHSCHULE F R TECHNIK RAPPERSWIL Si a A Android 2 Vision und Ziele Die Vision dieser Bachelor Thesis ist es eine AR Applikation f r Android Handys zu erstellen welche als Guide innerhalb eines Geb udes indoor alle interessanten Objekte POls anzeigt Die durch das Kamerabild gezeigte Realit t soll dazu mit diversen POI Informationen und Links zu Multimediainhalten berlagert werden Die POls welche sich in einem
130. oten wird Dr cken Sie die Men taste und w hlen Sie Choose place aus Nun haben Sie drei M glichkeiten Neven Dr cken Sie erneut die Men taste und w hlen Sie Place suchen Choose a new place aus Nun erscheint ein Fenster mit einem Suchfeld Tippen Sie den gew nschten Ort ins Suchfeld ein Nachdem Sie die Suche gestartet haben erscheint eine Liste mit m glichen Places W hlen Sie den gew nschten Place oder starten Sie eine neue Suche falls der Begriff nicht die gew nsch ten Treffer brachte a W fel In t fz u o 70 Op Gut zu wissen F r das Herunterladen der Daten ist na asdfghj ki turlich eine Internetverbindung n tig Der Vorgang kann Ss 7233 4 P je nach Datenmenge l nger dauern Brechen Sie den Vorgang bitte nicht ab Falls die Daten nicht herunterge laden werden k nnten w rde eine Fehlermeldung er scheinen IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Kei HOCHSCHULE F R TECHNIK RAPPERSWIL Automatisch den Place suchen Einen gespeicherten Place laden Place aktualisieren Place l schen IndoorGuide benutzen Wenn Sie sich an einem Ort befinden an dem Sie wis sen dass Daten f r den IndoorGuide erfasst sind k n nen Sie automatisch nach dem Place suchen Dr cken Sie daf r erneut die Men taste und w hlen Sie Auto matically choose the place aus Nun beginnt die Suche nach dem Place Wenn ein Place gefunden wurde kommt die Aufforderung einen
131. plication loadSelectedPlace Loads the last selected PlaceData object on startup MapManager This is the manager class of the MapData objects The class is responsible for loading and saving the MapData objects to the database Methods Saves the given MapData object to the given SQLiteDatabase saveMap MapData This method saves the coordinates latitude longitude span as In SOLiteDatabase teger to the database because the BoundingBoxE6 object can t be saved like that loadMap int Loads a complete MapData object from the database IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 RAPPERSWIL ES E IndoorGuide4Android a HSR HOCHSCHULE F R TECHNIK 8 O PoiManager This is the manager class ofthe PoiData objects The class is responsible for loading and saving the PoiData objectsto the database Methods Seelen Saves the provided PoiData object to the SQLiteDatabase teDatabase u Loads all PoiData objects whose coordinates are in the circle loadPoiList PlaceData around the given PlaceData object coordinates 4 2 4 Package business inet 4 2 4 1 Description This package simply contains one class it s the HttpRequester which serves the business classes as a client that establishes connections to the internet class Class Model HttpRequester cl HttpClient _executeRequest String String Bild 31 Package business inet 4 2 4 2 Classes and methods HttpReque
132. r This class is the XML parser for the MapData objects provided by the IndoorWPS server getMapList Returns an arraylist containing all parsed MapData objects HttpTokener This class extends the JSONTokener to provide additional methods for the parsing of HTTP head ers Methods HttpTokener String Construct an HTTPTokener from a string nextToken Get the next token or string This is used in parsing HTTP headers IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 EZ indoorGuide4 Android a HSR HOCHSCHULE FUR TECHNIK RAPPERSWIL 82 JsonParser This class parses all kind of JSONOb ject objects which are used in the IndoorGuide4Android JSONObj ect is the data interchange format between the OSM in a Box server and the In doorGuide4Android parseJsonTo Parses the osm place lookup JSONObJect objects Pois JSONObject a SIT parseJsonPlaceLookUpT p I i arses the osm poi and osm indoor view JSONOb t objects oGeoms JSONObject P Se 4 2 6 Package db 4 2 6 1 Description This package contains the helper class for accessing the SQLite database For a proper design all the needed constants in the DbHelper class are provided from the DbConstants inter face J class Class Model interface DbConstants MAP_BYTES String mapbytes readOnly MAP_DESCRIPTION String description readOnly MAP_EAST String east readOnly MAP_FLOOR String floor readOnly MAP_ID String map
133. r t waagerecht gehalten ffnet sich die Karte mit dem aktuel len Standort und den umliegenden Bergspitzen welche noch mit Zusatzinformationen beschriftet sind Bild 7 Peak AR 3 1 5 IndoorWPSs Das Indoor Wireless Positioning System IndoorWPS ist ein Navigations Te FRE CIE system fur Innenr ume auf der Basis von WLAN WiFi Das Projekt umfasst P e einerseits Applikationen und Libraries zur Positionsberechnung auf ver IPostion WLAN Diagnostics Possible er it 5 Fingerprint schiedenen Betriebssystemen sowie eine Website mit Webservices zur gemeinsamen Nutzung von WLAN Fingerprints Die vom Institut f r Software IFS zur Verf gung gestellte Website dient dem Austausch von Fingerprints und Gebaudegrundrisskarten Im Kapitel 5 1 1 IndoorWPS im Teil Ill wird genauer auf die Funktions weise eingegangen Bild 8 IndoorWPS Quelle RMaps code google com p robertprojects Quelle Peak AR peakar salzburgresearch at Quelle IndoorWPS wiki hsr ch StefanKeller wiki cgi IndoorWPS IndoorWPS Community Server labs geometa info indoorwps IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Ke HOCHSCHULE F R TECHNIK RAPPERSWIL Si E 4Android 3 2 Realisierbarkeit und Herausforderungen F r alle Komponenten die im IndoorGuide realisiert werden sollen gibt es schon einzelne Ap plikationen siehe oben Somit sollten die Ziele des IndoorGuides realisierbar sein Die Heraus forderung wird sein di
134. r Software zu tun haben 4 3 2 Sprint i 7 Die zweiw chigen Sprints starten jeweils an einem Mittwoch Dies aus dem Grund da die zwei Projektmitarbeiter jeweils am Montag und teilweise am Dienstag extern in einer Firma arbeiten Meistens sind Sitzungen mit dem Product Owner auf den Mittwoch terminiert Der Inhalt der Sprints ist dem Kapitel 3 5 Sprint Backlog zu entnehmen IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Es HSR HOCHSCHULE F R TECHNIK RAPPERSWIL SS 56 WR indoorGuide4 Android 4 3 3 Abschlussarbeiten Reservezeit In der letzten Phase werden keine neuen Features implementiert Diese Phase dient dazu den Bericht zu beenden Anleitungen zu schreiben das Plakat zu erstellen und allenfalls noch letzte Fehler an der Software zu beheben Diese Phase dient auch als Reservezeit die gebraucht wird wenn ein Risiko eintrifft Die Risiken sind im Kapitel 6 Risiko Management im Teil II zu finden 4 4 Meilensteine Jeder Abschluss eines Sprints stellt einen Meilenstein dar da ein ausf hrbares Programm in einem Release vorliegt Die jeweiligen Features und Ziele eines solchen Meilensteins sind der Sprintplanung zu entnehmen siehe Kapitel 3 5 Sprint Backlog ne patum weisen MSo1 24 02 2010 Projektstart Kickoff Meeting MSo2 16 03 2010 Abschluss Sprint 1 MSo3 30 03 2010 Abschluss Sprint 2 MSo4 13 04 2010 Abschluss Sprint 3 MSo5 27 04 2010 Abschluss Sprint 4 MSo6 11 05 2010 Abschluss Sprin
135. r sein Version 1 8 orGuide4 Android 51 9 15 2 47 52 16 82 18 58 Ka O 18 06 2010 E HSR paz HOCHSCHULE F R TECHNIK RAPPERSWIL 52 E suide4 Android 3 5 6 Sprint 6 12 05 25 05 2010 GENEE Gap Aktueller Standort und die Position der POls f r die Karte berechnen und positionieren F r Position auf der Karte die Berechnung m ssen die XML Daten der berechnen Karte zur Hilfe genommen werden in der die Eckkoordinaten des Bildes angegeben sind Dies muss dann in Pixel umgerechnet werden 23 18 4 Die POls und der aktuelle Standort sollen als Overlay auf die Karte gelegt werden Wichtig zu beachten ist dass beim Verschieben der POls und Standort auf Karte die Elemente fix auf der Karte bleiben Karte anzeigen Beim Anw hlen der POIs sollen die POI Informationen angezeigt werden Es soll die gleiche Activity wie bei der Auswahl aus der Liste angezeigt werden 24 Positionierung ber GPS implementieren Dazu soll automatisch in diesen Modus gewechselt werden wenn man eine brauchbare Position erh lt Wichtig ist dass GPS in den Einstellun gen aktiviert deaktiviert werden kann Eben falls soll darauf geachtet werden dass bei zu ungenauen GPS Koordinaten auf IndoorWPS gewechselt werden soll 25 GPS implementieren SIs Die Places sollen in der Datenbank gespeichert und geladen werden k nnen Es muss zusatz Places speichern la lich ein Attribut gespeichert werden
136. raulich docx Version 1 8 18 06 2010 HSR HOCHSCHULE FUR TECHNIK RAPPERSWIL 3 fa Ei indoorGuide4 Android ie tee 19 03 2010 Erstellung des Dokuments inkl Inhaltsverzeichnis A Geiter 20 03 2010 0 1 Anforderungsspezifikation Use Cases C Egger 13 04 2010 0 2 Projektmanagement A Geiter 15 04 2010 0 3 Evaluationen C Egger EE D Rahmenbedingungen Aufbau der Arbeit Vision amp Caen Ziele 19 04 2010 0 5 Stand der Technik C Egger 21 04 2010 0 6 Risikoanalyse Zeitauswertung A Geiter 25 04 2010 0 7 Komplette Text berarbeitung A Geiter 05 05 2010 0 8 Erweiterung des Technischen Berichtes A Geiter 04 06 2010 0 9 Abstract A Geiter 08 06 2010 1 0 Resultate Zielerreichung Ausblick A Geiter 15 06 2010 a Management Summary A Geiter 16 06 2010 1 2 Softwaredokumentation Analyse Design C Egger 16 06 2010 1 3 Anleitungen A Geiter 17 06 2010 1 4 Implementationdetails C Egger 17 06 2010 1 5 Entscheidungen amp Knackpunkte C Egger 17 06 2010 1 6 Glossary amp Quellenverweis A Geiter 17 06 2010 i7 Inhaltsverzeichnis amp Bildverzeichnis A Geiter 17 06 2010 1 8 Finishing A Geiter Freigabeliste 21 04 2010 0 6 Anfrage f r erstes Review des Dokuments S Keller 26 04 2010 0 7 Zwischenpr sentation mit Gegenleser A Steffen 15 06 2010 1 1 Review des Dokuments S Keller 17 06 2010 an Review 2 des Dokuments S Keller 18 06 2010 1 8 Schlussabgabe Alle IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Kei HOCHSCHU
137. rden 5 1 Datenquellen Der IndoorGuide arbeitet mit verschiedenen Datenquellen Hier wird kurz erkl rt f r was wel che eingesetzt und wie darauf zugegriffen wird Anleitungen zum Erfassen von Daten sind im Kapitel 7 Anleitungen und Tutorials im Teil III zu finden 5 1 1 IndoorWPS Community Server Auf diesem Server liegen alle Fingerprints und Karten Beim Laden eines Places wird eine An frage an diesen Server geschickt welcher alle Fingerprints und Karten aus einem gewissen Ra dius mit dem Place als Mittelpunkt zur ckschickt ber die Weboberfl che dieses Servers k n nen die Daten erfasst werden Zudem gibt es f rs Erfassen von Fingerprints zus tzlich den In doorWPS Client mit welchem das Erfassen etwas leichter geht 5 1 2 OpenStreetMap OSM OSM dient als POI Provider Die Daten werden jedoch nicht direkt ber OSM bezogen sondern Uber den unten beschriebenen OSM in a Box Server Die POls m ssen auf dem OSM Server als Indoor POls erfasst werden Dies kann direkt auf der Website von OSM mit dem Potlatch Editor gemacht werden Etwas einfacher geht das Erfassen mit der Java Applikation JOSM 5 1 3 OpenStreetMap in a Box OSM in a Box Dieser Server spiegelt die Daten von des OSM Servers speichert jedoch nur die n tigen Infor mationen ab Dieser Server wurde haupts chlich ausgew hlt da er WFS Abfragen Uber JSON unterst tzt Dieses Format war wichtig um den teuren Datentransfer m glichst klein zu halten
138. ren mit Hilfe von WLAN Es funktioniert in dicht besiedelten Gebieten und in Geb uden indoor also genau dort wo GPS seine Probleme hat oder gar nicht funktioniert und ist deshalb eine praktische Erg nzung zu GPS Die eigene Position wird aufgrund von Signalst rkenlisten sogenannten Fingerprints rein lokal bestimmt offline Betrieb und ist raumgenau d h 4 bis 10 Meter Die Entscheidung f r diese Indoor Lokalisierungsl sung fiel auf IndoorWPS da diese von der HSR entwickelt wurde f r die auch der IndoorGuide4Android entwickelt wird Dies bringt den Vorteil dass die Infrastruktur schon vorhanden und der Entwickler Michael Klenk als Ansprechsperson bei Problemen und Erweiterungsw nschen erreichbar ist Zudem wurde im Vorg ngerprojekt erste Version des IndoorGuide4Android zuerst die alternative Lokalisie rungssoftware PointZero benutzt welche keine zufriedenstellende Resultate lieferte Beim damaligen Projekt wurde zu einem sp teren Zeitpunkt auf IndoorWPS gewechselt was f r den heutigen Technologiestand gute Resultate brachte 5 1 1 1 Funktionsweise Bei IndoorWPS wird die Lokalisierung anhand von Fingerprinting gemacht Hierzu werden an Referenzpunkten Messwerte aufgenommen welche alle empfangenen WLAN Basisstationen und die dazugeh rigen Informationen enthalten Dieser Punkt wird dann mit der Koordinate versehen als Fingerprint auf dem IndoorWPS Community Server abgespeichert Diese Erfas sung der Fingerprin
139. richt vertraulich docx Version 1 8 18 06 2010
140. richt vertraulich docx Version 1 8 18 06 2010 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 3 2 Datenbank Modell Hier wird das Datenbankschema welches sehr einfach strukturiert ist aufgezeigt column colum n PK _id INTEGER PK _id INTEGER F osm_id TEXT od lastchange TEXT 7 desenption TEXT name TEXT column PK _id INTEGER map_id INTEGER s osm_id TEXT name TEXT S name TEXT description TEXT description TEXT floor TEXT latitude DOUBLE IndoorGuide4 Android 17 floor TEXT latitude DOUBLE longitude DOUBLE north INTEGER longitude DOUBLE east INTEGER selected TEXT website TEXT wikipedia TEXT video_un TEXT audio_url TEXT image_un TEXT building_id TEXT building name TEXT PK PK_poi INTEGER west INTEGER rotation DOUBLE maphytes BLOB south INTEGER PK PK_place NTEGER PK_map NTEGER Bild 27 Datenbank Modell 3 3 Android Lifecycle Model Bei Android ist etwas Wichtiges und grundlegendes der Activity Lifecycle Er wird in folgen dem Bild illustriert 1 2 3 onCreate onStart onRestoreInstanceState 4 onResume Running 3 onResume 1 onSavelnstanceState 2 onStart 2 onPause 1 onRestart onResume De Stopped 1 onSaveInstanceState rouge 2 onStop eh lt Process killed gt lt Process killed gt optional Bild 28 Activity Lifecycle gt Quelle Activity Lifec
141. rium Beschreibung Unabh ngigkeit Die Applikation sollte m glichst unabh ngig von 2 fremden Serviceprovidern sein Performanz Der Service sollte die Requests m glichst schnell verarbei ten und beantworten 3 Verf gbarkeit Der Service sollte so wenige Downtimes Wartungsarbei 7 ten Ausfall wie m glich haben Komplexit t Der Service sollte m glichst trivial zu benutzen sein 1 Funktionalit ten Der Service sollte flexibel sein und eine grosse Varia S tion an Datenformaten bieten IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Es HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 4 2 2 GeoNames org Unabh ngigkeit Performanz Verf gbarkeit Komplexit t Funktionalit t Die Unabh ngigkeit ist bei diesem Service leider nicht gegeben GeoNames ist ein kleineres Projekt und daher eher langsam da grosse Auslastung auf dem Server herrscht Der Service kann durch Wartungsarbeiten Fehler oder berlastung tempor r nicht mehr verf gbar sein Ebenfalls liegen zum Beispiel Wartungszeitfenster nicht in unse rer Hand Abfragen via WebService sind einfach zu realisieren Gutes Wiki und Dokumentati on vorhanden GeoNames bietet XML und JSON als Da tenformate Ebenfalls wird eine grosse An zahl vorbereiteter WebServices angebo ten dessen Funktionalitaten jedoch fur diese Applikation nicht n tig sind 4 2 3 OpenStreetMap OSM wem f verais LT en unite Total Unabh ngigkeit
142. rt nach Umstellung Standortbestimmung wurde sogar immer noch zuverl ssig noch verbessert Suche funktioniert immer noch korrekt Suchdauer wurde gegen ber fr her 13 Suchbegriffe sind Hochschule Rap sogar noch verk rzt Resultate wer perswil den korrekt angezeigt IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Es HSR HOCHSCHULE F R TECHNIK RAPPERSWIL POI Informationen werden korrekt ange zeigt Daten Places POIs und Maps werden korrekt in der Datenbank abgespeichert 5 5 5 Release 0 5 Multimedia Links werden im externen gt Browser ge ffnet Nach der Auswahl eines Places werden 17 dessen Daten heruntergeladen und abge speichert 18 Kompass zeigt nach Norden A Mock Karte wird in korrekter Grosse an gezeigt und kann verschoben werden IG4A2 Bericht vertraulich docx Version 1 8 IndoorGuide4Android Das Layout muss noch verbessert werden bei l ngeren Bemerkungs texten verschiebt sich das Layout unsch n Anmerkung nach einem sp teren Test funktioniert nun auch mit l ngeren Bemerkungen gt Scrollleiste Daten werden korrekt abgespeichert wobei noch keine Kartendaten vor handen sind Das einzige Problem war der Update welcher die Daten nicht wirklich ersetzte Beides wird zu einem sp teren Zeitpunkt getestet Anmerkung nach einem sp teren Test auch die Maps werden korrekt abge speichert und der Update funktio niert auch ordnungsgem ss mp Testfal
143. rt werden Datenbank erstellen und die n tigen DB Manager implementieren Die Links zu Multimediadaten und Websites im Browser ffnen Die Auswahl des Places nach der Suche und das anschliessende Herunterladen der Fin gerprints und POls implementieren Kompass in irgendwelcher Weise beim Radar darstellen Durchgehendes Layout umsetzen und pas sende Icons suchen View f r das Anzeigen der Karte implementie ren Dazu Karte unverzerrt darstellen und ver schiebbar machen Aktueller Standort und die Position der POls f r die Karte berechnen und positionieren Overlay mit POls und aktuellem Standort erstellen Beim Anw hlen der POls sollten die POl Informationen angezeigt werden Positionierung ber GPS implementieren Da zu soll bei einer brauchbaren Position automa tisch in diesen Modus gewechselt werden Version 1 8 gt 4Android Sprint3 Sprint3 Sprint Sprint Sprint Sprint Sprint Sprints Sprints Sprints Sprints Sprints Sprint6 Sprint6 Sprint6 18 06 2010 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 26 27 28 29 30 31 32 33 34 35 36 37 38 39 IG4A2 Bericht vertraulich docx Places speichern la den Aktueller Place suchen POls nach Umkreis filtern Progress Dialoge ein bauen Karten herunterladen Karten ausw hlen DB auf SD Card aus lagern Settings implementie ren Compass Tilt Detect
144. s in der Liste angezeigt werden w re eine Filterm glichkeit sinnvoll Durch die vom IndoorWPS gelieferten Informationen ist zum jetzigen Zeitpunkt noch nicht bekannt in welchem Geb ude oder Stockwerk sich der Benutzer befindet Wenn diese Information zu einem sp teren Zeitpunkt vorhanden ist k nnte man nach diesen Kriterien fil tern und nur die POIs des aktuellen Stockwerks und Geb ude anzeigen 6 2 4 Automatisierte Kartenwahl Da die automatisierte Kartenwahl noch nicht realisiert werden konnte k nnte dies ebenfalls implementiert werden wenn die zus tzlichen Informationen ber Stockwerk und Geb ude vom IndoorWPS geliefert werden Es ist jedoch noch herauszufinden ob beispielsweise die Stock werkinformation gen gend genau ist um diese auf die Karte anwenden zu k nnen Wenn es dabei zu ungewollt vielen Kartenwechseln und unzuverl ssigen Kartenwahlen kommen w rde m ssten wohl andere Wege eingeschlagen werden 6 2 5 Wegdistanzen berechnen Die momentan angegebene Luftdistanz zu den POls kann nat rlich sehr irritierend sein wenn der POI hinter einer Wand oder sogar in einem anderen Stockwerk liegt Der Weg zu diesem w re dann viel l nger als erwartet und auch die Sortierung in der Liste hilft nur beschr nkt Um dies zu optimieren w ren Routeninformationen theoretisch ber OSM beziehbar und entspre chende Routenalgorithmen n tig Dies w re eine umfangreiche Weiterentwicklung die gut geplant sein sollte 6 2 6 POls vom
145. ses Problem liegt bei IndoorWPS und wird den Entwicklern weiter kommu niziert Die Koordinate wird angezeigt ist jedoch teilweise noch etwas unge nau Dies soll mit mehr Fingerprints und einem Durchschnitt mit mehr Messungen verbessert werden Standort Koordinate wird korrekt ange zeigt Die Suche war mit all diesen Begrif fen ausser HSR erfolgreich HSR wurde nicht gefunden da die Schule nicht mit dieser Abk rzung auf OSM getagt wurde Suche dauert noch etwas lang Die Suche eines Places funktioniert mit In 07 folgenden Eingaben Rapperswil Hochschule Rapperswil HSR 5 5 3 Release 0 3 ml Testfall Bemerkung zum Testergebnis POls werden ber WFS heruntergeladen 08 und in einem JSON File mit den korrekten Daten zur ckgegeben Die Daten werden korrekt im JSON File geschickt Radar zeigt die POIs korrekt an Es sollen f r den Test vier Eckpunkt Koordinaten des Geb ude 1 verwendet werden um die Platzierung und Rotation zu testen Moduswechsel zwischen AR amp Kartenan Der richtige Winkel musste noch he sicht funktioniert rausgefunden und justiert werden 5 5 4 Release 0 4 ml Testfall Bemerkung zum Testergebnis POls werden nach Distanz sortiert in der POI Liste angezeigt Da die POIs noch nicht in der Datenbank sind sollen Mock Anmerkung nach einem sp teren Test funktioniert nun auch mit den echten Daten Daten verwendet werden 5 IndoorWPS funktionie
146. sgabe von Fehlermeldungen wurden Dialoge erstellt die Ina Rau as no ound Piene heck your internet ein normaler Benutzer verstehen kann Zudem stehen auch Details rin drin die dem Entwickler helfen k nnen das Problem zu beheben Details Host is unresolved labs geometa info 80 Bild 59 Exception IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Es HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 5 4 Automatische Testverfahren W hrend der Entwicklung wurden automatisierte Unit Tests eingesetzt Als Werkzeug wurde JUnit 4 eingesetzt welches sich gut in die Eclipse Entwicklungsumgebung einbinden l sst Die Tests wurden haupts chlich f r den Business und Persistence Layer gemacht Gewisse Komponenten konnten jedoch nicht getestet werden da diese von der Hardware abh ngig waren Zudem k nnen Activities bei Android nur beschr nkt getestet werden und somit wurde mehr Wert auf ausf hrliche Systemtests gelegt Code welcher die Android API benutzt kann NUR im Emulator oder auf dem Ger t selbst getes tet werden Klassen aus dem android jar k nnen nicht ausserhalb einer Android Umgebung laufen gelassen werden Android ist nicht Java das Ziel ist ein Android Ger t keine Java Vir tual Machine Informationen dazu sind zu gen ge in Internetforen zu finden 5 5 Systemtests Die Systemtests wurden am Anfang eines Sprints definiert und beim Abschluss zusammen mit den vorherigen Systemtests durchgefuhrt 5 5 1 Rele
147. ster This class is a simple HttpRequester which is used in the IndoorGuide4Android project for executing HTTP queries Methods executeRe Executes the provided URL and returns the result string to the quest java lang String um caller 4 2 5 Package business inet util 4 2 5 1 Description This package contains the utility classes for the business layer It provides services for parsing JSON and XML strings IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 HSR Si HOCHSCHULE F R TECHNIK RAPPERSWIL 81 fa Ga indoorGuide4 Android class Class Model DefaultHandler MapRequestXmIParser isid boolean false isName boolean false isDescription boolean false isLowerLeft boolean false isUpperRight boolean false isLatitude boolean false isLongitude boolean false isFloor boolean false isRotation boolean false mapList ArrayList lt MapData gt actualMapData MapData startDocument void characters charf int int void startElement String String String Attributes void endElement String String String void getMapList ArrayList lt MapData gt JSONTokener JsonParser Http Tokener parsedJsonToPois JSONObject ArrayList lt PoiData gt HttpTokener String parseJsonPlaceLookUpToGeoms JSONObject ArrayList lt PlaceData gt nextToken String Bild 32 Package business inet util 4 2 5 2 Classes and methods MapRequestXmIParse
148. t Android auf einem Smartphone zu programmieren reizte mich jedoch sehr Zu Beginn habe ich mich dann intensiv mit der Aufgabenstellung und den daraus resultierenden Aufgaben besch ftigt Folglich lernte ich die Augmented Reality Technik kennen und sch tzen Von den ersten Eindr cken durch die existierenden AR Applikationen Layar und Wikitude war ich begeistert Nun verstand ich die Zusammenh nge der uns gestellten Aufgabe und war beraus motiviert eine Indoorapplikation mit diesen F higkeiten zu kreieren Als ich dann mit den ersten Schritten auf Android begann war ich der Arbeit vollends verfallen Android ist sehr angenehm zu programmieren und ich fand mich schnell zurecht Die Zusammenarbeit mit anderen Partien IndoorWPS und OSM in a box macht die Arbeit noch abwechslungsreicher als sie sowieso schon war Es gab vieles zu kommunizieren und eini ges musste auf unsere Bed rfnisse angepasst werden Die Zusammenarbeit hat jedoch gut funktioniert und war sehr konstruktiv Das Arbeiten mit Herrn Keller war f r mich ebenfalls stets angenehm und konstruktiv Herr Kel ler f hrte das Projekt gut und hatte massig kreative Ideen welche das Projekt IndoorGuide weit vorantrieben Das Zusammenspiel mit meinem Teamkollegen Adrian Geiter war stets ange nehm und produktiv Wir haben uns in den verschiedenen Aufgaben immer gut erg nzt Zum Abschluss kann ich mit Begeisterung sagen dass es uns gelungen ist eine n tzliche und funktionst
149. t 5 MSo7 25 05 2010 Abschluss Sprint 6 MSo8 08 06 2010 Abschluss Sprint 7 MSog 18 06 2010 Schlussabgabe 4 5 Releases Release 0 1 16 03 2010 Hauptactivity Men About Settings integrierter IndoorWPS AR Ansicht Anzeige der aktuellen Koordinate Suche nach ei Release 0 2 30 03 2010 nem Place Release 0 3 13 04 2010 Wechsel zwischen AR amp Kartenansicht Radar POl Download POI Liste POI Information View Datenspeicherung WFS Release 0 4 27 04 2010 Abfragen Anzeige Multimediadaten Kompass Auswahl des Places Kar Release 0 5 11 05 2010 tenansicht POls amp Standort auf Karte anzeigen GPS aktueller Place su Release 0 6 25 05 2010 l chen POIs filtern Progress Dialoge Karten herunterladen amp ausw hlen Settings Compass Tilt Release o 7 08 06 2010 Detector Statusanzeige Exceptionhandling Release 1 0 18 06 2010 Bugs gefixt refactored Code IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 RS HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 57 a Ka IndoorGuide4 Android 5 Auswertung der Arbeitszeiten 5 1 Arbeitsumfang Gem ss Vorgabe der Hochschule Rapperswil muss pro ECTS Punkt 30 Arbeitsstunden geleistet werden Die Bachelorarbeit ergibt bei erfolgreichem Abschluss 12 ECTS Punkte woraus eine minimale Arbeitszeit von 360 Stunden pro Student resultiert Dies ergibt eine Gesamtarbeits zeit von mindestens 720 Stunden Eingeplant wurden 23 Arbeitsstunden pro Woche und Mitar beiter 782 Stunden
150. t w re OpenStreetMap in a Box Bei diesem ist die Attributwahl zwar eingeschr nkter jedoch g be es eine gewisse Mitsprachem glichkeit da dieses Projekt in einer anderen Bachelorarbeit bearbeitet wird 3 2 4 Kartenauswahl Die Auswahl der korrekten Karte stellt eine Schwierigkeit dar da es an einer Koordinate mehre re m gliche Karten geben kann Dies kommt daher dass in einen Geb ude meist mehrere Stockwerke existieren die alle ihre eigene Karte haben Dies k nnte man einfach l sen wenn bekannt w re in welchem Stockwerk sich der Benutzer befindet Ein anderer Problempunkt stellt die Uberlappung der Karten dar Durch das Drehen beim georeferenzieren von Karten entstehen meistens leere Fl chen ausserhalb des eigentlichen Geb ude plans siehe Bild Haupts chlich durch diese Fl chen entstehen berlagerungen mehrerer Karten Es kann jedoch rein vom Kar tenbild her nicht entschieden werden ob der Benutzer nun in nerhalb des gezeichneten Geb udes steht oder in einer dieser leeren Fl chen Sind nun mehrere Karten berlagert ist es schwierig die richtige davon auszuw hlen Diese Problematik i ao Eger soll auf eine intelligente Art und Weise gel st werden so dass dem Benutzer trotzdem die richtige Karte angezeigt werden kann IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 CZ HSR HOCHSCHULE F R TECHNIK RAPPERSWIL a indoorGuide4 Android 26 4 Evaluation Um die Bachelor Thesis zu realisieren gibt
151. te wie viel Zeit aufgewendet wurde Ganzes Projekt E Projektmanagement 107 47 E Dokumentation E Research E Implementation Bild 16 Arbeitspaket ganzes Projekt Vorbereitung E Projektmanagement E Research Bild 17 Arbeitspaket Vorbereitung Sprint 1 E Projektmanagement E Dokumentation E Research E Impl Layout E Impl IndoorWPS E Impl GUI Bild 18 Arbeitspaket Sprint IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 owl HSR Si HOCHSCHULE F R TECHNIK oD RAPPERSWIL 61 fa Ea IndoorGuide4 Android Sprint 2 E Projektmanagement E Dokumentation E Research E Impl IndoorWPS E Impl GUI E Impl Place Suche E Impl Kamera Bild 19 Arbeitspaket Sprint 2 Sprint 3 E Projektmanagement E Dokumentation m Research E Impl Radar E Impl POIs modellieren E Impl OSM in a Box Mapping E Impl POI herunterladen m Impl AR Kartenwechsel Bild 20 Arbeitspaket Sprint 3 Sprint 4 E Projektmanagement m Dokumentation E Research E Impl IndoorWPS E Impl POIs auflisten 40 27 9 25 E Impl Suche nach Places E Impl POI Information 1 10 68 an E Impl Datenspeicherung Bild 21 Arbeitspaket Sprint 4 E Projektmanagement E Dokumentation E Research E Impl Layout E Impl Multimediadaten E Impl Auswahl des Places E Impl Kompass E Impl Map Impl Refactoring Bild 22 Arbeitspaket Sprint 5 IG4A2 Bericht
152. teDatabase WEEN EE E ENEE E E ENEE E E ee EE E EE EE E E EEN E E Bild 33 Package db IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 SS HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 83 E E indoorGuide4 Android 4 2 6 2 Classes interfaces and methods DbHelper This class is responsible for creating and opening the database used in the IndoorGuidegAndroid project Also it takes care of closing the database It creates all needed tables in the database if they don t already exist The database is stored on the SD Card of the smartphone thats why this class doesn t extend from the existing Android DbHelper class It s not now possible to create the data base on SD Card when using the Android DbHelper class Methods close Closes the connection to the database create Creates all the necessary tables Checks if the SD Card is available and creates the db file on the right open path if it not already exists DbConstants This class provides all constants used for the IndorGuide4Android database 4 2 7 Package gui activity 4 2 7 1 Description This package contains all the activities The activities provide the context in which everything runs Activities control the views and provide them with the information they need to work properly class Class Model Activity PreferenceActivity Activity About Settings Poilnformation onCreate Bundle void onCreate Bundle void poi PoiData
153. ten und Websites darge stellt Diese sind gelb wenn ein Link hinterlegt ist ansonsten sind sie deaktiviert und grau Diese Links werden im externen Browser ge ffnet Die Bedeutung der Buttons ist von links nach rechts gelesen Website Wikipedia Bild Film Audio Bild 53 POI Information IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 CZ HSR HOCHSCHULE F R TECHNIK RAPPERSWIL ES E 4Android 108 5 3 3 Places Activity In diesem Activity werden alle geladenen Places angezeigt Sind noch keine Places geladen wird dies mit einem Text angezeigt ber den Men button gelangt man zur Auswahl um einen Place zu laden Zum einen gibt es die M glichkeit f r eine Suche mit einem Suchbegriff zum anderen das automatische Suchen anhand der aktuellen Koordinate Bei der ersten Variante wird das SearchPlace Activity gestartet Bei der automatischen Suche wird eine gewisse Zeit lang versucht eine Koordinate zu empfangen GPS WLAN Falls diese Suche nicht erfolg reich ist wird abgebrochen und dem Benutzer eine Information ausgegeben Bei erfolgreicher Suche wird der Benutzer aufgefordert dem Place einen eigenen Namen zu geben wird dieser Place nun mit der Bemerkung dass er automatisch gesucht wurde Hochschule Rapperswil Choose Please enter a name for this Refresh Delete Bild 54 von links nach rechts gespeicherte Places Menu Namenvergabe bei Auto Suche Kontextmen Um ein Place auszuw hlen ka
154. terentwicklungen 6 2 1 Genauigkeitsangabe IndoorGuide4Android Bei zu vielen Karten wird OutOfMe moryException geworfen Dies konnte noch so gut wie m glich einge schr nkt werden Zudem wurden die Karten verkleinert Beim Neustart der Applikation sind immer noch die gleichen Einstellun gen aktiv Konnte leider nicht getestet werden da wahrscheinlich die Hardware diese Funktionalit t Uber Sensorstatus noch nicht unterst tzt Wird evt bei neueren Handys irgendwann mal funktionieren 114 Momentan wird auf der Karte nur ein statischer blauer Kreis um den aktuellen Standort gezeigt GPS liefert zwar einen Genauigkeitswert jedoch fehlt dieser bei IndoorWPS Sobald dort auch ein brauchbarer Wert geliefert wird kann auf der Karte ein dynamischer Kreis angezeigt wer den IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Ke HOCHSCHULE F R TECHNIK RAPPERSWIL Si Eg 4 Android 6 2 2 Fingerprints anzeigen Eine kleinere Weiterentwicklung ware das Anzeigen der Fingerprints auf der Karte Dies k nnte dem Anbieter eine Hilfe bei der Fingerprinterfassung sein da damit die Verteilung der erstellten Fingerprints im Geb ude bersichtlich dargestellt w rde Da die Anzeige hnlich wie bei den POls gemacht werden k nnte ist der Implementationsaufwand relativ gering Nat rlich m sste dieses Feature standardm ssig ausgeschaltet sein 6 2 3 POlsfilter Da momentan alle POls eines Place
155. tigen Ort im Kamerabild platziert werden k nnen wie es von anderen AR Applikationen bekannt ist die mit viel gr sseren Distanzen arbeiten Die POls in der n heren Um gebung werden in einem Radar als beschriftete Punkte dargestellt Auf der Karte werden sie am richtigen Ort platziert Die POls werden im Radar in proportional korrek tem Abstand und Winkel zueinander angezeigt Zudem sind sie anhand des Kompasses richtig ausgerichtet Auf der Karte werden sie am richti gen Ort platziert Die POls werden nach dem aktuell gew hlten Place gefiltert Dies schr nkt die Anzahl POls schon mal ein Ein Vorteil der Darstellung in einer Liste ist dass sie nach Distanz sortiert sind D h dass die interessanten POls immer zuoberst er scheinen Das Filtern nach Geb ude oder Stockwerk konn te noch nicht realisiert werden da der In doorWPS Dienst die Geb ude und Stockwerkin formation noch nicht anbietet Dies ist jedoch eine m gliche Erweiterung sobald das In doorWPS Projekt diesen Stand erreicht hat Die Karten k nnen auf den IndoorWPS Communi ty Server hochgeladen werden Die Karte muss dabei zuerst georeferenziert und mit dem ent sprechenden KML File abgespeichert werden Beim Herunterladen der Karte auf den IndoorGui de wird dann die Information der Eckkoordinaten und Ausrichtung der Karte als Information in ei nem XML mitgeliefert Mit dieser Information kann der Gebaudegrundriss in der Kartenansicht richtig dargestel
156. ts kann z B mit dem IndoorWPS Client f r Android gemacht werden Der IndoorWPS Client kann nun die Fingerprints vom Server herunterladen und lokal in einer Datenbank abspeichern Die Anzahl Fingerprints kann mit Angabe des Radius geografische Umgebung in der sich die Fingerprints befinden sollen eingegrenzt werden Danach kann man sich offline mit dem Client bewegen F r die Lokalisierung werden die aktuellen Messwerte von sichtbaren Access Points mit den Fingerprints in der Datenbank abgeglichen Ausgew hlt werden die gespeicherten Werte wel che m glichst viele gleiche Access Points identifiziert durch die MAC Adresse enthalten Zu jedem dieser Fingerprints wird ein Distanzwert berechnet der anzeigt wie hnlich sich der Messwert und der Fingerprint sind Aus den Positionen der Fingerprints und den dazu berechne ten Distanzwerten wird dann ein geometrisch gewichteter Mittelwert berechnet Quelle Auszug aus der IndoorWPS Beschreibung aus dem GISpunkt Wiki der HSR http gis hsr ch wiki IndoorWPS Quelle PointZero http wiki hsr ch StefanKeller wiki cgi PointZero IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 100 E ge HOCHSCHULE F R TECHNIK RAPPERSWIL m a A Android Da die Fingerprints nur alle paar Meter erfasst werden und die empfangenen Signale der Ac cess Points unterschiedlich ausfallen k nnen durch Reflexionen Abschw chungen unter schiedlichen Ausgangsst rken braucht es beim ver
157. u to choose be choseMapFromAvailab tween available MapData objects Available means if the Bounding leMaps BoxE6 of the MapData object contains the actual measured location Starts the Updater thread which provides the IndoorGuide4Android startUpdateThread application with the actual measured Location object All views con nected to the IndoorGuide are updated with the new location getLoadedPlace Provides the currently loaded PlaceData object SearchPlace This class is for searching a new place It initializes a search of places in the DataGateway After that it shows the result in a list A click on the list will start the download of all data for this place This method runs in a separate thread and searches for a place chosen searching by the user It uses the DataGateway for downloading the list of poss ible places Then it shows the result as a list This class shows all saved PlaceData The user can manage his saved places by updating deleting or choosing them This class has also e method for automatically searching a location by using the current coordinates choosePlace PlaceData This method chooses a place and returns to the IndoorGuide This method deletes a place and will show an empty text when the place deletePlace PlaceData list is empty refreshPlace PlaceData This method refreshes a place and loads all information about it This method searches data with the current coordinates It
158. udegrundrisses mit dem aktuellen Standort und den POls zeigen e POl Informationen sollen angezeigt werden k nnen inkl Links zu Multimediainhalten Bestehende Wikitude World Browser Dies ist ein mobiler AR Browser f r Android L sungsans tze Er beruht auf Wikipedia und Oype Artikeln sowie Panoramio Photos welche mit Geodaten verkn pft sind Damit k nnen weltweit ca 350 000 Artikel nach Adresse oder GPS Position durchsucht werden Diese Ap plikation funktioniert nur mit GPS und Internetverbindung RMaps Diese Positionierungssoftware kann auf verschiedenen Karten die Position und POls anzeigen Dabei wird die Position anhand von GPS WLAN oder Zellen des Mobilnetzwerks bestimmt IndoorWPS Das Indoor Wireless Positioning System ist ein Navigati onssystem f r Innenr ume auf der Basis von WLAN WiFi Mit diesem System wird im IndoorGuide die Lokalisierung gemacht Vorgehen Das Projektmanagement und die Softwareentwicklung wurden agil durchgef hrt Als Vorgehensmodell wurde Scrum eingesetzt Durch dieses Vorgehen konnten W nsche des Product Owners auch zu einem sp teren Zeitpunkt des Projektes gut eingebracht werden Nach jedem zweiw chigen Sprint lag ein funktionsf higes Release vor Risiken Das Risiko bestand darin dass Anforderungen nicht umgesetzt werden k nnen weil die eingesetzten Technologien diese Funktionalit t noch nicht besitzen oder die Android Plattform gewisse Schranken setzt Die se Risiken waren haupts
159. ule f r Technik Rapperswil FH Ostschweiz Abteilung Informatik Bachelorarbeit Fr hlingssemester 2010 l mi i a ai IndoorGuide4Android2 Mobile Guide indoors and in campusses or museums based on Android Adrian Geiter HSR Abteilung Informatik tor End er La t l a Christoph Egger HSR Abteilung Informatik Seman Prof Stefan Keller HSR Abt Informatik Betreuer iz hilary a i A Reto Senn bitforge AG Ltd Rapperswil externer Betreuer Einf hrung Augmented Reality AR ist eine neue Entwicklung die auf Mobiles Phones bzw Smartphones besonders zur Geltung kommt Dabei wird das Kamerabild mit kontextabh ngigen Informationen berlagert beispielsweise mit Points of Interest POIs die als dreidimensionale Icons Stecknadeln an ihrem Ort schweben Beispiele daf r sind Wikitude oder Layar Innerhalb der AR gibt es verschiedenste Ans tze darunter die Orientierung im Geb ude und in Anlagen indoor wie z B in einem Campus Einkaufszentrum oder Museum Aufgabenstellung F r diesen Ansatz soll auf Basis eines Android Smartphones das u a mit Kamera Wifi GPS und mit Kompass ausgestattet ist ein Prototyp neu entworfen und realisiert werden Es handelt sich dabei um ein mobiles Besucher Informationssystem Mobile Guide innerhalb der HSR und auf dem HSR Campus als AR Applikation Zwei Anwendungsszenarien stehen im Vordergrund Einerseits soll sich ein ortsunkundiger Besucher eines Campus ber die R ume
160. und 5 W Engineering Dokumentation z T englisch Allf llige Dokumente gem ss Vorgaben der Abt I Plakat Abstract deutsch Dokumentierte Demo im Web stichwortartig bebildert ggf Video Hinweise Es wird in diesem Prototyp ein Not Always Online Betrieb angenommen was die Realisierung eines Cachings bedingt Der Positionierungsdienst f r indoor basiert auf Indoor WPS einem anderen HSR Forschungsprojekt das auf Basis von Wifi Signalen arbeitet Es ist abzukl ren inwiefern sich ohne grossen Aufwand auch das eingebaute GPS einbinden l sst Bei der Wifi Positionierung ist mit ungenauen umherspringenden Koordinaten zu rechnen Die POls und Gebdudepline werden vom Benutzer wenn Online ggf vorg ngig heruntergeladen z B mittels Angabe des Geb ude oder Ortsnamen Suche Die Arbeitsweise ist agil wo sinnvoll mit Unit Tests Es wird Wert auf ausgetestete Software und einfache Installation gelegt a F r die erfolgreich abgeschlossene Arbeit werden 12 ECTS angerechnet d h es wird eine Arbeitsleistung von mind 360 Stunden pro Person erwartet Randbedingungen Infrastruktur Termine und Beurteilung Randbedingungen Hardware OS o Android Hardware a OS Android Java Software o Java SE gem Android o ANT Eclipse IDE Termine und Beurteilung gem ss Angaben auf www i hsr ch Rapperswil 10 M rz 2010 Der Betreuer Die Studierenden D Prof Stefan Keller Seite 2 von 2 IG4A2 Be
161. und erm glicht den Zugriff auf geographische Features in Datenbanken Als Responstetype wird JSON verlangt da dieses Format praktisch ohne Overhead auskommt Die Suche nach einem Place wird mit folgendem Request gemacht 1 Teil der URL Server http sinv 56029 edu hsr ch geoserver 2 Teil der URL WFS Request fur die Suche nach Places wfs request getfeature amp typename osm place_lookup amp outputformat json 2 Teil der URL WFS Request f r die Suche nach POls wfs request getfeature amp typename osm poi_lookup amp outputformat json 3 Teil der URL Filter z B Suche nach Rapperswil amp filter 3CPropertylsLike 20owildCard 3D 22 22 20singleChar 3D 22 22 20esc ape 3D 22 22 2omatchCase 3D 22false 22 3E 3CPropertyName 3Ename 3C 2FPropertyName 3E 3CLiteral 3E Rapperswil 3C 2F Literal 3E 3C 2FPropertylsLi ke 3E Quelle IndoorWPS Libraries http dev ifs hsr ch indoorwps IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 101 Es HSR HOCHSCHULE F R TECHNIK RAPPERSWIL ES E 4Android 102 Die POIs werden ber folgenden Request geholt 1 Teil der URL Server http sinv 56029 edu hsr ch geoserver 2 Teil der URL WFS Request wfs request getfeature amp typename osm indoor_view amp outputformat json 3 Teil der URL Boundingbox Latitude SW Longitude SW Latitude NE Longitude NE amp BBOX 47 2135058 8 8072663 47 2335057 8 8272663 5 1 3 Request zum IndoorWPS Community Server Die Requ
162. ung und die Leitung der Scrum Mettings zust ndig Diese Rolle wird von Adrian Geiter bernommen 2 Besprechungen F r dieses Projekt wurde die agile Software Entwicklungsmethode Scrum eingesetzt bei wel cher nachfolgende Arten von Besprechungen existieren Zudem wurde auf Wunsch des Betreu ers w chentlich eine Besprechung durchgef hrt Zu Beginn eines Sprints wurde dieses Meeting durchgef hrt Dabei Sprint Planning wurde die Planung f r die n chste Entwicklungsphase vorgenom men d h Stories aus dem Backlog dem n chsten Sprint zugeordnet T glich durchgef hrtes Meeting mit allen Entwicklern 15 min Aus Sally Serum tausch Ober aktuellen Stand der Arbeit und aufgetretene Probleme Nach einem Sprint wurde eine Kurzpr sentation aller neu entwickel ten Funktionen durchgef hrt Dieses wurde auf Wunsch des Betreu ers jede Woche beim Meeting mit ihm durchgef hrt und nicht nur alle zwei Wochen nach einem Sprint Sprint Review Nach einem Sprint wurde r ckblickend zusammengetragen was Sprint Retrospective positiv und negativ am vergangenen Sprint war und diente zur Ver besserung der Arbeitsqualit t W chentlich wurde ein Meeting mit dem Betreuer gemacht Dieses diente dazu den Betreuer ber den Stand der Arbeit zu informieren Meeting mit Betreuer allf llige Probleme zu besprechen und neue Ideen Tipps und Ge danken des Betreuers in die Arbeit einfliessen zu lassen Die Sitzungsprotokolle sind auf der beigelegt
163. usw hlen k nnen ebenfalls muss die Liste scrollbar sein Angezeigt werden soll der Name eine abgek rzte Beschreibung z B ers te paar Worte der Beschreibung und die Dis tanz in Luftlinie Die Liste soll dynamisch bei jedem Standortwechsel neu nach Distanz sor tiert werden Da es eine grosse Umstellung in der IndoorWPS Library gab muss diese neu inte griert werden Die Integration der Library wur de vereinfacht Es wurden auch weitere Funkti onen hinzugef gt Durch das Arbeiten mit OSM in a Box ergeben sich auch bei der Suche nach Places neue M g lichkeiten Die Evaluation hat ergeben dass die aktuelle Suche nach Places auf OSM XML Response durch eine neue WFS Abfrage auf OSM in a Box ersetzt werden soll Bei dieser Anfrage soll eine JSON Response zur ckgege ben werden Die POls sollen mit Detailangaben angezeigt werden wenn sie angew hlt werden In der Detailansicht sollen alle gespeicherten Infor mationen des POls und zus tzlich die Luftdis tanz zum aktuellen Standort ersichtlich sein Die Beschreibung soll scrollbar sein da diese auch mit viel Text gef llt werden kann Die Multimedialinks sollen als Buttons eingebun den werden Version 1 8 suide4 Android 50 15 03 16 03 3 14 1 18 7 00 Si LA N 18 06 2010 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 17 3 5 5 1 1 20 21 22 IG4A2 Bericht vertraulich docx Datenspeicherung j Tafa Die Daten wie
164. welches den definiert ob der Place gew hlt wurde Bei Pro grammstart soll automatisch der letzte aktive Place geladen werden 26 24 63 Place anhand der aktuellen Koordinate su chen Dies kann ber GPS oder wenn vorhan den ber IndoorWPS geschehen Falls eine Ko ordinate gefunden wird sollen entsprechend 27 Aktueller Place suchen die Daten herunterladen ansonsten eine Feh 12 0 lermeldung ausgegeben werden Da der auto matisch gesuchte Place keinen Namen besit zen w rde soll der Benutzer selbst einen Na men definieren k nnen Die POls in der Liste sollen so gefiltert werden dass nur die angezeigt werden welche zum POls nach Umkreis gezeg SE 28 geladenen Place geh ren Dies soll wie beim 3 4 filtern Ee Herunterladen mit einem gewissen Radius um den Place gemacht werden IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 E HSR HOCHSCHULE F R TECHNIK RAPPERSWIL Progress Dialoge ein bauen Bei l nger dauernden Vorg ngen sollen Pro gress Dialoge eingeblendet werden Dies ist beispielsweise beim Herunterladen der Daten oder beim Suchen nach einem Place nach Suchbegriff oder aktueller Koordinate not wendig 3 5 7 Sprint 7 26 05 08 06 2010 GEES Ga 30 Karten herunterladen 31 Karten ausw hlen DB auf SD Card aus 3 lagern Settings implementie 33 ren IG4A2 Bericht vertraulich docx Alle Karten aus einem bestimmten Range beim Indoor WPS Community Server herunterla
165. ycle Hello Android 2 1 Seite 24 IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 Kei HOCHSCHULE F R TECHNIK RAPPERSWIL 4 Design 4 1 Architecture bei 4Android The IndoorGuidegAndroid is designed as a 3 tier architecture The application doesn t need any special design in its architecture A persistence layer with common POJOs is accessed from the higher level the problem domain layer The problem domain layer itself is used by the gui view layer on top The top layer is able to access the persistence layer directly the so called transpa rent layer system That s why sometimes it doesn t make sense to make a problem domain call just to receive a POJO But the accessing from layer to layer is strict from the top to the bottom and never inverse This would lead into cycles between classes which results in a bad design that is hard to use for future development or enhancements 4 2 Logical Architecture 4 2 1 Introduction In this chapter all the packages and sub packages are shown It describes every class contained in the package and the relations between them The classes are already reduced to the not self explanatory methods and variables due to readability and clarity Following the core functional ity of the classes and their key methods are explained For fully commented java source code please have a look at the generated JavaDoc 4 2 2 Package business 4 2 2 1 Description T
166. zeigen Die Karten sollen je nach Ort an dem sich der Benutzer befindet ge wechselt werden Die eigene Position soll in der Kartenansicht angezeigt werden Die Karte soll sich automatisch ausrichten POl Informationen sollen angezeigt werden k nnen Multimediainhalte Websites eines POls sollen ge ffnet werden k nnen Ein Kompass soll die Richtung angeben Lokalisierung soll ausserhalb des Geb udes mit GPS gemacht werden Der Benutzer soll die Applikation nach seinen Bed rfnissen konfigurieren k nnen IG4A2 Bericht vertraulich docx Version 1 8 sehr hoch hoch sehr hoch hoch mittel hoch sehr hoch sehr hoch mittel sehr hoch hoch sehr hoch niedrig sehr hoch hoch mittel mittel niedrig 18 06 2010 s 2 1 2 Fo Fo2 Foz Fo4 Fos Fo6 FO7 Fo8 Fog F10 SEKR IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 4Android Detailiert mp Detailbeschreibung Der IndoorGuide benutzt fur die Bestimmung seiner Position die vom IFS entwickelte IndoorWPS Library Das IndoorWPS lokalisiert die Position des Handys anhand von Fingerprints welche bereits erfasst sind Ein Fingerprint ist eine Momentaufnahme der WLAN Umgebung An einer bestimmten Position wird spater dieser Fingerprint wieder erkannt und liefert die aktuelle Position Diese Lokalisierung soll zuverlassig funktionieren und eine genugend genaue Position lief
167. zt Sie bietet umfangreiche Funktionen und ist ideal f r Entwicklerteams die mit der Scrum Methodik arbeiten Alle Teammitglieder und der Product Owner haben Zugriff auf den aktuellen Stand des Projekts und k nnen die ihnen zugewiesenen Stories bearbeiten Die Stories wurden vom ScrumMaster im Backlog erfasst und mit Priorit ten versehen Vor jedem Sprint konnten die am h chsten priorisierten Stories ausgew hlt und einem Teammit glied zugewiesen werden Die Software kann von Teams bis f nf Personen gratis verwenden werden Bild 12 ScrumDesk Product Backlog links Sprintplanung Mitte Sprint Backlog rechts Quelle ScrumDesk www scrumdesk com IG4A2 Bericht vertraulich docx Version 1 8 18 06 2010 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL 3 4 Product Backlog Der Product Backlog enth lt die Stories Features des ganzen Projekts Vor jedem Sprint wer IndoorGuide4 Android bk den diese Stories neu bewertet und priorisiert Bestehende Elemente k nnen dabei entfernt sowie neue hinzugef gt werden Hoch priorisierte Features werden von den Entwicklern in den Sprint Backlog bernommen In der folgenden Auflistung sind alle Stories ganz kurz beschrieben Die ausf hrliche Beschrei bung ist im Sprint Backlog zu finden Da sich die Priorit ten st ndig nderten wurden sie hier nicht aufgelistet ro f stoy oo O1 02 03 04 05 06 07 08 09 10 IG4A2 Bericht vertraulich
Download Pdf Manuals
Related Search
Related Contents
FLIGHTCHECK ®5 User Guide for On-line registration VizAlert Original display only USER MANUAL - Interspiro V806 取扱説明書 Gaëlle Le Reun - Vatu • Le Meilleur du développement personnel Samsung RT-37VASS Manual de Usuario Transport PC v4.00 8.5x11 Copyright © All rights reserved.
Failed to retrieve file