Xamarin.Android でマップを操作する最も簡単な方法は、次に示す組み込みの Maps アプリケーションを利用することです。
Maps アプリケーションを使用すると、マップはアプリケーションの一部になりません。 代わりに、アプリケーションで Maps アプリケーションを起動し、外部でマップを読み込みます。 次のセクションでは、Xamarin.Android を使用して、上記のようなマップを起動する方法を説明します。
意図の作成
Maps アプリケーションの使用は、適切な URI で意図を作成し、アクションを ActionView に設定して、StartActivity メソッドを呼び出すだけの、簡単なものです。 たとえば、次のコードでは、指定した緯度と経度を中心として Maps アプリケーションが起動されます。
var geoUri = Android.Net.Uri.Parse ("geo:42.374260,-71.120824");
var mapIntent = new Intent (Intent.ActionView, geoUri);
StartActivity (mapIntent);
前のスクリーンショットで示されているマップを起動するために必要なコードはこれだけです。 緯度と経度を指定するだけでなく、Maps の URI スキームでは、他にもいくつかのオプションがサポートされています。
geo URI スキーム
上記のコードでは、geo スキームを使用して URI を作成しています。 この URI スキームでは、次のようないくつかの形式がサポートされています。
geo:latitude,longitude
- 緯度と経度を中央にして Maps アプリケーションを開きます。geo:latitude,longitude?z=zoom
- 緯度と経度を中央にして、指定したズーム レベルで、Maps アプリケーションを開きます。 ズーム レベルは、1 から 23 の範囲で指定できます。1 は地球全体を表示し、23 は最も拡大されたズーム レベルです。geo:0,0?q=my+street+address
- 番地の場所で Maps アプリケーションを開きます。geo:0,0?q=business+near+city
- Maps アプリケーションを開き、注釈付きの検索結果を表示します。
クエリ (つまり、番地または検索語) を受け取る URI のバージョンでは、Google のジオコーダー サービスを使用して、マップに表示される場所を取得します。 たとえば、URI geo:0,0?q=coop+Cambridge
では、次のようなマップが表示されます。
geo URI スキームの詳細については、「地図上の場所を表示する」を参照してください。
ストリート ビュー
geo スキームに加えて、Android では意図からのストリート ビューの読み込みもサポートされています。 Xamarin.Android から起動されたストリート ビュー アプリケーションの例を次に示します。
ストリート ビューを起動するには、次のコードに示すように、単に google.streetview
URI スキームを使用します。
var streetViewUri = Android.Net.Uri.Parse (
"google.streetview:cbll=42.374260,-71.120824&cbp=1,90,,0,1.0&mz=20");
var streetViewIntent = new Intent (Intent.ActionView, streetViewUri);
StartActivity (streetViewIntent);
上で使用した google.streetview URI スキームでは、次の形式が使用されます。
google.streetview:cbll=lat,lng&cbp=1,yaw,,pitch,zoom&mz=mapZoom
ご覧のように、次に示すいくつかのパラメーターがサポートされています。
lat
- ストリート ビューで表示する場所の緯度。lng
- ストリート ビューで表示する場所の経度。pitch
- ストリート ビュー パノラマの角度。中心からの角度で測定され、90 度は真下、-90 度は真上になります。yaw
- ストリート ビュー パノラマのビューの中心。北から時計回りに角度で測定されます。zoom
- ストリート ビュー パノラマのズーム乗数 (1.0 = 通常のズーム、2.0 = 2 倍ズーム、3.0 = 4 倍ズームなど)。mz
- ストリート ビューから Maps アプリケーションに移動するときに使用されるマップのズーム レベル。
組み込みの Maps アプリケーションまたはストリート ビューを使用すると、マッピングのサポートを簡単に追加することができます。 ただし、Android の Maps API では、マッピング エクスペリエンスをさらに細かく制御できます。