手势交互 最后更新时间: 2025年11月17日
地图 SDK 提供了多种手势供用户与地图之间进行交互,如缩放、旋转、拖拽、倾斜。这些手势默认开启,如果想要关闭某些手势,可以通过 UiSettings 类提供的接口来控制手势的开关。
手势方法说明
以下是控制手势生效与否的方法:
名称
说明
setZoomGesturesEnabled(boolean)
设置缩放手势是否可用
setScrollGesturesEnabled(boolean)
设置拖拽手势是否可用
setRotateGesturesEnabled(boolean)
设置旋转手势是否可用
setTiltGesturesEnabled(boolean)
设置倾斜手势是否可用
setGestureScaleByMapCenter(boolean)
设置是否以地图中心点缩放
setAllGesturesEnabled(boolean)
设置所有手势是否可用
以下是检测手势是否生效的方法:
名称
说明
isZoomGesturesEnabled()
缩放手势是否可用
isScrollGesturesEnabled()
拖拽手势是否可用
isRotateGesturesEnabled()
旋转手势是否可用
isTiltGesturesEnabled()
倾斜手势是否可用
isGestureScaleByMapCenter()
是否地图中心点缩放
缩放手势
缩放手势可改变地图的缩放级别,地图响应的手势如下:
- 双击地图可以使缩放级别增加1 (放大)
- 两个手指捏/拉伸
以下是控制缩放手势开启关闭的代码:
aMap.getUiSettings()?.setZoomGesturesEnabled(boolean);拖拽手势
您可以用手指拖动地图四处滚动(平移)或用手指滑动地图(动画效果),也可以禁用或开启平移(滑动)手势。
以下介绍控制拖拽手势开启关闭的方法,示例代码如下:
aMap.getUiSettings()?.setScrollGesturesEnabled(boolean);旋转手势
您可以用两个手指在地图上转动,可以旋转地图,也可以禁用旋转手势。
以下介绍控制旋转手势开启关闭的方法,示例代码如下:
aMap.getUiSettings()?.setRotateGesturesEnabled(boolean);倾斜手势
用户可以在地图上放置两个手指,移动它们一起向下或向上去增加或减小倾斜角,也可以禁用倾斜手势。
以下是控制倾斜手势开启关闭的代码:
aMap.getUiSettings()?.setTiltGesturesEnabled(boolean);地图中心点缩放
用户可以设置地图缩放位置,可以以中心点缩放或在缩放位置缩放。
以下是控制地图中心点缩放开启关闭的代码:
aMap.getUiSettings()?.setGestureScaleByMapCenter(boolean);所有手势是否可用
用户可以统一设置地图是否支持手势交互。
以下是控制所有手势是否可用的代码:
aMap.getUiSettings()?.setAllGesturesEnabled(boolean);指定屏幕中心点的手势操作
在对地图进行手势操作时(滑动手势除外),可以指定屏幕中心点后执行相应手势。
指定屏幕中心点的接口如下,在AMap类中:
/**
* 设置屏幕上的某个像素点为地图中心点。
* <p>使用该方法设置后,地图将以所设置的屏幕坐标点为中心进行旋转、倾斜。同时, {@link #moveCamera(CameraUpdate) } 方法也将会以此坐标点为中心进行设置。
*
* @param x 屏幕像素点x轴坐标。
* @param y 屏幕像素点y轴坐标。
* @since v2.2.0
*/
public setPointToCenter(x: number, y: number): void开启以中心点进行手势操作的接口如下,在UiSettings类中:
/**
* 设置是否以地图中心点缩放 <br>
* 注:优先级低于{@link AMap#setPointToCenter(int, int)}
*
* @param isGestureScaleByMapCenter true:以地图中心的进行缩放,false:不以地图中心的进行缩放
* @since 1.0.0
*/
public setGestureScaleByMapCenter(isGestureScaleByMapCenter: boolean): void