地图Logo
默认在左下角显示,不可以移除。
通过以下方法,使用枚举类型控制显示的位置,共支持6个显示位置(左下,中下,右下,左上,中上,右上)。
mMapView.setLogoPosition(LogoPosition.logoPostionleftBottom);
地图Logo不允许遮挡,可通过以下方法可以设置地图边界区域,来避免UI遮挡。
mBaiduMap.setPadding(paddingLeft, paddingTop, paddingRight, paddingBottom);
其中参数paddingLeft、paddingTop、paddingRight、paddingBottom参数表示距离屏幕边框的左、上、右、下边距的距离,单位为屏幕坐标的像素密度。
指南针
指南针默认为开启状态,可以关闭显示 。设置方法如下:
//实例化UiSettings类对象 mUiSettings = mBaiduMap.getUiSettings(); //通过设置enable为true或false 选择是否显示指南针 mUiSettings.setCompassEnabled(enabled);
比例尺
比例尺默认为开启状态,可以关闭显示。设置方法如下:
//通过设置enable为true或false 选择是否显示比例尺 mMapView.showScaleControl(enabled);
同时支持设置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);
禁止所有手势
控制是否一并禁止所有手势,默认关闭。如果启用,所有手势都将被禁用。
设置方式为:
//通过设置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); }