Zu den meist unterschätzten Navi-Apps gehört zweifellos Magic Earth, das es sowohl für Android als auch für iOS gibt. Die App ist ein kostenloses Nebenprodukt eines kostenpflichtigen Services für Rettungsfahrzeuge. Sie darf sich außerdem rühmen, der Navi-Favorit der Redaktion von mobilsicher zu sein, da sie auf sonst übliches Werbe-Tracking komplett verzichtet.

Das Kartenmaterial basiert auf OpenStreetMap. Karten aller Länder der Welt (bei größeren Ländern auch einzelne Regionen) lassen sich für den Offline-Gebrauch downloaden. Sie werden derzeit ca. 3-4 mal im Jahr aktualisiert. Eine gefällige 3D-Darstellung sorgt für ein präzises Orientierungsgefühl beim Navigieren. Es gibt Spurassistenz und sogar Stauwarnung und Stauumfahrung. Anders als die meisten Navi-Apps ist Magic Earth universell ausgelegt. Es bietet die vier Navigationsmöglichkeiten "Auto", "Fahrrad", "öffentliche Verkehrsmittel" und "zu Fuß" an. Entsprechend der Auswahl werden passende Routen gewählt. Die Variante "öffentliche Verkehrsmittel" ist natürlich vielversprechend, funktioniert aber an vielen Orten noch nicht wirklich.

Weniger bekannt ist über Magic Earth, dass es auch eine API anbietet, die es erlaubt, die App direkt über Deeplinks zu einem bestimmten Verhalten zu leiten, etwa, um die Umgebungskarte für einen bestimmten Ort zu öffnen, oder um sofort die Navigation vom aktuellen Standort bis dorthin zu berechnen und anzuzeigen. Die möglichen Optionen und Aufrufrouten der API sind auf der Developer-Seite von Magic Earth beschrieben. Nun wäre es praktisch, auch im Web direkt Links setzen zu können, die solche Deeplinks zur App darstellen. Im Prinzip geht das auch, und zwar so:

<a href="magicearth://[MAGICEARTH-GET-PARAMETER]">Linktext</a>

Die [MAGICEARTH-GET-PARAMETER] werden weiter unten noch an Beispielen beschrieben. Für ältere Android-Versionen kann es jedoch erforderlich sein, diese etwas kompliziertere Syntax zu verwenden:

<a href="intent://[MAGICEARTH-GET-PARAMETER]#Intent;package=com.generalmagic.magicearth;scheme=magicearth;launchFlags=268435456;end;">Linktext</a>

Auf magicearth.stefan-muenz.de habe ich ein Web-Interface eingerichtet, das man einfach so aufrufen kann:

 <a href="<https://magicearth.stefan-muenz.de/[MAGICEARTH-GET-PARAMETER]>">Linktext</a>

Das Web-Interface hat den Vorteil, dass es auch Links erzeugt, wo kein direktes Editieren von HTML möglich ist, bzw. wo URL-Schemata wie magicearth:// oder intent:// keinen Link erzeugen. Außerdem sorgt es in ScoialMedia-Umgebungen, z.B. bei Twitter oder Facebook, für ordentliche Rich-Links. Es nutzt die PHP-All-in-one-Lösung von FokkeZB zum Definieren der passenden Deeplinks und enthält keinerlei Tracking oder dergleichen.

Anhand des Web-Interfaces nun noch einige konkrete Aufrufbeispiele für die [MAGICEARTH-GET-PARAMETER]:

<a href="<https://magicearth.stefan-muenz.de/?q=Aschaffenburg>">Suche nach Aschaffenburg</a>

In Umgebungen (z.B. SocialMedia), wo Links direkt im Text erkannt werden, einfach nur eingeben:

<https://magicearth.stefan-muenz.de/?q=Aschaffenburg>

Damit wird Magic Earth versuchen, nach Aschaffenburg zu suchen. Am Mobilgerät mit installiertem Magic Earth ausprobieren:

Magic Earth App-Link

Eine etwas genauere Suche:

<https://magicearth.stefan-muenz.de/?q=Aschaffenburg%20HBF&zoom=100>

Damit soll Magic Earth nach dem Hauptbahnhof (HBF) in Aschaffenburg suchen. Bitte beachten, dass Leerzeichen ebenso wie andere Zeichen wie Schrägstriche, die in URL-Adressen eine Bedeutung haben, im Inhalt eines Parameters "enkodiert" werden müssen. So wie im Beispiel das Leerzeichen als %20 enkodiert wird. Ein Online-URL-Encoder hilft dabei im Zweifelsfall.

Der erste GET-Parameter hinter https://magicearth.stefan-muenz.de/ (oder bei selbst definierten HTML-Links hinter magicearth:// oder intent://) wird mit einem Fragezeichen ? eingeleitet. Alle weiteren Parameter durch ein Ampersand-Zeichen &. Jeder Parameter besteht aus einem Namen und einem mit = zugewiesenen Wert. Im zweiten Beispiel gibt es zwei Parameter - einen mit dem Namen q und einen mit dem Namen zoom.