Tap & Gesture Control
この章では地図に対するユーザーの操作を検出する方法を紹介します。
タップ操作
地図のタップを検知する事ができます。検知可能な操作と対応するリスナーは以下の通りです。
操作 | リスナー | リスナー追加関数 |
---|---|---|
地図の単押し | OnMapClickListener | Map.addOnMapClickListener |
地図の長押し | OnMapLongClickListener | Map.addOnMapLongClickListener |
地図の操作検知
地図の操作検知のサンプルコードは以下の通りです。
map.addOnMapClickListener(new OnMapClickListener() {
@Override
public boolean onMapClick(GeoCoordinate point) {
// pointにクリックした場所の緯度経度が格納されています
return false;
}
});
ジェスチャー
SDKでは地図に対するいくつかの複雑な動作(ジェスチャー)をサポートしています。サポートされている地図に対するユーザーのジェスチャーの種類は以下の通りです。
SCROLL_GESTURE
1本指でドラッグ・フリックし地図をスクロールします。
ROTATE_GESTURE
2本指を回転し地図を回転します。
TILT_GESTURE
2本指を前後にスライドし地図の傾きを変えます。
QUICK_ZOOM_GESTURE
1本指でダブルタップしたままドラッグすることで地図を拡大、縮小します。
DOUBLE_TAP_GESTURE, TWO_FINGER_TAP_GESTURE
1本指のダブルタップで地図を拡大し、2本指のダブルタッチで地図を縮小します。
PINCH_GESTURE
2本指でピンチ操作し地図を拡大、縮小します。
Map.setMapGesture()
で各ジェスチャの設定の有効・無効を変更することが可能です。(デフォルト全て有効)
Map.setAllGesturesEnabled()
で全てのジェスチャの有効・無効を一括で変更することもできます。
ジェスチャーの検出
リスナーを設定することで地図に対するユーザーのジェスチャーを検出することができます。ジェスチャーとそのリスナーの対応は以下の通りです。
ジェスチャー | リスナー | リスナー追加関数 |
---|---|---|
SCROLL_GESTURE | OnMapMoveListener | Map.addOnMapMoveListener |
ROTATE_GESTURE | OnMapRotateListener | Map.addOnMapRotateListener |
TILT_GESTURE | - | - |
QUICK_ZOOM_GESTURE | OnMapScaleListener | Map.addOnMapScaleListener |
DOUBLE_TAP_GESTURE | OnMapScaleListener | Map.addOnMapScaleListener |
TWO_FINGER_TAP_GESTURE | OnMapScaleListener | Map.addOnMapScaleListener |
PINCH_GESTURE | OnMapScaleListener | Map.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() {
// 移動の終了
}
});