Xamarin.Forms                
            Mit Karten arbeiten
        
        
            
    Suche…
Bemerkungen
Wenn Sie Ihr Projekt auf einem anderen Computer ausführen, müssen Sie dafür einen neuen API-Schlüssel generieren, da SHA-1-Fingerabdrücke nicht für verschiedene Build-Maschinen passen.
Sie können das Projekt erkunden, wie im Beispiel Hinzufügen einer Karte in Xamarin.Forms hier beschrieben
Hinzufügen einer Karte in Xamarin.Forms (Xamarin Studio)
Sie können die nativen Karten-APIs auf jeder Plattform einfach mit Xamarin Forms verwenden. Sie müssen lediglich das Xamarin.Forms.Maps- Paket von nuget herunterladen und in jedem Projekt (einschließlich des PCL-Projekts) installieren.
Karteninitialisierung
 Zunächst müssen Sie diesen Code zu Ihren plattformspezifischen Projekten hinzufügen. Dazu müssen Sie den Methodenaufruf Xamarin.FormsMaps.Init hinzufügen, wie in den folgenden Beispielen. 
iOS-Projekt
Datei AppDelegate.cs
[Register("AppDelegate")]
public partial class AppDelegate : Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
    public override bool FinishedLaunching(UIApplication app, NSDictionary options)
    {
        Xamarin.Forms.Forms.Init();
        Xamarin.FormsMaps.Init();
        LoadApplication(new App());
        return base.FinishedLaunching(app, options);
    }
}
Android-Projekt
Datei MainActivity.cs
[Activity(Label = "MapExample.Droid", Icon = "@drawable/icon", Theme = "@style/MyTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
    protected override void OnCreate(Bundle bundle)
    {
        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;
        base.OnCreate(bundle);
        Xamarin.Forms.Forms.Init(this, bundle);
        Xamarin.FormsMaps.Init(this, bundle);
        LoadApplication(new App());
    }
}
Plattformkonfiguration
Auf einigen Plattformen sind zusätzliche Konfigurationsschritte erforderlich, bevor die Karte angezeigt wird.
iOS-Projekt
In iOS-Projekten müssen Sie nur 2 Einträge zu Ihrer Info.plist- Datei hinzufügen :
-  NSLocationWhenInUseUsageDescriptionZeichenfolge mit WertWe are using your location
-  NSLocationAlwaysUsageDescriptionZeichenfolge mit WertCan we use your locationNSLocationAlwaysUsageDescription
Android-Projekt
Um Google Maps verwenden zu können, müssen Sie einen API-Schlüssel generieren und ihn Ihrem Projekt hinzufügen. Folgen Sie den Anweisungen unten, um diesen Schlüssel zu erhalten:
- (Optional) Suchen Sie nach dem Speicherort des Keytool-Tools (Standard ist - /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands).
- (Optional) Öffnen Sie das Terminal und wechseln Sie zu Ihrem Keytool-Speicherort: - cd /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands
- Führen Sie den folgenden keytool-Befehl aus: - keytool -list -v -keystore "/Users/[USERNAME]/.local/share/Xamarin/Mono for Android/debug.keystore" -alias androiddebugkey -storepass android -keypass android- Dabei ist [USERNAME] natürlich Ihr aktueller Benutzerordner. Sie sollten etwas Ähnliches in der Ausgabe erhalten: - Alias name: androiddebugkey Creation date: Jun 30, 2016 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: CN=Android Debug, O=Android, C=US Issuer: CN=Android Debug, O=Android, C=US Serial number: 4b5ac934 Valid from: Thu Jun 30 10:22:00 EEST 2016 until: Sat Jun 23 10:22:00 EEST 2046 Certificate fingerprints: MD5: 4E:49:A7:14:99:D6:AB:9F:AA:C7:07:E2:6A:1A:1D:CA SHA1: 57:A1:E5:23:CE:49:2F:17:8D:8A:EA:87:65:44:C1:DD:1C:DA:51:95 SHA256: 70:E1:F3:5B:95:69:36:4A:82:A9:62:F3:67:B6:73:A4:DD:92:95:51:44:E3:4C:3D:9E:ED:99:03:09:9F:90:3F Signature algorithm name: SHA256withRSA Version: 3
- In dieser Ausgabe benötigen wir lediglich den Fingerabdruck des SHA1-Zertifikats. In unserem Fall ist dies gleich: - 57:A1:E5:23:CE:49:2F:17:8D:8A:EA:87:65:44:C1:DD:1C:DA:51:95- Kopieren oder speichern Sie irgendwo diesen Schlüssel. Wir werden es später brauchen. 
- Gehen Sie zur Google Developers Console . In unserem Fall müssen Sie die Google Maps-Android-API hinzufügen. Wählen Sie sie also aus:   
- Google fordert Sie auf, ein Projekt zu erstellen, um APIs zu aktivieren. Folgen Sie diesem Tipp und erstellen Sie das Projekt:     
- Aktivieren Sie die Google Maps-API für Ihr Projekt:  Nachdem Sie API aktiviert haben, müssen Sie Anmeldeinformationen für Ihre App erstellen. Folgen Sie diesem Tipp: Nachdem Sie API aktiviert haben, müssen Sie Anmeldeinformationen für Ihre App erstellen. Folgen Sie diesem Tipp:  
- Wählen Sie auf der nächsten Seite die Android-Plattform aus und tippen Sie auf "Welche Anmeldeinformationen benötige ich?" , erstellen Sie einen Namen für Ihren API-Schlüssel, tippen Sie auf "Paketnamen und Fingerabdruck hinzufügen", geben Sie Ihren Paketnamen und Ihren SHA1-Fingerabdruck aus Schritt 4 ein und erstellen Sie schließlich einen API-Schlüssel:  Um Ihren Paketnamen in Xamarin Studio zu finden, gehen Sie zu Ihrer .Droid-Lösung -> AndroidManifest.xml: Um Ihren Paketnamen in Xamarin Studio zu finden, gehen Sie zu Ihrer .Droid-Lösung -> AndroidManifest.xml:  
- Kopieren Sie nach der Erstellung den neuen API-Schlüssel (vergessen Sie nicht, die Schaltfläche "Fertig" zu drücken) und fügen Sie ihn in Ihre - AndroidManifest.xmlDatei ein: Datei AndroidManifest.xml Datei AndroidManifest.xml- <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="documentation.mapexample"> <uses-sdk android:minSdkVersion="15" /> <application android:label="MapExample"> <meta-data android:name="com.google.android.geo.API_KEY" android:value="AIzaSyBAg8X-t4pOIDDp3q5Ph45jKUIVjo_RnxU" /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> </application> </manifest>- Sie müssen außerdem einige Berechtigungen in Ihrem Manifest aktivieren, um einige zusätzliche Funktionen zu aktivieren: - Zugriff auf groben Standort
- Zugriff auf die Fine Location
- Auf zusätzliche Befehle für den Standort zugreifen
- Zugriff auf Mock Location
- Zugriff auf den Netzwerkstatus
- Zugang Wifi State
- Internet
  Die letzten beiden Berechtigungen sind jedoch erforderlich, um Maps-Daten herunterzuladen. Lesen Sie über Android-Berechtigungen , um mehr zu erfahren. Das sind alle Schritte für die Android-Konfiguration. Die letzten beiden Berechtigungen sind jedoch erforderlich, um Maps-Daten herunterzuladen. Lesen Sie über Android-Berechtigungen , um mehr zu erfahren. Das sind alle Schritte für die Android-Konfiguration.- Hinweis : Wenn Sie Ihre App auf einem Android-Simulator ausführen möchten, müssen Sie die Google Play-Dienste darauf installieren. Befolgen Sie dieses Tutorial , um Play Services auf dem Xamarin Android Player zu installieren. Wenn Sie nach der Play Store-Installation kein Update für Google Play-Dienste finden, können Sie es direkt von Ihrer App aus aktualisieren, wo Sie von Kartendiensten abhängig sind 
Hinzufügen einer Karte
Das Hinzufügen einer Kartenansicht zu Ihrem Crossplatform-Projekt ist recht einfach. Hier ist ein Beispiel, wie das geht (Ich verwende ein PCL-Projekt ohne XAML).
PCL-Projekt
Datei MapExample.cs
public class App : Application
{
    public App()
    {
        var map = new Map();
        map.IsShowingUser = true;
        var rootPage = new ContentPage();
        rootPage.Content = map;
        MainPage = rootPage;
    }
}
 Das ist alles. Wenn Sie Ihre App jetzt auf iOS oder Android ausführen, wird die Kartenansicht angezeigt:  
 
