Icon Control

この章ではアイコンを地図上に表示し、制御するための方法を紹介します。

アイコンの表示方法

Map.addUserIcon()を呼び出すことで、アプリは任意のアイコンを地図上に表示することができます。

icon

例えばユーザーが地図の特定の場所を長押した際にその場所にアイコンを表示したい場合は以下のようになります。

  1. addOnMapLongClickListenerOnMapLongClickListenerを登録します。
  2. OnMapLongClickListenerで長押しした場所の緯度経度を取得しMapIconオブジェクトを生成します。
  3. 生成した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:

ユーザーが追加するアイコンと異なりプリセットアイコンは追加、削除することができません。アイコン画像の変更のみ可能です。