{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671508808459,"data":{"id":71711935,"title":"2.5.6 手势识别","slug":"dw7gvb","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"
地图上的手势操作,外部可直接注入原始的touch事件,AutoSDK 内部会做手势识别和对应的地图响应。
目前AutoSDK支持的手势操作和对应的地图响应如下:
无
com.autonavi.gbl.map.model.TouchEvent
public class TouchEvent {\n /**\n * 事件类型\n */\n public @GestureAction.GestureAction1 int action;\n /**\n * 事件发生x轴坐标\n */\n public int x;\n /**\n * 事件发生y轴坐标\n */\n public int y;\n /**\n * 坐标数量\n */\n public int pointCount;\n /**\n * 事件发生时间\n */\n public long eventTime;\n /**\n * 事件index\n */\n public int actionIndex;\n /**\n * 事件涉及所有点的坐标\n */\n public float[] pointerCoordinate;\n /**\n * 事件涉及所有点的压力值\n */\n public float[] pointPressure;\n /**\n * 事件涉及所有点的ID\n */\n public int[] pointId;\n}
com.autonavi.gbl.map.impl.GestureConfigure
字段 | 含义 | 默认值 |
bTouchEnable | 手势识别是否使能 | true |
bLockMapRollAngle | 是否锁住手势旋转地图 | false |
bLockMapPitchAngle | 是否锁住手势调整俯仰角度 | false |
bLockMapPinchZoom | 是否锁住手势双指捏合缩放 | false |
bLockMapMove | 是否锁住手势移图 | false |
bSlidingEnable | 是否支持惯性移图(甩图) | false |
b3DMovingHidePoi | 3D视图下移图是否隐藏POI点信息 | true |
b3DSlidingHidePoi | 3D视图下惯性甩图是否隐藏POI点信息 | true |
bMapLabelClickable | 是否手势可点击POI | true |
bDoublePressZoomInByTouchPoint | 单指双击按触点放大 | false |
bTwoFingerPressZoomOutByTouchPoint | 双指单击按两指触点中心缩小 | false |
bTwoFingerScaleRotateByTouchPoint | 双指捏合&旋转按两指触点中心缩放 | false |
nSinglePressTimeOut | 单击手势超时时间(ms) | 200 |
nLongPressTimeOut | 长按手势超时时间(ms) | 1000 |
nTwoFingerPressTimeOut | 双指单击手势超时时间(ms) | 200 |
nTwoFingerPressDeltaX | 双指单击手势x轴最大偏移像素 | 15 |
nTwoFingerPressDeltaY | 双指单击手势y轴最大偏移像素 | 15 |
void com.autonavi.gbl.map.OperatorGesture.addTouchEvent(TouchEvent event)
void com.autonavi.gbl.map.impl.OperatorGestureImpl.setGestureConfigure(GestureConfigure gestureCfg)
说明:函数详情,请复制函数名称到在线API搜索
\npublic boolean onTouchEvent(MotionEvent event)\n {\n if (null != mMapView) {\n mMapView.addTouchEvent(MapHelper.getMotionEventHelper().translateMotionEvent(event));\n return true;\n }\n return false;\n }\n
1. 3D视图下手势移图和甩图过程中默认会隐藏POI点信息,若需要关闭可使用以下接口关闭:
void com.autonavi.gbl.map.OperatorGesture.hidePoiOn3DMoving(boolean isHide)
void com.autonavi.gbl.map.OperatorGesture.hidePoiOn3DSliding(boolean isHide)
2. 不同手势的锁定操作及接口:
void com.autonavi.gbl.map.OperatorGesture.lockMapMove(boolean lock)
等价通过setGestureConfigure接口调整GestureConfigure.bLockMapMove
void com.autonavi.gbl.map.OperatorGesture.lockMapPinchZoom(boolean lock)
等价通过setGestureConfigure接口调整GestureConfigure.bLockMapPinchZoom
void com.autonavi.gbl.map.OperatorGesture.lockMapPitchAngle(boolean lock)
等价通过setGestureConfigure接口调整GestureConfigure.bLockMapPitchAngle
void com.autonavi.gbl.map.OperatorGesture.lockMapRollAngle(boolean lock)
等价通过setGestureConfigure接口调整GestureConfigure.bLockMapRollAngle
说明:函数详情,请复制函数名称到在线API搜索
3. 触屏事件TouchEvent发生的x、y坐标是以视图MapView左上角为坐标原点,而非物理屏幕。