Kartenunterstützung für Android-Apps

Wohin des Wegs?


Android-Anwendungen mit Kartenunterstützung zu erstellen, ist dank des Google Maps Android API v2 denkbar einfach. Gleiches gilt für das Anzeigen der eigenen ­Position oder von „Points of Interest“ via Standardmarker auf der eingebundenen Map. Wie aber lassen sich individuelle Marker inklusive frei zu definierendem Verhalten integrieren? Und was ist, wenn man statt der Google Maps Tiles Alternativen wie OpenStreetMap nutzen möchte, und das am besten auch noch im Offlinemodus? Alles kein Problem – wenn man weiß, wie.

Das einfache Einbinden von Google Maps in die eigene Android-Anwendung war seit jeher eines der Highlights für Android-Entwickler. Bereits in der Version 1 des Google Maps Android API genügte das Anlegen einer Map-Activity sowie einige wenige Zeilen Code zur Anzeige einer Karte – ein entsprechender anwendungsspezifischer Key für Google Maps vorausgesetzt. Etwas komplizierter wurde es allerdings, wollte man auf der Karte individuelle Marker für die eigene Position oder aber für „Points for Interest“ darstellen. Sollte dann auch noch eine frei definierte View beim Anklicken eines Markers angezeigt werden, wurde es langsam aufwändig. Und spätestens bei der Verwendung von Google Maps im Zusammenspiel mit Fragments (ver-)zweifelten dann auch gestandene Android-Entwickler. Um es kurz zu machen: Richtig brauchbar wurde das Google Maps Android API eigentlich erst mit der aktuellen Version 2 [1].

It’s not a Trick – it’s a Fragment

Eine erste wesentliche Änderung in Version 2 lässt sich bereits bei der Einbindung der Map in ein Layout feststellen. Musste man in Version 1 zur Map-Verwendung noch eine spezielle MapActivity nutzen, stellt Google in Version 2 in dem Package com.google.android.gms.maps ein MapFragment zur Verfügung. Der Vorteil liegt klar auf der Hand: Das MapFragment kann mit beliebigen eigenen Fragments kombiniert und muss so nicht mehr im „Fullscreen-Modus“ verwendet werden.

Wo bin ich?

Auch das Markieren von „Points of Interest“ ist in v2 deutlich einfacher geworden. Musste zuvor noch manuell das Interface Overlay implementiert oder zumindest von der abstrakten Klasse ItemizedOverlay abgeleitet und im Anschluss eine View, die beim Anklicken angezeigt werden soll, definiert werden, reicht es in der aktuellen Version aus, einen Marker mit den gewünschten MarkerOptions zur Map hinzuzufügen. Dabei kann sowohl auf vordefinierte Markericons als auch auf eigene Imageressourcen zurückgegriffen werden, wie Listing 1 zeigt.

Listing 1

openKnowled...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang