当前位置: 首页 > news >正文

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

📖第5章 与地图控件交互

      • ✅控件交互
        • 🧊缩放按钮
        • 🧊指南针
        • 🧊定位按钮
        • 🧊地图Logo
      • ✅手势交互
        • 🧊缩放手势
        • 🧊滑动手势
        • 🧊旋转手势
        • 🧊倾斜手势
        • 🧊指定屏幕中心点的手势操作

✅控件交互

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

image-20231230171435705

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

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

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

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

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

aMap.setLocationSource(this);//通过aMap对象设置定位数据源的监听mUiSettings.setMyLocationButtonEnabled(true); //显示默认的定位按钮aMap.setMyLocationEnabled(true);// 可触发定位并显示当前位置

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

🧊地图Logo

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

 mUiSettings.setLogoPosition(AMapOptions.LOGO_MARGIN_BOTTOM);//logo位置

Logo位置说明

名称位置说明
AMapOptions.LOGO_POSITION_BOTTOM_LEFTLOGO边缘MARGIN(左边)
AMapOptions.LOGO_MARGIN_BOTTOMLOGO边缘MARGIN(底部
AMapOptions.LOGO_MARGIN_RIGHTLOGO边缘MARGIN(右边)
AMapOptions.LOGO_POSITION_BOTTOM_CENTERLogo位置(地图底部居中)
AMapOptions.LOGO_POSITION_BOTTOM_LEFTLogo位置(地图左下角)
AMapOptions.LOGO_POSITION_BOTTOM_RIGHTLogo位置(地图右下角)

✅手势交互

地图 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 (放大)
  • 两个手指捏/拉伸

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

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

相关文章:

  • C# 语言教程
  • 团簇束流沉积技术:氢气传感器守护安全与环境的利器
  • ElasticSearch之单值多字段查询以及dis max query
  • Github 2024-02-24 开源项目日报Top10
  • 使用pytest和allure框架实现自动化测试报告优化
  • 程序环境和预处理(1)
  • 【Python】实现限时循环的学习笔记
  • [工具探索]VSCode介绍和进阶使用
  • [python]python监听、操作键盘鼠标库pynput详细教程
  • 后端设计PNR一点总结
  • Qt不规则可移动窗体的实现
  • Linux的RPM 与 YUM
  • WebService学习,wsdl文件详解
  • 华清远见嵌入式学习——驱动开发——day9
  • C语言-指针初学速成
  • CSS居中完全指南——构建CSS居中决策树
  • Cumulo 的 ClojureScript 模块已经成型
  • JavaWeb(学习笔记二)
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 从零开始在ubuntu上搭建node开发环境
  • 从重复到重用
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 将 Measurements 和 Units 应用到物理学
  • 聊聊redis的数据结构的应用
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 普通函数和构造函数的区别
  • 入门级的git使用指北
  • 你对linux中grep命令知道多少?
  • $jQuery 重写Alert样式方法
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (10)ATF MMU转换表
  • (11)MATLAB PCA+SVM 人脸识别
  • (c语言)strcpy函数用法
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (离散数学)逻辑连接词
  • (转)Android学习笔记 --- android任务栈和启动模式
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET 使用 XPath 来读写 XML 文件
  • .NET中GET与SET的用法
  • .sh 的运行
  • @Autowired多个相同类型bean装配问题
  • @hook扩展分析
  • []Telit UC864E 拨号上网
  • [Android 数据通信] android cmwap接入点
  • [Android]通过PhoneLookup读取所有电话号码
  • [Angularjs]ng-select和ng-options
  • [CF543A]/[CF544C]Writing Code
  • [cocos creator]EditBox,editing-return事件,清空输入框
  • [codeforces]Levko and Permutation
  • [Erlang 0129] Erlang 杂记 VI 2014年10月28日