UniApp调用腾讯地图TMap

本文详细介绍了在Vue应用中通过两种方式动态引入腾讯地图API并确保TMap可用性,包括在App.vue的onLaunch和组件mounted阶段的实现,以及关键的window.TMap判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法有二种:

第一种:在要目录App.vue文件的onLauch里加入

onLaunch: function() {

/*动态引入script 腾讯地图*/

      const script = document.createElement('script') script.src = 'https://map.qq.com/api/gljs?v=1.exp&key=你的key&libraries=tools'

document.body.appendChild(script)

}

第二种:在要目录*****.vue文件的mounted里加入

mounted() {
  try {
    if (window.TMap) {
      //todo 如果能访问到TMap直接初始化
      this.initMap()
    } else {
      //todo 动态引入
      const script = document.createElement('script');
      script.src = "https://map.qq.com/api/gljs?v=1.exp&key=你的key&libraries=tools";
      script.onload = () => {
        //todo 初始化地图
        this.initMap();
      }
      document.body.appendChild(script);
    }
  } catch (e) {
    console.log('mounted 时出错', e)
  }

}

初始化地图

//初始化地图
async initMap() {

  let latitude= ...
  let longitude=...

  try { //定义map变量,调用 TMap.Map() 构造函数创建地图

    const _this = this
    let map = _this.map
    if (map) {
      map.setMap(null)
      map = null
    }

    let center = new TMap.LatLng(latitude, longitude)

    this.map = await new TMap.Map(
        document.getElementById('container'),
        {
          center: center, //设置地图中心点坐标
          zoom: 12 //设置地图缩放级别
        }
    )

  } catch (e) {
    console.log('初始化地图时出错 出错', e)
  }
},

结束语

window.TMap的判断是非常重要的。很多人不做判断直接用。造成问题找来找去,找出出问题。

相关其它TMap接口,查看对应官网

示例效果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值