【高德地图】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高德地图控件交互详细介绍

相关推荐
Cloud_Shy61814 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第六章 Item 40 - 43)
android·开发语言·人工智能·笔记·python·学习方法
Z-D-K14 小时前
考验AI的“自我和意识“-AI对《红楼梦》后40回的改写(21)
人工智能·ai·aigc·交互·agi
AFinalStone14 小时前
Android12 U盘插拔链路源码全解析(五):Framework层(下) StorageManagerService
android·frameworks
互联网散修16 小时前
鸿蒙实战:仿小红书“我”的页面——从分层架构到沉浸式交互
交互·harmonyos
林九生16 小时前
【实用技巧】MySQL 绿色版一键路径更新脚本详解 —— update_path.bat 深度解析
android·数据库·mysql
2301_7644413316 小时前
基于AI的本地文件归档智能管理工具梳理
人工智能·python·算法·目标检测·交互
故渊at17 小时前
第十三板块:Android 综合架构与未来演进 | 第三十一篇:Android 架构演进与 Fuchsia OS 的挑战
android·架构·宏内核·微内核·fuchsia·ipc 性能博弈
aqi0017 小时前
一文速览 HarmonyOS 6.1.1 推出的十个新特性
android·华为·harmonyos·鸿蒙·harmony
matrixmind117 小时前
aiomysql:异步场景下的 MySQL 驱动
android·数据库·mysql·其他
随遇丿而安17 小时前
第8周:弹窗 / 提示组件全功能与弹窗优化
android