Szukaj…


Uwagi

Jeśli zamierzasz uruchomić swój projekt na innym komputerze, musisz wygenerować dla niego nowy klucz API, ponieważ odciski palców SHA-1 nie będą pasować do różnych maszyn kompilacyjnych.

Możesz zapoznać się z projektem opisanym w przykładzie Dodawanie mapy w Xamarin.Forms tutaj

Dodawanie mapy w Xamarin.Forms (Xamarin Studio)

Możesz po prostu używać natywnych interfejsów API map na każdej platformie z Xamarin Forms. Wystarczy pobrać pakiet Xamarin.Forms.Maps z programu nuget i zainstalować go w każdym projekcie (w tym w projekcie PCL).

Inicjalizacja map

Przede wszystkim musisz dodać ten kod do projektów specyficznych dla platformy. Aby to zrobić, musisz dodać wywołanie metody Xamarin.FormsMaps.Init , jak w poniższych przykładach.


projekt iOS

Plik 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);
    }
}

Projekt na Androida

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

Konfiguracja platformy

Przed wyświetleniem mapy wymagane są dodatkowe kroki konfiguracji na niektórych platformach.


projekt iOS

W projekcie iOS wystarczy dodać 2 wpisy do pliku Info.plist :

  • NSLocationWhenInUseUsageDescription ciąg z wartością We are using your location
  • NSLocationAlwaysUsageDescription ciąg z wartością Can we use your location

Plik Info.plist


Projekt na Androida

Aby korzystać z Google Maps, musisz wygenerować klucz API i dodać go do swojego projektu. Postępuj zgodnie z instrukcjami poniżej, aby uzyskać ten klucz:

  1. (Opcjonalnie) Znajdź lokalizację narzędzia keytool (domyślnie: /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands )

  2. (Opcjonalnie) Otwórz terminal i przejdź do lokalizacji klucza:

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

  3. Uruchom następującą komendę keytool:

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

    Gdzie [USERNAME] jest oczywiście Twoim bieżącym folderem użytkownika. Powinieneś otrzymać coś podobnego do tego w danych wyjściowych:

    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. Wszystko, czego potrzebujemy w tym wydruku, to odcisk palca certyfikatu SHA1. W naszym przypadku jest to równe:

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

    Skopiuj lub zapisz gdzieś ten klucz. Będziemy go później potrzebować.

  5. Przejdź do Google Developers Console , w naszym przypadku musimy dodać Google Maps Android API , więc wybierz: wprowadź opis zdjęcia tutaj

  6. Google poprosi Cię o utworzenie projektu w celu włączenia interfejsów API, postępuj zgodnie z tą wskazówką i utwórz projekt: Wskazówka, aby utworzyć projekt Strona do tworzenia projektu

  7. Włącz interfejs Google Maps API dla swojego projektu: Włącz interfejs API Po włączeniu interfejsu API musisz utworzyć poświadczenia dla swojej aplikacji. Postępuj zgodnie z tą wskazówką: Przejdź do poświadczeń

  8. Na następnej stronie wybierz platformę Android, stuknij „Jakie dane uwierzytelniające są potrzebne?” przycisk, utwórz nazwę dla klucza API, dotknij „Dodaj nazwę pakietu i odcisk palca”, wprowadź nazwę pakietu i swój odcisk palca SHA1 z kroku 4, a na koniec utwórz klucz API: Utwórz swój interfejs API Aby znaleźć nazwę pakietu w Xamarin Studio, przejdź do rozwiązania .Droid -> AndroidManifest.xml: Nazwa pakietu Androida

  9. Po utworzeniu skopiuj nowy klucz API (nie zapomnij nacisnąć przycisku „Gotowe” po) i wklej go do pliku AndroidManifest.xml : Zakończ klucz API Plik 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>        
    

    Musisz również włączyć niektóre uprawnienia w swoim manifeście, aby włączyć dodatkowe funkcje:

    • Uzyskaj dostęp do zgrubnej lokalizacji
    • Dostęp do dokładnej lokalizacji
    • Uzyskaj dostęp do dodatkowych poleceń
    • Uzyskaj dostęp do fałszywej lokalizacji
    • Uzyskaj dostęp do stanu sieci
    • Dostęp do stanu Wi-Fi
    • Internet

    Uprawnienia Androida Chociaż do pobrania danych map wymagane są dwa ostatnie uprawnienia. Przeczytaj o uprawnieniach Androida, aby dowiedzieć się więcej. To wszystkie kroki w konfiguracji Androida.

    Uwaga : jeśli chcesz uruchomić aplikację na symulatorze Androida, musisz zainstalować na nim Usługi Google Play. Postępuj zgodnie z tym samouczkiem, aby zainstalować Usługi Play na Xamarin Android Player. Jeśli nie możesz znaleźć aktualizacji usług Google Play po instalacji sklepu Play, możesz zaktualizować ją bezpośrednio z aplikacji, w której masz zależność od usług map


Dodawanie mapy

Dodawanie widoku mapy do projektu w formie siatki krzyżowej jest dość proste. Oto przykład, jak możesz to zrobić (używam projektu PCL bez XAML).


Projekt PCL

Plik MapExample.cs

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

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

        MainPage = rootPage;
    }
}

To wszystko. Teraz, jeśli uruchomisz aplikację na iOS lub Android, wyświetli się widok mapy: Xamarin.Forms Maps



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow