Icon Control
この章ではアイコンを地図上に表示し、制御するための方法を紹介します。
アイコンの表示方法
Map.addUserIcon()
を呼び出すことで、アプリは任意のアイコンを地図上に表示することができます。
例えばユーザーが地図の特定の場所を長押した際にその場所にアイコンを表示したい場合は以下のようになります。
addOnMapLongClickListener
でOnMapLongClickListener
を登録します。OnMapLongClickListener
で長押しした場所の緯度経度を取得しMapIcon
オブジェクトを生成します。- 生成した
MapIcon
オブジェクトをMap.addUserIcon()
に渡します。
map.addOnMapLongClickListener(new OnMapLongClickListener() {
@Override
public boolean onMapLongClick(GeoCoordinate point) {
MapIcon icon = new MapIcon();
icon.setImageResource(R.drawable.icon); // アプリで用意するアイコン用画像のリソース
icon.setID("icon_id");
icon.setPosition(point);
map.addUserIcon(icon);
return false;
}
});
アイコンの制御方法
Map.addUserIcon()
含め、アイコンに関する主な制御関数は以下の通りです。
制御内容 | 関数 |
---|---|
アイコン追加 | Map.addUserIcon() |
アイコン削除 | Map.deleteUserIcon() Map.deleteAllUserIcon() |
アイコン変更 | Map.updateUserIcon() |
アイコン取得 | Map.getUserIcon() Map.getAllUserIcon() |
Note:
アイコンの制御は追加時のMapIcon
オブジェクトのIDがキーとなるため、作成したアイコンのIDはアプリ内で保存する必要があります。
アイコンクリックイベント
アイコンに対するクリックは以下のOnIconClickListener
で検出することができます。
// アイコンクリック通知リスナー追加
map.addOnIconClickListener(new OnIconClickListener() {
@Override
public void onIconClick(IconKind kind, MapIcon icon) {
// クリック時の処理を書く
}
}
プリセットアイコン
地図上のアイコンにはユーザーが表示するアイコン以外にも予めSDKで用意(プリセット)されているアイコンがあり、Map.updatePresetIcon()
によりそれらのアイコンの画像を変更することができます。
立ち寄り地のアイコンを変更する際のサンプルコードは以下の通りです。
MapIcon wayPointIcon = new MapIcon();
wayPointIcon.setImageResource(R.drawable.myWayPointIcon); // 変更する画像のリソース
map.updatePresetIcon(Map.IconKind.ROUTE_STOPOVER1, wayPointIcon);
変更可能なプリセットアイコンの一覧はMap.IconKind
に定義されています。
Note:
ユーザーが追加するアイコンと異なりプリセットアイコンは追加、削除することができません。アイコン画像の変更のみ可能です。