VUE3 腾讯地图 拾取坐标

VUE3 腾讯地图 拾取坐标 (选地)

1. 注册key

https://lbs.qq.com/dev/console/application/mine (腾讯地图)

2. 具体代码
<div class="map-picker-container">
  <div id="mapContainer" class="map-container"></div>
  <!-- <div class="coordinate-info">
    当前坐标:{{ state.latitude }}, {{ state.longitude }}
  </div> -->
</div>
    const MAP_KEY = 'XXX-XXX-XXXX-XXXX'
    const visibleModel = ref(true)
    const state = reactive({
      mapObj: null,
      markerObj: null,
      latitude: null,
      longitude: null
    })
    onMounted(() => {
      const containerId = 'mapContainer'
      const TencentMapSDK = document.createElement('script')
      TencentMapSDK.src = `https://map.qq.com/api/js?v=2.exp&key=${MAP_KEY}&callback=initMapSDK`
      document.head.appendChild(TencentMapSDK)
      console.log(123456)
      window.initMapSDK = () => {
        // eslint-disable-next-line no-undef
        state.mapObj = new qq.maps.Map(document.getElementById(containerId), {
          // eslint-disable-next-line no-undef
          center: new qq.maps.LatLng(36.622438, 101.78043),
          zoom: 12
        })

        // eslint-disable-next-line no-undef
        qq.maps.event.addListener(state.mapObj, 'click', (event) => {
          const location = event.latLng
          state.latitude = location.getLat().toFixed(6)
          state.longitude = location.getLng().toFixed(6)

          if (!state.markerObj) {
            // eslint-disable-next-line no-undef
            state.markerObj = new qq.maps.Marker({
              position: location,
              map: state.mapObj
            })
          } else {
            state.markerObj.setPosition(location)
          }
        })
      }
    })

    const handleOk = () => {
      if (state.latitude && state.longitude) formState.coordinate = `${state.latitude},${state.longitude}`
    }
<style lang="scss">
.map-picker-container {
  display: flex;
  flex-direction: column;
}
.map-container {
  height: 500px;
}
.coordinate-info {
  margin-top: 10px;
  text-align: center;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值