サーチ…


備考

プロジェクトを別のコンピュータで実行する場合は、SHA-1のフィンガープリントが異なるビルドマシンでは一致しないため、新しいAPIキーを生成する必要があります。

あなたはXamarin.Formsのマップを追加する例で説明したプロジェクト、探索することができますここに

Xamarin.Formsでマップを追加する(Xamarin Studio)

Xamarin Formsを使用すると、各プラットフォームでネイティブマップAPIを使用できます。必要なのは、NugetからXamarin.Forms.Mapsパッケージをダウンロードし、それを各プロジェクト(PCLプロジェクトを含む)にインストールすることだけです。

マップの初期化

まず、このコードをプラットフォーム固有のプロジェクトに追加する必要があります。これを行うには、以下の例のように、 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プロジェクトではInfo.plistファイルに2つのエントリを追加するだけです:

  • 値のあるNSLocationWhenInUseUsageDescription 文字列 We are using your location
  • NSLocationAlwaysUsageDescription値のある文字列 Can we use your location

Info.plistファイル


Androidプロジェクト

Googleマップを使用するには、APIキーを生成してプロジェクトに追加する必要があります。このキーを取得するには、以下の手順に従ってください。

  1. (オプション) /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commandsツールの場所を探します(デフォルトは/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に移動します .Google Maps Android APIを追加する必要があるため、選択してください: ここに画像の説明を入力

  6. Googleでは、APIを有効にするためのプロジェクトを作成し、このヒントに従ってプロジェクトを作成するよう依頼します。 プロジェクトを作成するヒント プロジェクトを作成するためのページ

  7. プロジェクトにGoogle Maps APIを有効にする: APIを有効にする apiを有効にした後、あなたのアプリケーションの資格情報を作成する必要があります。このヒントに従ってください: 資格情報に移動

  8. 次のページでAndroidプラットフォームを選択し、「どの資格情報が必要ですか?」をタップします。ボタンを押し、APIキーの名前を作成し、「パッケージ名と指紋を追加」をタップし、手順4でパッケージ名とSHA1フィンガープリントを入力し、最後に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>        
    

    また、マニフェストでいくつかの権限を有効にして、いくつかの追加機能を有効にする必要があります:

    • 粗い場所にアクセスする
    • ファインロケーションにアクセスする
    • アクセスロケーションの追加コマンド
    • アクセスモックの場所
    • アクセスネットワーク状態
    • Wifi州にアクセスする
    • インターネット

    Androidのアクセス許可ただし、地図データをダウンロードするには、最後の2つの権限が必要です。詳細については、 Androidのアクセス許可をご覧ください。それはAndroidの設定のすべてのステップです。

    :アンドロイドシミュレータでアプリを実行するには、Google PlayサービスをAndroidスマートフォンにインストールする必要があります。 このチュートリアルに従って、Xamarin Android PlayerにPlayサービスをインストールしてください。プレイストアのインストール後にGoogle Playサービスのアップデートが見つからない場合は、マップサービスに依存しているアプリから直接更新することができます


地図を追加する

クロスプラットフォームプロジェクトにマップビューを追加するのは簡単です。ここでは、それを行う方法の例を示します(XAMLを使用しないPCLプロジェクトを使用しています)。


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