【高德地图】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 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台1 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone1 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc2 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo2 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077002 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼2 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone2 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen2 天前
属性动画原理与高级动画实现
android·kotlin·canvas
AFinalStone2 天前
Android7 SystemUI 源码解析(二)启动流程深度解析
android·systemui