Sök…


Anmärkningar

Om du ska köra ditt projekt på en annan dator måste du generera en ny API-nyckel för den, eftersom SHA-1-fingeravtryck inte matchar för olika byggmaskiner.

Du kan utforska projektet, beskrivet i exempel Lägga till en karta i Xamarin.Forms här

Lägga till en karta i Xamarin.Forms (Xamarin Studio)

Du kan helt enkelt använda de ursprungliga kart-API: erna på varje plattform med Xamarin Forms. Allt du behöver är att ladda ner Xamarin.Forms.Maps- paketet från nuget och installera det till varje projekt (inklusive PCL-projektet).

Initialisering av kartor

Först av allt måste du lägga till den här koden till dina plattformspecifika projekt. För att göra detta måste du lägga till metoden Xamarin.FormsMaps.Init , som i exemplen nedan.


iOS-projekt

File 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

Fil 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());
    }
}

Plattformskonfiguration

Ytterligare konfigurationssteg krävs på vissa plattformar innan kartan visas.


iOS-projekt

I iOS-projekt måste du bara lägga till två poster i din Info.plist- fil:

  • NSLocationWhenInUseUsageDescription sträng med värde We are using your location
  • NSLocationAlwaysUsageDescription sträng med värde Can we use your location

Info.plist-fil


Android-projekt

För att använda Google Maps måste du generera en API-nyckel och lägga till den i ditt projekt. Följ instruktionerna nedan för att få den här nyckeln:

  1. (Valfritt) Hitta var din plats för verktyg för verktygsverktyg (standard är / /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands )

  2. (Valfritt) Öppna terminalen och gå till din Keytool-plats:

    cd /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands

  3. Kör följande keytool-kommando:

    keytool -list -v -keystore "/Users/[USERNAME]/.local/share/Xamarin/Mono for Android/debug.keystore" -alias androiddebugkey -storepass android -keypass android

    Där [USERNAME] är uppenbarligen din nuvarande användarmapp. Du bör få något liknande till detta i utgången:

    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
    
  4. Allt vi behöver i denna utgång är SHA1-certifikatets fingeravtryck. I vårt fall är det lika med detta:

    57:A1:E5:23:CE:49:2F:17:8D:8A:EA:87:65:44:C1:DD:1C:DA:51:95
    

    Kopiera eller spara någonstans den här nyckeln. Vi kommer att behöva det senare.

  5. Gå till Google Developers Console , i vårt fall måste vi lägga till Google Maps Android API , så välj det: ange bildbeskrivning här

  6. Google kommer att be dig skapa ett projekt för att aktivera API: er, följ detta tips och skapa projektet: Tips för att skapa ett projekt Sidan för att skapa ett projekt

  7. Aktivera Google Maps API för ditt projekt: Aktivera API När du har aktiverat api måste du skapa referenser för din app. Följ detta tips: Gå till Credentials

  8. Välj Android-plattformen på nästa sida, klicka på "Vilka referenser behöver jag?" -knappen, skapa ett namn för din API-nyckel, tryck på "Lägg till paketnamn och fingeravtryck", ange ditt paketnamn och ditt SHA1-fingeravtryck från steg 4 och skapa slutligen en API-nyckel: Skapa din api För att hitta ditt paketnamn i Xamarin Studio, gå till din .Droid-lösning -> AndroidManifest.xml: Android-paketets namn

  9. Efter skapandet kopierar du den nya API-nyckeln (glöm inte att trycka på "Klart" -knappen efter) och klistra in den i din AndroidManifest.xml fil: Slutför API-nyckeln Filen 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>        
    

    Du måste också aktivera vissa behörigheter i ditt manifest för att aktivera några ytterligare funktioner:

    • Få åtkomst till grov plats
    • Få tillgång till fin plats
    • Tillgång till platskommandon
    • Få åtkomst till hålig plats
    • Access Network State
    • Få åtkomst till Wifi State
    • Internet

    Android-behörigheter De två senaste behörigheterna krävs dock för att ladda ner kartdata. Läs om Android-behörigheter om du vill veta mer. Det är alla stegen för Android-konfiguration.

    Obs! Om du vill köra din app på Android-simulator måste du installera Google Play Services på den. Följ denna handledning för att installera Play Services på Xamarin Android Player. Om du inte hittar uppdatering av google play-tjänster efter installationen av Play Store kan du uppdatera den direkt från din app, där du är beroende av karttjänster


Lägga till en karta

Att lägga till kartvy till ditt crossplatform-projekt är ganska enkelt. Här är ett exempel på hur du kan göra det (jag använder PCL-projekt utan XAML).


PCL-projekt

File MapExample.cs

public class App : Application
{
    public App()
    {
        var map = new Map();
        map.IsShowingUser = true;

        var rootPage = new ContentPage();
        rootPage.Content = map;

        MainPage = rootPage;
    }
}

Det är allt. Om du nu kör din app på iOS eller Android visar den kartvyn: Xamarin.Forms-kartor



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow