Vue使用腾讯地图

本文详细介绍了如何在Vue项目中集成腾讯地图API,包括注册账户、获取KEY、引入地图脚本及页面展示地图的完整步骤。

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

腾讯地图在vue上面使用

url:https://lbs.qq.com/javascript_v2/

上面是腾讯地图的传送门

准备步骤

首先去注册一个账户,获取一个KEY,这个KEY 是腾讯那边提供的,等等再下面代码会用到

使用步骤

1551671429810

在vue项目的public 下,找到index.html 文件

在head头部加入代码

<script charset="utf-8" src="http://map.qq.com/api/js?v=2.exp&key=你刚刚注册的KEY"></script>

下面这个是我的head

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
  <link rel="icon" href="<%= BASE_URL %>favicon.ico">
  <title>请稍后...</title>
  <script charset="utf-8" src="http://map.qq.com/api/js?v=2.exp&key=你刚刚注册的KEY"></script>
</head>

完成上面步骤,你已经在你的项目引用了腾讯地图了,那么下面就要在页面使用地图

页面上

 <div class="map" ref="map"></div>

在created()上面添加

var center = new qq.maps.LatLng(经度, 纬度);
// this.map  在data 里面声明一个变量
this.map = new qq.maps.Map(this.$refs.map, {
        center: center, // 地图的中心地理坐标。
        zoom: 32 // 地地图缩放
});
### 封装腾讯地图组件于 Vue 中 #### 创建基础的地图容器组件 为了在 Vue 应用程序中有效利用腾讯地图 API,创建一个名为 `TencentMap.vue` 的单文件组件是一个良好的开端。此组件负责初始化地图实例并提供必要的配置选项。 ```html <template> <div :id="mapContainerId" class="map-container"></div> </template> <script> export default { name: 'TencentMap', props: { mapOptions: Object, key: String, // 腾讯地图API密钥 }, data() { return { mapInstance: null, mapContainerId: 'tencent-map-' + Math.random().toString(36).substr(2, 9), }; }, mounted() { this.initMap(); }, methods: { initMap() { let script = document.createElement('script'); script.src = 'https://map.qq.com/api/gljs?v=1.exp&key=' + this.key; script.onload = () => { this.mapInstance = new window.T.Map(this.mapContainerId); this.mapInstance.setCenter(new T.LngLat(116.404, 39.915)); this.mapInstance.zoomTo(12); if (this.mapOptions) { Object.keys(this.mapOptions).forEach((optionKey) => this.mapInstance[optionKey](this.mapOptions[optionKey]) ); } }; document.head.appendChild(script); }, }, }; </script> <style scoped> .map-container { width: 100%; height: 100vh; /* 设置高度 */ } </style> ``` 上述代码展示了如何构建一个简单的腾讯地图组件[^2]。通过传递不同的 `mapOptions` 属性给 `<TencentMap>` 组件来调整其行为和外观特性。 #### 添加交互事件监听器 为了让地图更加互动友好,在实际应用中通常还需要处理用户的点击或其他操作。这可以通过向地图对象附加事件监听器实现: ```javascript // 在initMap方法内追加这段逻辑 if (typeof this.$listeners.click === 'function') { qq.maps.event.addListener( this.mapInstance, 'click', function(event) { this.$emit('click', event.latLng); // 向父级发送坐标数据 }.bind(this) ); } ``` 此处定义了一个针对鼠标点击事件的处理器,并允许子组件向上层通知具体的地理位置信息[^3]。 #### 使用封装好的组件 最终可以在其他页面或模块里轻松引入这个自定义的地图组件,并按需设置参数: ```html <Template> <!-- ... --> <TencentMap v-if="showMap" ref="myMap" :key="apiKey" @click="handleClickOnMap" :map-options="{ zoomControl: true }" /> <!-- ... --> </Template> <script> import TencentMap from './components/TencentMap'; export default { components: { TencentMap }, data() { return { apiKey: 'YOUR_TENCENT_MAP_API_KEY', showMap: false, }; }, created() { setTimeout(() => { this.showMap = true; }, 1000); // 模拟延迟加载效果 }, methods: { handleClickOnMap(latLng) { console.log(`User clicked on ${latLng.getLat()},${latLng.getLng()}`); }, }, }; </script> ``` 这样不仅简化了地图功能的集成过程,还提高了代码可维护性和重用率[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值