腾讯地图SDK Android版开发 5 地图交互操作
前言
前文介绍了三个主题:创建显示地图;切换地图类型;显示定位。本文重点介绍地图交互操作及相关的类和接口。
-
腾讯地图支持多种地图交互操作,用户可以通过手势或控件进行地图操作,以实现更好的地图浏览体验。另一方面开发者通过代码实现特定业务场景的地图交互。
-
腾讯地图通过设定不同的地图状态,来改变地图视野。
-
最后是不属于地图操作的地图事件,但是也很重要。
- 比如地图加载完成事件,一些特定接口需要在地图加载完成后才能调用(在显示定位和本文均有提及)。
控件介绍
控件介绍
腾讯地图提供一些基础的地图控件,包括LOGO、指南针、比例尺、定位按钮。
控件 | 功能 | 默认显示 | 默认位置 |
---|---|---|---|
LOGO | 可设置显示相对位置(左下,中下,右下,左上,中上,右上) 设置Logo的缩放比例 |
显示 | 右下角 |
指南针 | 设置是否显示,设置罗盘的填边 | 不显示 | 左上角 |
比例尺 | 设置是否显示,设置比例尺是否淡出,设置比例尺的显示相对位置位置 | 不显示 | 左下角 |
定位按钮 | 设置是否显示 | 不显示 | 右下角 |
接口
UiSettings
类用于操控地图控件,以定制自己想要的视图效果。UiSettings
类中地图控件的接口:
- LOGO
类型 | 方法 | 说明 |
---|---|---|
void | setLogoPosition (int logoAnchor) |
设置Logo的显示位置 |
void | setLogoPosition (int logoAnchor, int[] marginParams) |
根据地图四个Anchor 模式(左上、左下、右下、右上)以及相应的Margins来设置Logo位置 |
void | setLogoPositionWithMargin (int position, int top, int bottom, int left, int right) |
设置Logo的显示位置,带偏移量,单位像素 设置Logo的显示位置 |
void | setLogoScale (float logoScale) |
设置Logo的缩放比例,比例范围(0.7~1.3) |
void | setLogoSize (int logoSize) |
设置图标大小,暂时不生效 |
- 指南针
类型 | 方法 | 说明 |
---|---|---|
boolean | isCompassEnabled () |
获取当前是否开启罗盘控件 |
void | setCompassEnabled (boolean flag) |
设置是否显示指南针 |
void | setCompassExtraPadding (int xPadding, int yPadding) |
设置罗盘的填边 |
void | setCompassExtraPadding (int padding) |
设置罗盘的填边,只对Y轴生效 |
- 比例尺
类型 | 方法 | 说明 |
---|---|---|
boolean | isScaleViewEnabled () |
获取当前是否显示比例尺 |
void | setScaleViewEnabled (boolean show) |
设置当前是否显示比例尺 |
void | setScaleViewFadeEnable (boolean enable) |
设置比例尺是否淡出 |
void | setScaleViewPosition (int position) |
设置比例尺的显示位置 |
void | setScaleViewPositionWithMargin (int position, int top, int bottom, int left, int right) |
设置比例尺的显示位置,带偏移量,单位像素 |
- 定位按钮
类型 | 方法 | 说明 |
---|---|---|
boolean | isMyLocationButtonEnabled () |
获取当前是否显示定位控件 |
void | setMyLocationButtonEnabled (boolean flag) |
设置是否显示定位按钮 |
控件常量
TencentMapOptions
类中的控件常量:
- 定位
常量 | 说明 |
---|---|
LOGO_POSITION_BOTTOM_LEFT |
设置地图logo的显示位置:左下角 |
LOGO_POSITION_TOP_LEFT |
设置地图logo的显示位置:左上角 |
LOGO_POSITION_TOP_CENTER |
设置地图logo的显示位置:顶部居中 |
LOGO_POSITION_TOP_RIGHT |
设置地图logo的显示位置:右上角 |
LOGO_POSITION_BOTTOM_RIGHT |
设置地图logo的显示位置:右下角(默认) |
LOGO_POSITION_BOTTOM_CENTER |
设置地图logo的显示位置:底部居中 |
- 比例尺
常量 | 说明 |
---|---|
SCALEVIEW_POSITION_BOTTOM_LEFT |
设置地图比例尺的显示位置:左下角,默认 |
SCALEVIEW_POSITION_TOP_LEFT |
设置地图比例尺的显示位置:左上角 |
SCALEVIEW_POSITION_TOP_CENTER |
设置地图比例尺的显示位置:顶部居中 |
SCALEVIEW_POSITION_TOP_RIGHT |
设置地图比例尺的显示位置:右上角 |
SCALEVIEW_POSITION_BOTTOM_RIGHT |
设置地图比例尺的显示位置:右下角 |
SCALEVIEW_POSITION_BOTTOM_CENTER |
设置地图比例尺的显示位置:底部居中 |
地图控件点击事件
类型 | 接口 | 说明 |
---|---|---|
static interface | TencentMap.OnCompassClickedListener |
当地图的罗盘被点击时的回调接口 |
static interface | TencentMap.OnMyLocationClickListener |
点击我的位置时的回调接口 |
类型 | 方法 | 说明 |
---|---|---|
void | setOnCompassClickedListener (TencentMap.OnCompassClickedListener onCompassClickedListener) |
设置罗盘位按钮监听接口 |
示例代码
通过 TencentMap
类实现UiSettings
类对象的实例化: