笨么笨 2023-09-01 18:08 采纳率: 50%
浏览 11

uniapp之高德地图 无论如何拖动地图,中心位置不会改变

发现这样一个app的地图功能听新颖的--无论怎么拖动地图,十字架在手机屏幕中心位置不会改变,就犹如狙击枪的瞄准镜的那般感觉,想实现类似的,不曾想竟碰壁了,有哪位遇到过,或者有思路的帮个忙,指点一下迷津可好呀?

img

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-09-02 08:06
    关注

    引用 皆我百晓生 小程序回复内容作答:

    在uni-app中使用高德地图,可以通过以下步骤实现拖动地图后中心位置不改变的效果:

    1. 导入高德地图SDK
      首先,在你的uni-app项目中引入高德地图插件,可以使用官方提供的uni-modules插件管理工具,或者直接下载相应的uni-app高德地图插件。

    2. 创建地图组件
      在页面中创建一个地图组件,并设置组件的宽度和高度,在组件中初始化地图。

    3. 设置地图拖动事件
      使用高德地图SDK提供的amap.moveend事件,监听地图的移动结束事件。当地图拖动结束后,获取地图中心点坐标,并将其设置为地图的中心点,实现中心位置不改变的效果。

    4. 示例代码
      下面是一个简单的示例代码,实现了拖动地图后中心位置不改变的效果:

    <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设置地图组件的宽度和高度,使其充满整个页面。

    希望以上内容对你有帮助,祝你实现类似狙击枪瞄准镜效果的地图功能成功!

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 9月1日

悬赏问题

  • ¥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时遇到的编译问题