Vue+腾讯地图-实现关键词输入提示功能

不废话,上代码~~~

效果图:

1、先去腾讯地图后台创建自己的应用获取到应用的 Key  

腾讯地图后台地址:腾讯位置服务 - 立足生态,连接未来

创建应用的  Key  如下:

2、在项目中添加腾讯地图API的js插件,如下:

<!-- 引入腾讯地图链接 -->
<script src="https://map.qq.com/api/js?v=2.exp&key=54QBZ-ZIXRN-KNEFW-SWNLD-XXXXX-XXXXX"></script>

注:添加位置是在项目的 public -> index.html 文件

3、在项目中开始初始化使用地图,如下:

html部分:
<!-- 地图展示弹窗 -->
        <el-dialog title="选择地点" :visible.sync="dialogVisibleMap" @opened="resizeMap" append-to-body :close-on-click-modal="false" width="65%">
            <el-select class="search-input" v-model="keyword" filterable remote clearable value-key="id"
            :remote-method="remoteMethod2" @change="onChange2" placeholder="请输入">
                <el-option v-for="item in addressList" :key="item.id" :label="item.title" :value="item">
                    <span>{{ item.title }}</span>
                    <span style="float: right; color: #8492a6; font-size: 12px">{{ item.address }}</span>
                </el-option>
            </el-select>
            <!-- 显示地图的容器 -->
            <div id="map" style="width: 100%; height: 400px"></div>
        </el-dialog>
js: 部分
data() {
   return {
      dialogVisibleMap: false,
      map: null,
      addressList: [],// 地图搜索返回数据集
      keyword: '',// 地图搜索输入值
   };
},
methods: {
        // 由于地图是放在弹窗里边,弹窗第一次打开时不能及时获取到DOM进行渲染,所以使用以下方法进行强制渲染更新
        resizeMap() {
            if (this.map) {
                qq.maps.event.trigger(this.map, 'resize');
            } else {
                this.initMap();
            }
        },
        // 初始化地图组件
        initMap() {
            let that = this;
            this.map = new qq.maps.Map(document.getElementById("map"), {
                center: new qq.maps.LatLng(39.916527, 116.397128), // 设置初始中心点位置
                zoom: 13
            });
        },
        // 位置模糊搜索
        remoteMethod2(query) {
            if (query != '') {
                this.getAddress(query);
            } else {
                this.addressList = [];
            }
        },
        // 地址选择
        onChange2(val){
            console.log(val,'kvalj');
        },  
        // 输入框模糊搜索
        getAddress(query) {
            this.$jsonp("https://apis.map.qq.com/ws/place/v1/suggestion/", {
                 key: '54QBZ-ZIXRN-KNEFW-SWNLD-XXXXX-XXXXX',
                 keyword: query,
                 region: '苏州',
                 output: 'jsonp',
             }).then(res => {
                 console.log(res,'获取返回的地址集合');
                 that.addressList = res.data;
             }).catch(err => {
                 console.log("catch", err);
             });
        },
}

注:接口请求使用的是 this.$jsonp 方式,为的是避免跨域

问题1:腾讯地图接口请求时出现跨域 

解决方案:使用 jsonp 的方式请求才有效,方法如下:

安装 vue-jsonp 插件,在项目中引入,并使用 jsonp 方式进行请求

npm install vue-jsonp@0.1.0 --save

注:默认安装时2.0.0版本,可能因为我的项目vue版本是2.x,不兼容,所以我安装了指定的0.1.0版本。

安装成功后在 main.js 中全局引用:

// 引入此插件解决调用高德地图跨域问题
import VueJsonp from 'vue-jsonp'
Vue.use(VueJsonp)

至此完成!!!

测试有效!!!感谢支持!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/432531.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Thinkphp5.1中,将数组赋值给js使用

一、例如Thinkphp5.1中的的代码是这样的 $data [status > 1,msg > 加载成功,data > [id > 1,username > 小洪帽,] ];$this->assign(data,$data);二、JS代码接收PHP中的数组 注意 <> 符号是不需要放引号的。 let arr <?json_encode($data)?>…

LeetCode 刷题 [C++] 第98题.验证二叉搜索树

题目描述 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 题目分析 由题…

【排序】详解冒泡排序

一、思想 冒泡排序的基本思想是利用两两比较相邻记录的方式&#xff0c;通过一系列的比较和交换操作&#xff0c;使得较大或较小的元素逐渐移动到数列的一端。在每一轮的排序过程中&#xff0c;都会从数列的起始位置开始&#xff0c;对相邻的元素进行比较&#xff0c;如果它们…

Anthropic 公司最新宣布,他们的 AI 聊天机器人模型击败了 OpenAI 的 GPT-4

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

设计MySQL数据表的几个注意点

最近合作搞项目&#xff0c;发现了很多问题。特别的&#xff0c;数据库层面上的问题更为致命。记录一下&#xff0c;希望后面看到博客的同学们注意。 注意&#xff1a;以下观点只用于一般情况下的单体、微服务&#xff0c;不保证适用所有场景。 一、ID问题 ID名称问题 如下图…

四平方和c++

题目 输入样例&#xff1a; 5输出样例&#xff1a; 0 0 1 2 思路 首先想到的是使用三重循环求出 a&#xff0c;b&#xff0c;c&#xff0c;d 可以通过 n - a - b - c 得到。理论时间复杂度为O(1000 * 1000 * 1000) O(10^9)。因此需要想办法降低循环层数。 考虑使用两个双重循…

Unreal Engine5记录 02简单的第三人称游戏

导航视口 选择对应的第三人称游戏选项&#xff0c;并选择项目创建的位置&#xff0c;点击创建 创建之后&#xff0c;会打开一个默认的导航视口 点击运行&#xff0c;进入窗口 你就像进入了一个游戏关卡&#xff0c;这个和你玩的第三人称游戏一样&#xff08;类似吃鸡&#xf…

React-useEffect

1.概念 说明&#xff1a;用于在React组件中创建不是由事件引起而是由渲染本身引起的操作&#xff0c;比如发送 A列AX请求&#xff0c;更改DOM等。 2.案例 // useEffect用于组件不是由事件引起的而是由渲染本身引起的操作&#xff0c;如ajax,更改Dom等。 import { useEffect,…

图解目标检测的现代历史

任务分类 图像分类 根据图像的主要对象对图像进行分类。 目标定位 预测包含主要对象的图像区域。然后&#xff0c;可以使用图像分类来识别该区域内的物体 目标检测 定位和分类出现在图像中的所有对象。这个任务通常包括&#xff1a;确定区域&#xff0c;然后对其中的对象进行…

SpringCloudGateway工作原理与链路图

SpringCloudGateway基本介绍 Spring Cloud Gateway 构建于Spring Boot 2.x、 Spring WebFlux和Project Reactor之上。因此,在使用 Spring Cloud Gateway 时,您可能不会应用许多熟悉的同步库(例如 Spring Data 和 Spring Security)和模式。 Spring Cloud Gateway 需要 Sprin…

javaWebssh文玩竞价管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh文玩竞价管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0…

1909_Arm Cortex-M3编程模型

1909_Arm Cortex-M3编程模型 全部学习汇总&#xff1a; g_arm_cores: ARM内核的学习笔记 (gitee.com) 编程模型的部分除了单独的核心寄存器描述之外&#xff0c;它还包含有关处理器模式和软件执行和堆栈的特权级别的信息。 处理器有两种模式&#xff0c;分别是线程模式和Handle…

2024年【山东省安全员C证】考试试卷及山东省安全员C证复审模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 山东省安全员C证考试试卷根据新山东省安全员C证考试大纲要求&#xff0c;安全生产模拟考试一点通将山东省安全员C证模拟考试试题进行汇编&#xff0c;组成一套山东省安全员C证全真模拟考试试题&#xff0c;学员可通过…

WordPress建站入门教程:小皮面板phpstudy如何安装PHP和切换php版本?

小皮面板phpstudy支持的PHP版本有很多&#xff0c;包括5.2.17、5.3.29、5.4.45、5.5.9、5.6.9、7.0.9、7.1.9、7.2.9、7.3.4、7.3.9、7.4.3、8.0.2、8.2.9。那么我们如何安装其他的php版本和切换网站的php版本呢&#xff1f;只需要简单几步即可&#xff0c;具体如下&#xff1a…

解决前端性能问题:如何优化大量数据渲染和复杂交互?

✨✨祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天开心&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; 目录 引言 一、分页加载数据 二、虚拟滚动 三、懒加载 四、数据缓存 五、减少重绘和回流 …

is not valid JSON at JSON.parse

在后台读取一个文件里的JSON数据&#xff0c;转换成字符串返回给前端&#xff0c;前端使用JSON.parse转换JSON报错。在将JSON校验和压缩后发现前端还是转换失败。在返回结果的时候可以看见一个小红点 最后排查&#xff0c;不带BOM的识别是Java遗留的一个bug。 解决方案&#…

OSI 的七层模型

OSI七层模型 一般指开放系统 互连参考模型 (Open System Interconnect 简称OSI) 是国际标准化组 织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系 统提供了一种功能结构的框架。 应用层&#xff1a;各种应用程序协议&#xff0c;比…

第八篇:预测受众(Predictive audience)技术是如何赋能数字化营销生态的?- 我为什么要翻译介绍美国人工智能科技巨头IAB公司

IAB平台&#xff0c;使命和功能 IAB成立于1996年&#xff0c;总部位于纽约市。 作为美国的人工智能科技巨头社会媒体和营销专业平台公司&#xff0c;互动广告局&#xff08;IAB- the Interactive Advertising Bureau&#xff09;自1996年成立以来&#xff0c;先后为700多家媒…

CSS字体样式的使用,先收藏了

CSS 篇 link 与 import 的区别 link 是 HTML 方式&#xff0c; import 是CSS方式link 最大限度支持并行下载&#xff0c; import 过多嵌套导致串行下载&#xff0c;出现 FOUC (文档样式短暂失效)link 可以通过 rel"alternate stylesheet" 指定候选样式浏览器对 lin…

spark 实验二 RDD编程初级实践

目录 一. pyspark交互式编程示例&#xff08;学生选课成绩统计&#xff09; 该系总共有多少学生&#xff1b; 该系DataBase课程共有多少人选修&#xff1b; 各门课程的平均分是多少&#xff1b; 使用累加器计算共有多少人选了DataBase这门课。 二.编写独立应用程序实现数…
最新文章