Tap & Gesture Control

この章では地図に対するユーザーの操作を検出する方法を紹介します。

タップ操作

地図のタップを検知する事ができます。検知可能な操作と対応するリスナーは以下の通りです。

操作リスナーリスナー追加関数
地図の単押しOnMapClickListenerMap.addOnMapClickListener
地図の長押しOnMapLongClickListenerMap.addOnMapLongClickListener

地図の操作検知

地図の操作検知のサンプルコードは以下の通りです。

map.addOnMapClickListener(new OnMapClickListener() {
    @Override
    public boolean onMapClick(GeoCoordinate point) {
        // pointにクリックした場所の緯度経度が格納されています
        return false;
    }
});

ジェスチャー

SDKでは地図に対するいくつかの複雑な動作(ジェスチャー)をサポートしています。サポートされている地図に対するユーザーのジェスチャーの種類は以下の通りです。

SCROLL_GESTURE

1本指でドラッグ・フリックし地図をスクロールします。

scroll

ROTATE_GESTURE

2本指を回転し地図を回転します。

rotate

TILT_GESTURE

2本指を前後にスライドし地図の傾きを変えます。

tile

QUICK_ZOOM_GESTURE

1本指でダブルタップしたままドラッグすることで地図を拡大、縮小します。

quick_zoom

DOUBLE_TAP_GESTURE, TWO_FINGER_TAP_GESTURE

1本指のダブルタップで地図を拡大し、2本指のダブルタッチで地図を縮小します。

double_tap

two_tap

PINCH_GESTURE

2本指でピンチ操作し地図を拡大、縮小します。

zoom

Map.setMapGesture()で各ジェスチャの設定の有効・無効を変更することが可能です。(デフォルト全て有効)

Map.setAllGesturesEnabled()で全てのジェスチャの有効・無効を一括で変更することもできます。

ジェスチャーの検出

リスナーを設定することで地図に対するユーザーのジェスチャーを検出することができます。ジェスチャーとそのリスナーの対応は以下の通りです。

ジェスチャーリスナーリスナー追加関数
SCROLL_GESTUREOnMapMoveListenerMap.addOnMapMoveListener
ROTATE_GESTUREOnMapRotateListenerMap.addOnMapRotateListener
TILT_GESTURE--
QUICK_ZOOM_GESTUREOnMapScaleListenerMap.addOnMapScaleListener
DOUBLE_TAP_GESTUREOnMapScaleListenerMap.addOnMapScaleListener
TWO_FINGER_TAP_GESTUREOnMapScaleListenerMap.addOnMapScaleListener
PINCH_GESTUREOnMapScaleListenerMap.addOnMapScaleListener
Note:

QUICK_ZOOM_GESTURE, DOUBLE_TAP_GESTURE, TWO_FINGER_TAP_GESTURE, ZOOM_GESTUREは全てOnMapScaleListenerで通知されます。

各リスナーではジャスチャーの開始、ジェスチャー中、終了がそれぞれ通知されます。例えばOnMapMoveListenerでそれぞれの通知を受け取るためのサンプルコードは以下の通りです。

map.addOnMapMoveListener(new OnMapMoveListener() {
    @Override
    public void onMoveBegin() {
        // 移動の開始
    }

    @Override
    public void onMove() {
        // 移動中
    }

    @Override
    public void onMoveEnd() {
        // 移動の終了
    }
});