Xamarin.Forms
マップの操作
サーチ…
備考
プロジェクトを別のコンピュータで実行する場合は、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
Androidプロジェクト
Googleマップを使用するには、APIキーを生成してプロジェクトに追加する必要があります。このキーを取得するには、以下の手順に従ってください。
(オプション)
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands
ツールの場所を探します(デフォルトは/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands
)(オプション)端末を開いてキーツールの場所に移動します:
cd /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands
次の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
この出力で必要なのは、SHA1証明書フィンガープリントだけです。私たちの場合、それはこれと同じです:
57:A1:E5:23:CE:49:2F:17:8D:8A:EA:87:65:44:C1:DD:1C:DA:51:95
このキーのどこかをコピーまたは保存してください。私たちは後でそれを必要とします。
Google Developers Consoleに移動します .Google Maps Android APIを追加する必要があるため、選択してください:
Googleでは、APIを有効にするためのプロジェクトを作成し、このヒントに従ってプロジェクトを作成するよう依頼します。
プロジェクトにGoogle Maps APIを有効にする: apiを有効にした後、あなたのアプリケーションの資格情報を作成する必要があります。このヒントに従ってください:
次のページでAndroidプラットフォームを選択し、「どの資格情報が必要ですか?」をタップします。ボタンを押し、APIキーの名前を作成し、「パッケージ名と指紋を追加」をタップし、手順4でパッケージ名とSHA1フィンガープリントを入力し、最後にAPIキーを作成します。 Xamarin Studioであなたのパッケージ名を見つけるには、あなたの.Droidソリューション - > AndroidManifest.xml:
作成後、新しいAPIキーをコピーしてください(後で「完了」ボタンを押すことを忘れないでください)、
AndroidManifest.xml
ファイルに貼り付けてください: ファイル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州にアクセスする
- インターネット
ただし、地図データをダウンロードするには、最後の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でアプリを実行すると、マップビューが表示されます: