Поиск…


замечания

Если вы собираетесь запустить свой проект на другом компьютере, вам нужно будет создать для него новый ключ API, поскольку отпечатки пальцев SHA-1 не будут совпадать для разных машин сборки.

Вы можете изучить проект, описанный в примере Добавление карты в Xamarin.Forms здесь

Добавление карты в Xamarin.Forms (Xamarin Studio)

Вы можете просто использовать собственные API карт на каждой платформе с помощью Xamarin Forms. Все, что вам нужно, это загрузить пакет Xamarin.Forms.Maps из nuget и установить его в каждый проект (включая проект PCL).

Инициализация карт

Прежде всего, вы должны добавить этот код в свои проекты на платформе. Для этого вам нужно добавить Xamarin.FormsMaps.Init метода Xamarin.FormsMaps.Init , как в приведенных ниже примерах.


проект iOS

Файл 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-проект

Файл 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());
    }
}

Конфигурация платформы

Дополнительные шаги настройки требуются на некоторых платформах перед отображением карты.


проект iOS

В проекте iOS вам просто нужно добавить 2 файла в файл Info.plist :

  • NSLocationWhenInUseUsageDescription string со значением We are using your location
  • NSLocationAlwaysUsageDescription string со значением Can we use your location

Файл Info.plist


Android-проект

Чтобы использовать Карты Google, вы должны создать ключ API и добавить его в свой проект. Следуйте приведенной ниже инструкции, чтобы получить этот ключ:

  1. (Необязательно) Найдите, где находится инструмент инструмента keytool (по умолчанию это /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands )

  2. (Необязательно) Откройте терминал и перейдите в папку вашего ключа:

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

  3. Выполните следующую команду keytool:

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

    Где [USERNAME], очевидно, ваша текущая папка пользователя. Вы должны получить что-то подобное в выводе:

    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. Все, что нам нужно в этом выпуске, - это отпечаток сертификата SHA1. В нашем случае это равно:

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

    Скопируйте или сохраните где-нибудь этот ключ. Это нам понадобится позже.

  5. Перейдите в Google Developers Console , в нашем случае мы должны добавить API Android для Google Maps , поэтому выберите: введите описание изображения здесь

  6. Google попросит вас создать проект для включения API, следовать этому совету и создать проект: Совет для создания проекта Страница для создания проекта

  7. Включите API Карт Google для своего проекта: Включить API После того, как вы включили api, вам нужно создать учетные данные для своего приложения. Следуйте этому совету: Перейти к учетным данным

  8. На следующей странице выберите платформу Android, нажмите «Какие мандаты мне нужны?». , введите имя для вашего ключа API, нажмите «Добавить имя пакета и отпечаток пальца», введите имя своего пакета и ваш отпечаток SHA1 с шага 4 и, наконец, создайте ключ API: Создайте свой api Чтобы найти название своего пакета в Xamarin Studio, перейдите в свое решение .Droid -> AndroidManifest.xml: Название пакета Android

  9. После создания скопируйте новый ключ API (не забудьте нажать кнопку «Готово» после) и вставьте его в файл AndroidManifest.xml : Завершить ключ API Файл 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>        
    

    Вам также необходимо включить некоторые разрешения в манифесте, чтобы включить некоторые дополнительные функции:

    • Доступ к грубому местоположению
    • Доступ к Fine Location
    • Доступ к дополнительным командам
    • Доступ к локальному местоположению
    • Состояние сети доступа
    • Доступ к Wi-Fi
    • интернет

    Android-разрешения Хотя для загрузки данных Карты требуется два последних разрешения. Узнайте о разрешениях на Android, чтобы узнать больше. Это все шаги для настройки Android.

    Примечание . Если вы хотите запустить приложение на симуляторе Android, вам необходимо установить на него сервисы Google Play. Следуйте этому руководству, чтобы установить Play Services на Xamarin Android Player. Если вы не можете найти обновление сервисов Google Play после установки магазина воспроизведения, вы можете обновить его непосредственно из своего приложения, где у вас есть зависимость от служб карт


Добавление карты

Добавление вида карты в ваш кроссплатформенный проект довольно прост. Вот пример того, как вы можете это сделать (я использую проект PCL без XAML).


Проект PCL

Файл MapExample.cs

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

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

        MainPage = rootPage;
    }
}

Это все. Теперь, если вы запустите приложение на iOS или Android, оно покажет вам вид карты: Карты Xamarin.Forms



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow