发现这样一个app的地图功能听新颖的--无论怎么拖动地图,十字架在手机屏幕中心位置不会改变,就犹如狙击枪的瞄准镜的那般感觉,想实现类似的,不曾想竟碰壁了,有哪位遇到过,或者有思路的帮个忙,指点一下迷津可好呀?
1条回答 默认 最新
关注 引用 皆我百晓生 小程序回复内容作答:
在uni-app中使用高德地图,可以通过以下步骤实现拖动地图后中心位置不改变的效果:
导入高德地图SDK
首先,在你的uni-app项目中引入高德地图插件,可以使用官方提供的uni-modules插件管理工具,或者直接下载相应的uni-app高德地图插件。创建地图组件
在页面中创建一个地图组件,并设置组件的宽度和高度,在组件中初始化地图。设置地图拖动事件
使用高德地图SDK提供的amap.moveend
事件,监听地图的移动结束事件。当地图拖动结束后,获取地图中心点坐标,并将其设置为地图的中心点,实现中心位置不改变的效果。示例代码
下面是一个简单的示例代码,实现了拖动地图后中心位置不改变的效果:
<template> <view> <amap :class="'map'" ref="map"></amap> </view> </template> <script> export default { onReady() { this.initMap() }, methods: { initMap() { uni.getLocation({ type: 'gcj02', success: (res) => { // 创建地图 this.$refs.map.createMap({ zoom: 10, latitude: res.latitude, longitude: res.longitude }) // 监听地图移动结束事件 this.$refs.map.addEventListener('moveend', () => { // 获取地图中心点坐标 const center = this.$refs.map.getCenter() // 设置地图中心点 this.$refs.map.setCenter(center) }) } }) } } } </script> <style> .map { width: 100%; height: 100%; } </style>
在上面的代码中,
amap
是地图组件的自定义标签,ref="map"
用于获取地图组件的引用。onReady
生命周期钩子函数用于在页面加载完成后初始化地图。通过
uni.getLocation
接口获取当前位置的经纬度,然后使用this.$refs.map.createMap
方法创建地图,并设置地图的缩放级别和中心点。接着,使用
addEventListener
方法监听地图的moveend
事件,当地图移动结束后,获取地图的中心点坐标,并通过this.$refs.map.setCenter
方法将其设置为地图的中心点。最后,利用css设置地图组件的宽度和高度,使其充满整个页面。
希望以上内容对你有帮助,祝你实现类似狙击枪瞄准镜效果的地图功能成功!
解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 基于卷积神经网络的声纹识别
- ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
- ¥100 为什么这个恒流源电路不能恒流?
- ¥15 有偿求跨组件数据流路径图
- ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
- ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
- ¥15 CSAPPattacklab
- ¥15 一直显示正在等待HID—ISP
- ¥15 Python turtle 画图
- ¥15 stm32开发clion时遇到的编译问题