{"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支持的手势操作和对应的地图响应如下:


场景图

移图拖动.mp4

双指捏合,缩小地图.mp4

双指旋转地图.mp4

时序

关键参数

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左上角为坐标原点,而非物理屏幕。




","body_lake":null,"pub_level":null,"status":"0","updated_at":"2022-04-06 07:01:48","deleted_at":null,"nameSpace":"mnlcaa/v610","browseCount":185,"collectCount":0,"estimateDate":7,"docStatus":0,"permissions":true,"overView":false}}