MagicMapCE

aus Nomads, der freien Wissensdatenbank

zur Übersicht über das MagicMap-Projekt

MagicMapCE ist die MagicMap Client-Software für PocketPCs unter Windows CE (WM5/WM6). Sie ermöglicht die Ortung von handelsüblichen Mobilgeräten sowohl im Freien über GPS als auch innerhalb geschlossener Gebäude über WLAN, Bluetooth und GSM. Mehr zu den Prinzipien unter MagicMapHelp und zur Programmierung unter MagicMapCEDevelop.

Inhaltsverzeichnis

Erfahrungen, Bugs, Probleme und anderes

Hierfür haben wir eigens ein Forum unter http://phl.informatik.hu-berlin.de/forum/ angelegt. Hier kann jedermann diskutieren, Fragen stellen, und mit uns in Kontakt kommen.

Aktuelles Release

Aktuelles Release ist Version 0.9 vom 1. November 2009

  • Download CAB Pocket PC Installer (empfohlen, zum direkten Ausführen auf dem mobilen Gerät - Download direkt von diesem ist ebenfalls möglich)
  • Download MSI-Installer (zum Ausführen und Installieren auf einem Windows PC über Active Sync)
  • MagicMap ist kostenfrei für wissenschaftliche sowie private Zwecke einsetzbar. Weiteres siehe MagicMap Lizenz.

Funktionsumfang

  • Ortung anhand verschiedener Technologien:
  • Ortung mittels WLAN
  • Ortung mittels GSM (neu in dieser Version)
  • Ortung mittels GPS (neu in dieser Version)
  • autarke Ortung über integrierten Ortungsalgorithmus (etwas weniger genau, dafür unabhängig vom Server und auch im Offline-Betrieb möglich)
  • oder Ortung über den MagicMap-Server (genauer, aber erfordert Online-Verbindung)
  • Anlegen von Karten oder Nutzung der serverseitigen Karten
  • Darstellung der eignen Position sowie der Position anderer Clients in einer Karte
  • Georreferenzierung von Karten (neu in dieser Version)
  • Zooming/Panning von Karten
  • Einfacher Wechsel zwischen Karten (z.B., um zwischen verschiedenen Etagen innerhalb von Gebäuden umzuschalten)
  • Anlegen/Ändern von Referenzpunkten zur Initialisierung bzw. Verbesserung der Ortungsgenauigkeit

Interne Neuerungen und geplante Funktionen

Systemvoraussetzungen

  • mobiles Gerät mit Windows Mobile 5 oder 6
  • Einige hardwarenahe Funktionen sind gerätespezifisch. Genaueren Infos über kompatible und getestete Geräte siehe MMCEKompatibilitaetsliste.
  • ca. 1 MB freier Speicher (für die Programmdateien) auf dem Gerät oder einer entsprechenden Speicherkarte
  • für manche Funktionen kann ein "Application Unlock" (auch Software Unlock genannt) nötig sein (Anleitung + weitere Infos) da diese Funktionen auf Systemfunktionen zugreifen, für welche sonst die Rechte fehlen

Installation

Weg 1 über Cab-File (empfohlen)

  • Download des MagicMap Cab-Files. Am besten direkt vom mobilen Gerät aus.
  • Andernfalls: Übertragen des Cab-Files auf das mobile Gerät (USB-Kabel, Bluetooth, ...)
  • Öffnen des Ordners auf dem mobilen Gerät, in dem die übertragene Datei liegt
  • Anklicken des Cab-File
  • Falls bereits eine Version von MagicMap installiert ist, muss diese zuerst deinstalliert werden. In diesem Fall erscheint beim Aufruf des Installers ein Hinweis, der mit "OK" bestätigt werden muss.
  • Auswahl des Installationsortes (empfohlen: "Gerät"), bestätigen mit Klick auf "Installieren"
  • Eine Verknüpfung zu MagicMapCE befindet sich nun im Programme-Ordner
vergrößern
vergrößern
vergrößern

Weg 2 über MSI-File (alternativ)

  • Download des MagicMap MSI-Files
  • Falls bereits eine Version von MagicMapCE auf dem mobilen Gerät installiert ist, muss diese zuerst entfernt werden. Dies geschieht auf dem mobilen Gerät unter Startmenü->Einstellungen->System->Programme entfernen->HUB Magic MapCE oder auf dem PC über Active-Sync, Menüpunkt Tools->Add/Remove programs->HUB MagicMap CE.
  • auf einem Windows-PC ausführen (Active Sync 4.5 (XP) oder höher bzw. Mobile Device Center (Vista) muss auf dem PC installiert sein)

Eine Verknüpfung zu MagicMapCE befindet sich nun im Programme-Ordner

Bedienung

Achtung: Die folgende Anleitung bezieht sich auf die neuste Entwicklungsversion, einzelne beschriebene Funktionen könnten noch nicht im Public-Release enthalten sein.

Erste Schritte

Beim ersten Start nach der Installation wird man aufgefordet, einen Benutzernamen und ein Passwort zu wählen. Diese Kombination sollte man sich gut merken, zur Zeit ist es leider noch nicht möglich, Passwörter zu ändern, zurückzusetzen oder an den Benutzer zu verschicken.

erster Start von MagicMapCE
erster Start von MagicMapCE
Kartenansicht mit den erfassten Objekten
Kartenansicht mit den erfassten Objekten


Um den Lokalisierungs-Prozess zu starten, muss man zunächst eine Karte vorgeben. Dazu kann man entweder lokal eine Karte anlegen oder, wenn eine Online-Verbindunge besteht, eine bestehende Karte vom Server laden (siehe "Menü"). Daraufhin werden alle empfangenen Signale als Objekte in die Karte eingefügt.

Clients
Accesspoints
WLAN-Referenzpunkte
GSM-Referenzpunkte
Geo-Referenzpunkte

Damit die Ortung genügend Bezugspunkte hat, sollten dann die Access Points, deren Position bekannt sind, an ihrer zugehörige Position auf der Karte platziert werden. Alle Objekte sind dazu einfach per Drag&Drop verschiebbar. Sollen die Objekte die zugeordnete Position beibehalten, müssen sie "fixiert" werden. Dies ist über das Kontex-Menü möglich.

Im Einstellungsmenü kann man festlegen, ob nur fixierte, oder alle Accesspunkte zur Berechnung verwendet werden sollen. Alternativ können unter ->"Algorithmus"->"Nodeselector"->"Selected nodes only" die zur Berechnung verwendeten Accesspunkte festgelegt werden.

Lädt man eine Karte vom Server, so werden alle Objekte dieser Karte mit ihren Positionen übertragen. Dadurch kann für die meisten Objekte das manuelle Platzieren entfallen.

Ein Symbol in der Menüleiste unten rechts zeigt den Status der Verbindung zum Server an. Bei unterbrochener Verbindung sind einige Funktionen nicht möglich, beispielsweise der Empfang neuer Positionen von anderen Clients, oder das Übertragen der eigenen Positionen. Beim Klicken auf das Symbol wird versucht, eine Serververbindung herzustellen, bzw. eine hergestellte Verbindung zu trennen.

Direkt daneben befindet sich ein Symbol, welches angibt, ob die eigene Position übertragen werden soll oder nicht (Anonymitätsmodus). Klickt man das Symbol an, so wird der Status geändert.

Icons für Serverbindung (hergestellt) und Anonymitätsmodus (deaktiviert)
Icons für Serverbindung (hergestellt) und Anonymitätsmodus (deaktiviert)

Menüs

Modus

Menüpunkt: Modus
vergrößern
Menüpunkt: Modus
  • Einstellungen
  • Unter der Registerkarte "Server" finden sich die Daten, die für die Verbindung zum Server benötigt werden (Benutzername, Passwort, Serverpfad und Serverport). Wird der Haken bei Nightly-Server gesetzt, so kann werden die Webservice-Pfade des Programms auf die Entwicklungsversionen gesetzt
  • Unter der Registerkarte "Telefon" kann man manuell wählen, welches Telefonmodell man besitzt und es in der Registry setzen (eventuell für funktionierende GSM-Ortung notwendig). ACHTUNG: Bei Auswahl des falschen Telefons kann die MagicMapCE-Installation unbrauchbar werden und erst durch ein Reset des Gerätes wieder möglich sein. Zur Zeit sollte die Prozedur nur beim HTC Artemis durchgeführt werden.
  • Unter "weitere" kann man die Timingwerte des Programms verändern. Änderungen können teils unvorhergesehene Nebenwirkungen haben, andere Werte als die Standardeinstellugen wurden nicht getestet. Des weiteren ist es möglich festzulegen, ob nur fixierte Accesspunkte in die Berechnung der WLAN-Position eingehen
  • Algorithmenauswahl (für fortgeschrittene Benutzer): Erlaubt die Auswahl des verwendeten WLAN-Ortungsalgorithmus. Zu den verschiedenen Algorithmen gibt es jeweils noch unterschiedliche Einstellungsmöglichkeiten (Erläuterungen folgen), die Standardeinstellungen sind im Allgemeinen aber völlig ausreichend. Auf der Registerkarte "Node-Selector" kann eine weitere Auswahl getroffen werden, welche Knoten in die Berechnung der Position eingehen:
  • "Minimum Signal Level": Nur Accesspoints die mit einem festlegbar starken Signal empfangen werden, werden einbezogen.
  • "k nearest Accesspoints": nur die x am stärksten empfangenen Accesspoints werden berücksichtigt.
  • unter "selected Nodes only" kann individuell festgelegt werden, welche Accesspoints einfließen
  • "no reduction": Alle Knoten werden bei der Berechnung berücksichtigt
  • Server-Karte: Zeigt ein Auswahlfenster der auf dem Server verfügbaren Karten an, welche dann geladen werden können. Positionsobjekte werden mit dem Server synchronisiert, so dass es nicht (oder nur sehr eingeschränkt) notwendig ist, die Positionsobjekte zu positionieren um eine korrekte Lokalisierung zu ermöglichen. Bei Bedarf kann auch eine neue Karte angelegt werden. Hierfür muss diese im Internet abrufbar sein und die entsprechende Adresse angegeben werden.
  • Lokale Karte: Erlaubt die Auswahl einer lokalen Karte auf dem mobilen Gerät (beliebige Grafikfiles)
  • Karte aus Cache laden: Hier sind Karten verzeichnet, welche schon benutzt und beim Beenden abgespeichert wurden. Karten welche ursprünglich vom Server geladen wurden werden weiter synchronisiert, falls der Client zum selben Server verbunden ist, von dem die Karte geladen wurde. Im Menü zum Laden der Karte können ebenfalls Cache-Einträge gelöscht werden.
  • Verfügbare Geräte: Zeigt an, welche Technologien zur Ortung benutzt werden können (WLAN, Bluetooth, GSM, GPS). Für GSM können verschiedene Parametrisierungen für den Algorithmus, abhängig von der aktuellen Situation gewählt werden (U-Bahn, S-Bahn, Gebäude, Straße, wechselnd).
  • Quit: Beendet das Programm, sollen die Karte (im Falle einer Karte vom Server) und die darauf befindlichen Positionsobjekte bei einem späteren Start des Programmes zur Verfügung stehen, muss die Karte beim Beenden gespeichert werden.
Einstellungen I
vergrößern
Einstellungen I
Einstellungen II
vergrößern
Einstellungen II
Einstellungen III
vergrößern
Einstellungen III
Auswahl des Algorithmus
vergrößern
Auswahl des Algorithmus
Einstellungen für Algorithmus
vergrößern
Einstellungen für Algorithmus

Anzeige

Details-Menü
vergrößern
Details-Menü
  • akt. Position zentrieren: zentriert die aktuelle Position des Clients auf dem Bildschirm und wählt den Standardzoomfaktor
  • Knotendarstellung: erlaubt die Auswahl, welche Knoten angezeigt werden sollen. Hier sollten alle Objekte angezeigt werden, um die Karte einzumessen beziehungsweise Bezugspunkte zu positionieren. Für eine Ortung ist es dann sinnvoll, sich lediglich die Clients anzeigen zu lassen. Des weiteren kann festgelegt werden, ob WLAN-Accesspunkte mit ihrer MAC-Adresse oder der zugehörigen SSID (falls verfügbar) angezeigt werden.
  • Clients markieren: Blendet ein Fenster ein, welches alle Clients auflistet und es ermöglicht, beliebige Clients auf der Karte zu markieren bzw. zu demarkieren.
  • Markierungen aufheben: Hebt die Markierungen aller Knoten auf
Auswahl der anzuzeigenden Knotenarten
vergrößern
Auswahl der anzuzeigenden Knotenarten
Auswahl der Darstellung von WLAN-Accesspoints
vergrößern
Auswahl der Darstellung von WLAN-Accesspoints
Auswahl der zu markierenden Knoten
vergrößern
Auswahl der zu markierenden Knoten

Details

Details-Menü
vergrößern
Details-Menü

Zeigt genaue Informationen für fortgeschrittene Benutzer und Entwickler:

  • Kartenobjekte: Zeigt zu allen Positionsobjekten, welche auf der Karte vorhanden sind, die verfügbaren Informationen an
  • Kartendetails ändern: Erlaubt es, Einstellungen für die Karte zu setzen (zur Zeit etwa die reale Größe in Metern)
  • GSM: Erlaubt die aktuellen GSM-Signaldaten anzuzeigen, diese in einer XML-Datei abzuspeichern, sowie eine Lokalisierung anhand von XML-Files und entsprechender Informationen über die Bewertung der verschiedenen Positionen
  • GPS: Zeigt Informationen über den aktuellen Zustand des GPS-Gerätes und die empfangenen Position an
Übersicht über alle Knotenarten
vergrößern
Übersicht über alle Knotenarten

Hilfe

Hilfe-Menü
vergrößern
Hilfe-Menü
  • Legende: Zeigt eine Liste an, die zu allen Symbolen angibt, um welche Art von Positionsobjekt es sich handelt
  • Hilfe: Öffnet ein Fenster, welches die wichtigsten Funktionen von MagicMapCE beschreibt
  • About: Zeigt Informationen über die aktuell verwendete MagicMapCE-Version (Version und Erstellungsdatum)

Kartendarstellung

  • Durch setzen des Stiftes auf eine Position auf dem Bildschirm und ziehen in eine beliebige Richtung kann die Karte verschoben werden
  • Wird auf eine freie Stelle der Karte mit Tab-and-Hold geklickt (drücken des Stiftes auf den Bildschirm und festhalten, bis ein Menü erscheint) öffnet sich ein Pop-Up, welches weitere Funktionen bereitstellt:
  • ein- und auszoomen: vergrößert oder verkleinert die Kartenansicht
  • Karte hier zentrieren: rückt den angeklickten Punkt zur Mitte des Bildschirms
  • GSM-Referenzpunkt setzen (nur aktiv, wenn Gerätemodell GSM unterstützt): erstellt an der angeklickten Stelle einen Referenzpunkt mit den aktuellen GSM-Signalstärkemessungen
  • GPS-Referenzpunkt setzen (nur aktiv, wenn GPS-Gerät gefunden wird): erstellt an der angeklickten Stelle einen Georeferenzpunkt
  • WLAN-Referenzpunkt setzen (nur aktiv, wenn Gerät über WLAN-Hardware verfügt): erstellt an der angeklickten Stelle einen WLAN-Referenzpunkt
  • Wird auf ein Positionsobjekt mit Tab-and-Hold geklickt, öffnet sich ebenfalls ein Pop-Up, welches aber andere Funktionen bietet:
  • Die erste Zeile zeigt den Namen des Objektes an
  • In der zweiten Zeile stehen die Koordinaten des Objektes
  • Die dritte Zeile gibt an, ob ein Objekt fixiert ist. Wenn das Objekt kein Referenzpunkt (WLAN, GSM, Georeferenz) ist, so lässt sich dieser Status per Klick auf die Zeile ändern
  • Die vierte Zeile ist nur bei Clients aktiv und ermöglicht das markieren / demarkieren des Clientknotens
  • "Knoten zentrieren" rückt die Position des angeklickten Knotens in die Mitte des Bildschirms
  • "neu einmessen" (bei Geopositionen nur aktiv, wenn GPS-Signal existiert, bei GSM-Positionen GSM-Signal, usw) nimmt für den gewählten Punkt eine neue Signalstärkemessung vor überschreibt mit dieser die alte Messung
  • Die letzte Zeile erlaubt das Löschen von Referenzpunkten aller Art
Klick auf freie Stelle der Karte
vergrößern
Klick auf freie Stelle der Karte
Klick auf ein Client-Positionsobjekt
vergrößern
Klick auf ein Client-Positionsobjekt
Klick auf ein Referenzpunkt-Positionsobjekt
vergrößern
Klick auf ein Referenzpunkt-Positionsobjekt

Ortungsmethoden und -anleitungen

Anlegen eines Referenzpunktes
vergrößern
Anlegen eines Referenzpunktes

Remote- vs. autarke Positionsberechnung

In MagicMap kann jeder Knoten die Berechnung eines anderen Knotens übernehmen. Hierdurch können die Algorithmen des MagicMap-Java-Clients auch für die CE-Clients genutzt werden, bzw. es können Geräte geortet werden, die selber nicht über entsprechende Berechnungsalgorthmen oder nötige Ressourcen verfügen. Auch für die Fremdortung ist dies einsetzbar. Voraussetzung ist natürlich eine Kommunikationsverbindung. Zum Ortungsverfahren sie MagicMap Verfahren sowie [Pfadbasierte Ortung]].

Daneben gibt es auch Ortungsalgorithmen in MagicMapCE. Sie erlauben eine autarke Ortung ohne Kommunikation bzw. auch ohne Internetverbindung. Diese sind nachfolgend beschrieben:

WLAN

Die Ortung findet anhand der empfangenen Accesspoints und deren Signalstärke statt (nach unterschiedlichen, wählbaren Algorithmen). WLAN-Referenzpunkte können zwar gesetzt werden, fließen aber derzeit nicht in die Berechnung ein, sondern dienen dem Einmessen von Karten, von welchem die Java-Clients profitieren. Um eine gute Ortung zu erreichen, müssen die alle manuell positionierten Objekte (Referenzpunkte sowie fixierte Accesspoints oder auch Clients) so genau wie möglich platziert werden (durch drag-und-drop). Zur Zeit sollte in den Einstellungen definiert werden, welche Knoten zur Berechnung benutzt werden sollen (nur die mit bekannter Position), in einer der nächsten Versionen werden nur noch fixierte Knoten zur Berechnung herangezogen, was die Auswahl überflüssig machen wird.

GSM

Die GSM-Ortung arbeitet über Referenzpunkte. Für eine Ortung muss daher die Karte mit ausreichend Referenzpunkten vermessen worden sein. Sobald ein einziger GSM-Referenzpunkt existiert, beginnt die Berechnung, die ermittelte Position ist immer diejenige, des Referenzpunktes, der am ehesten mit den aktuellen Signaldaten übereinstimmt. Neue Referenzpunkte können einfach über Tab-and-Hold (siehe Kartenansicht) erzeugt werden. Allerdings kann eine schlechte Wahl der Referenzpunkt das Lokalisierungsergebnis auch verschlechtern.

GPS

Vom GPS-Device des Gerätes wird eine Geopsition abgerufen (Koordinaten nach WGS84 Standard über die NMEA-Schnittstelle). Wenn zwei Georeferenzpunkte auf der Karte bekannt sind, kann berechnet werden, wo sich die abgerufene Position auf der Karte befindet. Sind weniger als 2 Georeferenzpunkte auf der Karte, dann kann man einen weiteren setzen, vorausgesetzt, wenn man weiß, an welcher Stelle der Karte man sich gerade befindet (siehe Kartenansicht). Sobald zwei Punkte gesetzt sind, ist die Umrechnung von Kartenkoordinaten in Geo-Kordinaten möglich

Online-/Offline-Nutzung und Caching

Wenn eine Verbindung zum MagicMap-Server hergestellt ist, können jederzeit Karten geladen und Objekte auf dieser mit dem Server synchronisiert werden, so dass Änderungen die durch den CE-Client hervorgerufen wurden auf allen anderen Clients erscheinen und vice versa.
Wird die Verbindung zum Server unterbrochen, so arbeitet der Client im Standalone-Betrieb weiter und kann keine Synchronisation mehr durchführen.
Sobald die Verbindung wieder besteht, wird automatisch die Synchronisation wieder gestartet und Client und Server tauschen Objekte aus.

Um Karten ganz ohne Serververbindung nutzen zu können, gibt es zwei verschiedene Möglichkeiten:

  • Nutzung von lokalen Karten: Es kann ein Grafikfile auf dem Gerät ausgewählt werden, welches als zu verwendende Karte gilt. Auf diesem sind allerdings noch keinerlei Objekte, diese werden erst durch die Nutzung des Clients eingefügt. Wenn das Programm beendet wird, ohne die Abfrage nach dem Speichern im Cache positiv zu beantworten, werden alle Objekte verworfen.
  • Nutzung von Karten aus dem Cache: Dies können sowohl Karten vom Server als auch lokale Karten, welche mit ihren Objekten im Cache gespeichert wurden, sein. Genauere Informationen über dieses Konzept stehen hier.
'Persönliche Werkzeuge