百度地图开放平台
更新时间: 2026/09/08 10:07
控件和手势
下载开发文档
地图控件

• 地图Logo
默认在左下角显示,不可以移除。
通过以下方法,使用枚举类型控制显示的位置,共支持6个显示位置(左下、中下、右下、左上、中上、右上)。

mMapView.setLogoPosition(LogoPosition.logoPostionleftBottom);

地图Logo不允许被遮挡,可通过以下方法设置地图边界区域,避免UI遮挡。

mBaiduMap.setPadding(paddingLeft, paddingTop, paddingRight, paddingBottom);

其中paddingLeft、paddingTop、paddingRight、paddingBottom分别表示地图操作区距屏幕左、上、右、下边框的距离,单位为像素(px)。
• 指南针
指南针默认为开启状态,可以关闭显示。设置方法如下:

//获取UiSettings对象
mUiSettings = mBaiduMap.getUiSettings();
//通过设置enable为true或false 选择是否显示指南针
mUiSettings.setCompassEnabled(enable);

• 比例尺
比例尺默认为开启状态,可以关闭显示。设置方法如下:

//通过设置enable为true或false 选择是否显示比例尺
mMapView.showScaleControl(enable);

同时支持设置maxZoomLevel和minZoomLevel,方法为:

mBaiduMap.setMaxAndMinZoomLevel(float max, float min);

另外,可通过mMapView.getMapLevel获取当前地图级别下比例尺所表示的距离大小。
• 缩放按钮
通过如下方式控制缩放按钮是否显示:

//通过设置enable为true或false 选择是否显示缩放按钮
mMapView.showZoomControls(enable);
地图手势

• 地图平移
控制是否启用或禁用平移的功能,默认开启。如果启用,则用户可以平移地图。
设置方式为:

//通过设置enable为true或false 选择是否启用地图平移
mUiSettings.setScrollGesturesEnabled(enable);

• 地图缩放
控制是否启用或禁用缩放手势,默认开启。如果启用,用户可以双指点击或缩放地图视图。
设置方式为:

//通过设置enable为true或false 选择是否启用地图缩放手势
mUiSettings.setZoomGesturesEnabled(enable);

• 地图俯视(3D)
控制是否启用或禁用俯视(3D)功能,默认开启。如果启用,则用户可使用双指向上或向下滑动切换到俯视视角。
设置方式为:

//通过设置enable为true或false 选择是否启用地图俯视功能
mUiSettings.setOverlookingGesturesEnabled(enable);

• 地图旋转
控制是否启用或禁用地图旋转功能,默认开启。如果启用,则用户可使用双指旋转手势旋转地图。
设置方式为:

//通过设置enable为true或false 选择是否启用地图旋转功能
mUiSettings.setRotateGesturesEnabled(enable);

• 禁止所有手势
控制是否启用所有手势,默认启用。若设置为false,所有手势都将被禁用。
设置方式为:

//通过设置enable为true或false 选择是否禁用所有手势
mUiSettings.setAllGesturesEnabled(enable);

• 双击地图是否按中心点放大
控制是否设置双击地图按照当前地图中心点放大。
设置方式为:

//是否双击放大当前地图中心点 默认:false 即按照双击位置放大地图
mUiSettings.setEnlargeCenterWithDoubleClickEnable(enable);
手势回调

Android地图SDK自7.5.2起支持手势事件回调,开发者可以根据回调信息判断当前手势事件与地图状态变化的关系,还可以决定手势事件消费时机。回调接口如下:

/**
* 地图手势事件回调接口
*/
public interface onMapGestureListener {
/**
* 平移
* @param start 平移手势开始屏幕坐标点
* @param end 平移手势结束屏幕坐标点
* @param curStatus 当前地图状态
* @return 该手势事件是否由SDK消费
*/
boolean onMapScroll(Point start, Point end, MapStatus curStatus);
/**
* 双击放大
* @param point 屏幕坐标点
* @param curStatus 当前地图状态
* @return 该手势事件是否由SDK消费
*/
boolean onMapDoubleTouch(Point point, MapStatus curStatus);
/**
* 双指点击缩小
* @param p1 第一个屏幕坐标点
* @param p2 第二个屏幕坐标点
* @param curStatus 当前地图状态
* @return 该手势事件是否由SDK消费
*/
boolean onMapTwoClick(Point p1,Point p2, MapStatus curStatus);
/**
* 捏合
* @param p1
* @param p2
* @param curStatus
* @return 该手势事件是否由SDK消费
*/
boolean onMapKneading(Point p1, Point p2, MapStatus curStatus);
/**
* 俯视
* @param p1
* @param p2
* @param curStatus
* @return 该手势事件是否由SDK消费
*/
boolean onMapOverLooking(Point p1, Point p2, MapStatus curStatus);
/**
* 惯性抛出手势
* @param event
* @param velocityX
* @param velocityY
* @param curStatus
* @return 该手势事件是否由SDK消费
*/
boolean onMapFling(MotionEvent event, float velocityX, float velocityY, MapStatus curStatus);
/**
* 手势事件结束后地图状态
* @param status 当前地图状态
*/
void onMapStatusChangeFinish(MapStatus status);
}

上一篇

自定义地图加载背景网格

下一篇

事件交互
本篇文章对您是否有帮助?