本サイトからスピンオフした姉妹サイトです。v2」を使って、Xamarin.Androidアプリで地図上にマーカーや吹き出しを表示する方法を解説する。v2(以下、「GoogleMapAPI」と表記)を使用する。今回はマーカーや吹き出しを表示する方法を解説する。Maps使用)」の続きとして解説するので、プロジェクトの準備は前回を参照してほしい。画面を準備する前回終了時点で、Main.axmlファイルを開くと、以下のようになっているはずだ。/></RelativeLayout>前回終了時点のUIデザイン内容(Main.axml)これを、以下のように修正してボタンを追加する。--></RelativeLayout>今回のUIデザイン内容(Main.axml)これをUIデザイナーで確認すると、図1のようになる。Marker]ボタンを配置している。Marker]ボタンを押した時に「東京スカイツリー」と「東京タワー」の場所にそれぞれマーカーを追加するコードを、以下のように記述する。Marker]ボタンを押した時に、map.AddMarkerメソッドを呼び出して、東京スカイツリーの位置に、マーカーを追加している。引数はMarkerOptionで、このオブジェクトにさまざまなパラメーターを設定する。SetTitleメソッドとSetSnippetメソッドで指定しているのは、後述するマーカーの吹き出しに表示されるタイトルと説明文だ。SetPositionメソッドでマーカーの位置を、InvokeIconメソッドでマーカーの画像を指定する。ここではBitmapDescriptorFactory.DefaultMarkerメソッドで、既定のアイコンの色だけを変更したものを使用している。アイコンを変更するには、BitmapDescriptorFactory.FromResourceなどのメソッドを使用するが、詳細についてはここでは述べない。ネイティブのGoogleMapAPIのAPIリファレンスを参考にしてほしい。map.AddMarkerメソッドでマーカーを追加すると、その戻り値としてMarkerオブジェクトが返却される。これは、後述するマーカーの削除やマーカーが選択された時の識別子として利用する。2は、1と同じ方法で、東京タワーの位置にマーカーを追加している。マーカーを削除する次に、追加したマーカーを削除する方法を解説する。Marker]ボタンを押した時に「東京スカイツリー」のマーカーのみを削除するコードを、以下のように記述する。Marker]ボタンを押した時にマーカーを削除するコード(MainActivity.cs)マーカーの削除は、PolylineやPolygonなどと同じく、MarkerオブジェクトのRemoveメソッドを呼び出すだけだ。ここまでのプログラムを実行すると、図2のようになる。Marker]ボタンを押すと、東京スカイツリーの位置に青色のマーカーが、さらに東京タワーの位置にオレンジ色のマーカーがそれぞれ表示される。Marker]ボタンを押すと、東京スカイツリーのマーカーが削除される。マーカーが選択された時に処理を行う続いて、マーカーをタップして選択した時に何らかの処理を行う方法を解説する。MyActivity.csファイルに以下のようにコードを追加する。"のマーカーがタップされました。//<--3};}}マーカーをタップして選択した時にToastを表示するコード(MyActivity.cs)マーカーが選択されると、GoogleMapオブジェクトのMarkerClickイベントが発生する(1)。イベントパラメーターであるMarkerClickEventArgsオブジェクトから、クリックされたMarkerオブジェクトが取得できるので、そのTitleプロパティ値を使って「○○のマーカーがタップされました。」というToastを表示している(2)。最後の3は、GoogleMapAPI側でマーカーがタップされた後の処理を行うかどうかだ。マーカーを選択した際の既定の動作は、「マーカーにセンタリングし、吹き出しを表示する」だが、MarkerClickEventArgsオブジェクトのHandledプロパティをtrueに設定すると、既定の動作が抑制される。MarkerClickEventArgs.Handledプロパティの既定値はtrueであり、明示的にfalseを設定しないと、吹き出しの表示などが行われなくなるので注意が必要だ。ここまでのプログラムを実行すると、図3のようになる。プログラムの実行結果(マーカーを選択したとき)マーカーを選択すると、吹き出しとToastが表示される。吹き出しが押された時に処理を行う最後に、マーカーの上の吹き出しがタップされた時に処理を行う方法について解説する。MyActivity.csファイルに以下のようにコードを追加する。"の吹き出しがタップされました。//<--2};}}マーカーの上の吹き出しがタップされた時にToastを表示するコード(MyActivity.cs)吹き出しをタップすると、GoogleMapオブジェクトのInfoWindowClickイベントが発生する(1)。イベントパラメーターであるInfoWindowClickEventArgsオブジェクトから、クリックされたMarkerオブジェクトが取得できるので、あとはマーカーの選択と同じように、「○○の吹き出しがタップされました。」というToastを表示している(2)。ここまでのプログラムを実行すると、図4のようになる。プログラムの実行結果(吹き出しを選択したとき)マーカーを選択すると吹き出しが表示され、吹き出しをタップすると「吹き出しがタップされました」と表示される。Maps使用)から今回までの数回で、Xamarin.AndroidでのGoogleMapAPIの基本的な使用方法を解説した。Developersも参考にされたい。Mapsと、プラットフォームごとに異なるAPIを抽象化し、共通なAPIを用意している。こちらについては別の機会に解説する予定であるが、併せて参照するとよいだろう。※以下では、本稿の前後を合わせて5回分(第21回~第25回)のみ表示しています。INDEX]を参照してください。v2」を使って、Xamarin.Androidアプリで地図の表示位置や種類を変更する方法、ジェスチャの有効/無効を切り替える方法などを説明する。v2」を使って、Xamarin.Androidアプリで地図上にライン/ポリゴン/円などの図形を表示する方法を解説する。v2」を使って、Xamarin.Androidアプリで地図上にマーカーや吹き出しを表示する方法を解説する。Studioの新機能として、コードエディターを左右の領域に分割して表示できるようになった。マウスとショートカットキーによる操作方法を説明する。Xamarin.iOS/Androidでログを出力するには?Xamarin.AndroidでネイティブAndroidのLogクラスを使ってログ出力する方法と、Xamarin.iOS/Androidで.NET基本クラスライブラリ機能を使ってログ出力する方法を解説する。機械学習エンジニアを目指す人~初中級者のための技術情報サイトです。「機械学習&AI」「クラウド&ビッグデータ」「IoTデバイス」のネット記事情報を共有中。開発者のためのSlackチーム、作りました:「機械学習&AI」「クラウド&ビッグデータ」「IoTデバイス」のネット記事情報を共有中。2020最適なビューへの切り替えを推奨します:スマートフォン用表示に。