vue 实现腾讯地图搜索选点功能(附加搜索联想功能)

注意:开发环境、正式环境需在腾讯地图配置ip地址白名单、域名白名单 

封装map组件:

<template>
    <iframe width="100%" style="border: none;width: 100%;height: 100%;" :src="map_src"></iframe>
</template>
  
  <script>
    export default {
      data() {
        return {
          map_src: 'https://mapapi.qq.com/web/mapComponents/locationPicker/v/index.html?search=1&type=1&key=5U7BZ-AWLKU-HMRVX-2Y4EJ-TTD2J-Z5FCZ&referer=location',
          form: {
            //省市区ID
            id_area: [
              0,
              0,
              0
            ],
            address: '',
            lng: '',
            lat: '',
          },
          map_data: {
            url: 'https://mapapi.qq.com/web/mapComponents/locationPicker/v/index.html?search=1&type=1&key=5U7BZ-AWLKU-HMRVX-2Y4EJ-TTD2J-Z5FCZ&referer=location',
            address: '',
            lng: '',
            lat: '',
          },
        }
      },
      created() {
        let that = this
        window.addEventListener('message', function(event) {
          // 接收位置信息,用户选择确认位置点后选点组件会触发该事件,回传用户的位置信息
          var loc = event.data;
          console.log(loc)
          if (loc && loc.module == 'locationPicker') { //防止其他应用也会向该页面post信息,需判断module是否为'locationPicker'
            that.map_data.address = loc.poiaddress
            that.map_data.lat = loc.latlng.lat
            that.map_data.lng = loc.latlng.lng
            //调用父组件方法并传值给父组件
            that.$emit('chooseOrgAddr',that.map_data)
          }
        }, false);
      }
    }
  </script>
  
  <style>
  </style>
  

然后在用到的地方引入该组件,需要的数据在该组件中的map_data

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Vue实现腾讯地图搜索功能,首先需要注册并申请腾讯地图API的key。然后,在Vue项目的/public文件夹中的index.html文件的head标签中引入腾讯地图API的脚本。这可以通过在index.html中添加以下代码来实现: ``` <script src="//map.qq.com/api/js?v=2.exp&key=你的API密钥"></script> <script src="https://map.qq.com/api/gljs?v=1.exp&libraries=service&key=你的API密钥"></script> ``` 接下来,你需要安装lodash和vue-jsonp两个库。可以使用以下命令来安装它们: ``` npm install --save lodash npm install vue-jsonp --save ``` 在Vue的main.js文件中,需要引入vue-jsonp库,并使用Vue.use()来注册vue-jsonp插件: ``` import Vue from 'vue' import { VueJsonp } from 'vue-jsonp' Vue.use(VueJsonp) ``` 最后,你可以在Vue的组件中使用腾讯地图API来进行搜索操作。可以通过使用腾讯地图提供的服务来获取关键词的经纬度和地址,并将地图显示在页面上。具体的代码实现可以根据你的需求和UI设计来进行编写。 请注意,以上代码是基于腾讯地图API的使用示例,你需要根据你自己的腾讯地图API密钥来替换代码中的"你的API密钥"部分。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [vue中使用腾讯API地图实现搜索关键词获取经纬度和地址并显示地图](https://blog.csdn.net/myjava_6/article/details/126219504)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [2023年 vue使用腾讯地图搜索、关键字输入提示、地点显示](https://blog.csdn.net/HelloWord176/article/details/131556906)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

某公司摸鱼前端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值