yue1123 / vue3-baidu-map-gl

🎉百度地图 GL版 Vue3 组件库,baidu map gl components libary based on Vue3.0
https://yue1123.github.io/vue3-baidu-map-gl/
MIT License
375 stars 44 forks source link

怎么实现 拖动地图实现定位功能? #59

Closed kood-2008 closed 11 months ago

kood-2008 commented 11 months ago

怎么实现 拖动地图实现定位功能? 就类似京东中 的地址的定位地址, 点击右下按钮出现红色气泡, 此时拖动地图, 中心红色气泡还位于地图的中心, 实现了拖动地图, 把中心红色气泡挪到自己想要的位置,
我绑定了BMap地图的 dragging事件, 但是事件拿到四个参数{type, target, pixel, point} 其中point打印控制台很奇怪point: cD{"lng": 13432583.183799399,"lat": 3553216.716987373}, 有什么思路可以提供吗

yue1123 commented 11 months ago

意思是有一个图标一直浮动显示在地图中心点是吧,拖动地图,地图中心点改变,这个时候图标所处的中心点就是用户选择的地址吗

kood-2008 commented 11 months ago

意思是有一个图标一直浮动显示在地图中心点是吧,拖动地图,地图中心点改变,这个时候图标所处的中心点就是用户选择的地址吗

是的是的

kood-2008 commented 11 months ago

Snipaste_2023-11-28_19-00-30

yue1123 commented 11 months ago

你可以尝试一下用 div 来绘制这个图标,在地图渲染容器中绝对居中,然后通过地图dragend事件拿到中心点

<template>
  <BMap style="position: relative" @dragend="handelDragend">
    <div
      style="
        position: absolute;
        top: 50%;
        left: 50%;
        background-color: #f90;
        width: 100px;
        height: 100px;
        transform: translate(-50%, -50%);
      "
    ></div>
  </BMap>
</template>
<script lang="ts" setup>
  function handelDragend(event) {
    console.log('中心点', event.currentTarget.getCenter())
  }
</script>