Xamarin.Forms 用の Googleマップライブラリです。
Xamarin.Forms.Maps をフォークして作っているので、使い方はほとんど同じです。
Xamarin公式の地図ライブラリ Xamarin.Forms.Maps は、非常に機能が少ないです(Googleマップ、Appleマップ、Bingマップで機能を共通化するのはとても難しいのでしょう)。
特に感じるのは、BingマップSDKがとてもチープなことです。ベクトルタイルでもないし、マーカーの吹き出し(InfoWindow )も無いようです。モバイルアプリの市場のほとんどは Android と iOS なのに、Bingマップのサポートは必要ないように感じます。また、iOS でも Appleマップ よりも Googleマップ を使用した方が、 Android/iOS で共通化しやすいと感じます。
このライブラリは、メインターゲットを iOS と Android だけに限定し、Xamarin.Forms.Maps でできない機能を実現するために作りました。
異なる地図SDKで実現可能な最小限の機能しか持たない Xamarin.Forms.Maps に対して、 同じ Google Maps で多くの共通機能を実現できるのが Xamarin.Forms.GoogleMaps です。
[Xamarin.Forms.Maps との比較](https://github.com/amay077/Xamarin.Forms.GoogleMaps/wiki/Xamarin.Forms.Maps との比較) を見て下さい。
- Available on NuGet: https://www.nuget.org/packages/Xamarin.Forms.GoogleMaps/
- PCLプロジェクトと各プラットフォームプロジェクトにインストールしてください
| Platform | Supported |
|---|---|
| iOS Classic | No |
| iOS Unified | Yes |
| Android | Yes |
| Windows Phone Silverlight | No |
| Windows Phone RT | No |
| Windows Store RT | No |
| Windows 10 UWP | Yes (Bing map) |
| Xamarin.Mac | No |
とほぼ同じです。
初期化メソッドが Xamarin.Forms.Maps.Init() から Xamarin.Forms.GoogleMaps.Init() に変更になっています。
iOS の場合、 Google Maps API for iOS の API キーを取得し、AppDelegate.cs にて Init に渡してください。
[Register("AppDelegate")]
public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init();
Xamarin.FormsGoogleMaps.Init("your_api_key");
LoadApplication(new App());
return base.FinishedLaunching(app, options);
}
}既定の名前空間が Xamarin.Forms.Maps から Xamarin.Forms.GoogleMaps に変更されています。他のAPIはすべて同じです。
サンプルプログラムが、
にあります。
なるべく Xamarin.Forms.Maps の API に準じ、Google Maps固有の機能のみ API を追加するつもりです。
機能要望は、 @amay077 または、ISSUE やプルリクください! 追加機能案は以下の通りです。
Pin の InfoWindow の Visible プロパティv1.0.0で対応- Pin のタップ&ホールドによる移動
Polygon, Polyline, Circle の描画サポートv1.1.0で対応- その他の機能改善リスト
Windows 10 UWP 対応は「とりあえず」残しました。 が、基本的には Android/iOS での Google Maps に最適化するので、UWP では未対応の機能が増えると予想されます。
LICENSE をみて下さい
logo.png by alecive - CC BY-SA 4.0

