Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die einfachste Möglichkeit zum Arbeiten mit Karten in Xamarin.Android ist die Nutzung der unten gezeigten integrierten Maps-Anwendung:
Wenn Sie die Maps-Anwendung verwenden, ist die Karte selbst kein Bestandteil Ihrer App. Stattdessen startet Ihre App die Maps-Anwendung und lädt die Karte extern. Im nächsten Abschnitt wird untersucht, wie Sie Xamarin.Android verwenden, um Karten wie die oben gezeigte zu starten.
Erstellen der Absicht
Die Arbeit mit der Maps-Anwendung ist ganz einfach: Sie erstellen eine Absicht mit einem geeigneten URI, legen die Aktion auf „ActionView“ fest und rufen die Methode „StartActivity“ auf. Der folgende Code beispielsweise startet die Maps-Anwendung zentriert auf einem bestimmten Breiten- und Längengrad:
var geoUri = Android.Net.Uri.Parse ("geo:42.374260,-71.120824");
var mapIntent = new Intent (Intent.ActionView, geoUri);
StartActivity (mapIntent);
Mehr als dieser Code ist nicht erforderlich, um die im vorherigen Screenshot gezeigte Karte zu starten. Zusätzlich zur Angabe von Breiten- und Längengrad unterstützt das URI-Schema für Karten verschiedene weitere Optionen.
Geografisches URI-Schema
Der Code oben verwendet das geografische Schema, um einen URI zu erstellen. Dieses URI-Schema unterstützt verschiedene Formate, wie im Folgenden aufgeführt:
geo:latitude,longitude
– Öffnet die Kartenanwendung zentriert in einem lat/lon.geo:latitude,longitude?z=zoom
– Öffnet die Kartenanwendung mit einer Lat/Lon-Zentriert und vergrößert auf die angegebene Ebene. Der Zoomfaktor kann zwischen 1 und 23 liegen: 1 zeigt die gesamte Erde an, und 23 ist die kleinste Zoomstufe.geo:0,0?q=my+street+address
– Öffnet die Kartenanwendung für den Standort einer Straße.geo:0,0?q=business+near+city
– Öffnet die Kartenanwendung und zeigt die kommentierten Suchergebnisse an.
Die Versionen der URI, die eine Abfrage akzeptieren (also eine Postanschrift oder einen Suchbegriff), verwenden den Geocoder-Dienst von Google, um den Standort abzurufen, der dann auf der Karte angezeigt wird. Der URI geo:0,0?q=coop+Cambridge
beispielsweise resultiert in der folgenden Karte:
Weitere Informationen zu geografischen URI-Schemas finden Sie unter Show a location on a map (Anzeigen eines Standorts auf einer Karte).
Straßenansicht
Zusätzlich zum geografischen Schema unterstützt Android auch das Laden von Straßenansichten aus einer Absicht. Im Folgenden sehen Sie eine Beispiel der von Xamarin.Android gestarteten Anwendung mit einer Straßenansicht:
Um eine Straßenansicht zu starten, verwenden Sie einfach das URI-Schema google.streetview
, wie im folgenden Code gezeigt:
var streetViewUri = Android.Net.Uri.Parse (
"google.streetview:cbll=42.374260,-71.120824&cbp=1,90,,0,1.0&mz=20");
var streetViewIntent = new Intent (Intent.ActionView, streetViewUri);
StartActivity (streetViewIntent);
Das oben verwendete URI-Schema „google.streetview“ weist die folgende Form auf:
google.streetview:cbll=lat,lng&cbp=1,yaw,,pitch,zoom&mz=mapZoom
Wie Sie sehen, werden verschiedene Parameter unterstützt:
lat
– Der Breitengrad des Ortes, der in der Straßenansicht angezeigt werden soll.lng
– Der Längengrad des Ortes, der in der Straßenansicht angezeigt werden soll.pitch
– Winkel des Straßenansicht-Panoramas, gemessen von der Mitte in Grad, wo 90 Grad gerade nach unten und -90 Grad gerade nach oben ist.yaw
– Mittelpunkt der Ansicht des Panoramas der Straße, gemessen im Uhrzeigersinn in Grad von Norden.zoom
– Zoom-Multiplikator für Street View-Panorama, wobei 1,0 = normaler Zoom, 2,0 = 2x gezoomt, 3,0 = 4-fach gezoomt usw.mz
– Der Kartenzoomfaktor, der beim Navigieren zur Kartenanwendung aus der Straßenansicht verwendet wird.
Der Einsatz der integrierten Maps-Anwendung oder der Straßenansicht ist eine einfache Möglichkeit, schnell Unterstützung für Karten hinzuzufügen. Die Maps-API von Android bietet allerdings eine genauere Steuerung der Kartenfunktionen.