【高德地图】Android高德地图控件交互详细介绍

📖第5章 与地图控件交互

✅控件交互

控件是指浮在地图图面上的一系列用于操作地图的组件,例如缩放按钮指南针定位按钮比例尺等。

UiSettings 类用于操控这些控件,以定制自己想要的视图效果。而UiSettings 类对象的实例化需要通过 AMap 类来实现:

java 复制代码
private UiSettings mUiSettings;//定义一个UiSettings对象
mUiSettings = aMap.getUiSettings();//实例化UiSettings类对象
🧊缩放按钮
java 复制代码
mUiSettings.setZoomControlsEnabled(true);//缩放按钮
名称 调用方法
是否允许显示缩放按钮 UiSettings.setZoomControlsEnabled(boolean)
设置缩放按钮的位置 UiSettings.setZoomPosition(int position)
获取缩放按钮的位置 UiSettings.getZoomPosition()

缩放按钮的位置AMapOptions里面提供了默认两种:

java 复制代码
AMapOptions.ZOOM_POSITION_RIGHT_CENTER	//右边中间
AMapOptions.ZOOM_POSITION_RIGHT_BUTTOM	//右边下面
🧊指南针
java 复制代码
mUiSettings.setCompassEnabled(true);//指南针
🧊定位按钮

App 端用户可以通过点击定位按钮在地图上标注一个蓝色定位点,代表其当前位置。不同于以上控件,定位按钮内部的逻辑实现依赖 Android 定位 SDK。

java 复制代码
aMap.setLocationSource(this);//通过aMap对象设置定位数据源的监听

mUiSettings.setMyLocationButtonEnabled(true); //显示默认的定位按钮

aMap.setMyLocationEnabled(true);// 可触发定位并显示当前位置

SDK 没有提供自定义定位按钮的功能,如果您想要实现该功能,可以浏览参考论坛的帖子的内容。

高德地图的 logo 默认在左下角显示,不可以移除,但支持调整到固定位置。设置的方法是:

java 复制代码
 mUiSettings.setLogoPosition(AMapOptions.LOGO_MARGIN_BOTTOM);//logo位置

Logo位置说明

名称 位置说明
AMapOptions.LOGO_POSITION_BOTTOM_LEFT LOGO边缘MARGIN(左边)
AMapOptions.LOGO_MARGIN_BOTTOM LOGO边缘MARGIN(底部
AMapOptions.LOGO_MARGIN_RIGHT LOGO边缘MARGIN(右边)
AMapOptions.LOGO_POSITION_BOTTOM_CENTER Logo位置(地图底部居中)
AMapOptions.LOGO_POSITION_BOTTOM_LEFT Logo位置(地图左下角)
AMapOptions.LOGO_POSITION_BOTTOM_RIGHT Logo位置(地图右下角)

✅手势交互

地图 SDK 提供了多种手势供 App 端用户与地图之间进行交互,如缩放、旋转、滑动、倾斜。这些手势默认开启,如果想要关闭某些手势,可以通过 UiSetting 类提供的接口来控制手势的开关。

手势方法说明,以下是控制手势生效与否的方法:

名称 调用方法
缩放手势 UiSettings.setZoomGesturesEnabled(boolean)
滑动手势 UiSettings.setScrollGesturesEnabled(boolean)
旋转手势 UiSettings.setRotateGesturesEnabled(boolean)
倾斜手势 UiSettings.setTiltGesturesEnabled(boolean)
所有手势 UiSettings.setAllGesturesEnabled (boolean)

以下是检测手势是否生效的方法:

名称 调用方法
缩放手势 UiSettings.isZoomGesturesEnabled()
滑动手势 UiSettings.isScrollGesturesEnabled()
旋转手势 UiSettings.isRotateGesturesEnabled()
倾斜手势 UiSettings.isTiltGesturesEnabled()
🧊缩放手势

缩放手势可改变地图的缩放级别,地图响应的手势如下:

  • 双击地图可以使缩放级别增加1 (放大)
  • 两个手指捏/拉伸

也可以禁用或启用缩放手势。禁用缩放手势不会影响用户使用地图上的缩放控制按钮。以下是控制缩放手势开启关闭的代码:

java 复制代码
mUiSettings.setZoomGesturesEnabled(true);
🧊滑动手势

您可以用手指拖动地图四处滚动(平移)或用手指滑动地图(动画效果),也可以禁用或开启平移(滑动)手势。

以下介绍控制缩放手势开启关闭的方法,示例代码如下:

复制代码
UiSettings.setScrollGesturesEnabled(boolean);
🧊旋转手势

您可以用两个手指在地图上转动,可以旋转3D矢量地图,也可以禁用旋转手势。

以下介绍控制旋转手势开启关闭的方法,示例代码如下:

复制代码
UiSettings.setRotateGesturesEnabled(boolean);
🧊倾斜手势

用户可以在地图上放置两个手指,移动它们一起向下或向上去增加或减小倾斜角,也可以禁用倾斜手势。

以下是控制倾斜手势开启关闭的代码:

复制代码
UiSettings.setTiltGesturesEnabled(boolean);
🧊指定屏幕中心点的手势操作

在对地图进行手势操作时(滑动手势除外),可以指定屏幕中心点后执行相应手势。

指定屏幕中心点的方法如下,在AMap类中:

复制代码
setPointToCenter(int x, int y);//x、y均为屏幕坐标,屏幕左上角为坐标原点,即(0,0)点。

开启以中心点进行手势操作的方法:

复制代码
aMap.getUiSettings().setGestureScaleByMapCenter(true);

第1,2章 Android搭建3D高德地图详细教

第 3 章 初始化定位并显示小蓝点

第 4 章Android高德地图绘制标记点Marker

第 5 章Android高德地图控件交互详细介绍

相关推荐
阿巴斯甜1 天前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker1 天前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq95271 天前
Andorid Google 登录接入文档
android
黄林晴1 天前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab2 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿2 天前
Android MediaPlayer 笔记
android
Jony_2 天前
Android 启动优化方案
android
阿巴斯甜2 天前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇2 天前
AOSP15 Input专题InputReader源码分析
android
_小马快跑_2 天前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android