技术点:使用vue和element实现地图选点功能
使用vue+element+腾讯地图组件实现地图选点功能
效果:
选点
完整代码
<template><div id="app"><el-button @click="openMapPickPop">选点</el-button><div><b>经度:</b><b>{{ currentPicked?.latlng.lat }}</b></div><div><b>纬度:</b><b>{{ currentPicked?.latlng.lng }}</b></div><div><b>城市:</b><b>{{ currentPicked?.cityname }}</b></div><div><b>位置信息:</b><b>{{ currentPicked?.poiaddress }}{{ currentPicked?.poiname }}</b></div></div>
</template><script setup>import { ref, reactive, computed, watch, onMounted } from "vue";import { ElMessageBox } from "element-plus";const mapApiKey = "UU2BZ-B6RKG-QCTQW-IA6XO-5NHSH-Q6BYM";const IFRAME_HTML = `<iframe id="mapPage" width="600" height="400" frameborder="0"src="https://apis.map.qq.com/tools/locpicker?search=1&type=1&key=${mapApiKey}&referer=myapp"></iframe>`;const currentPicked = ref({latlng: {},});function openMapPickPop($event) {if ($event.relatedTarget) return;ElMessageBox({title: "选择地址",message: IFRAME_HTML,customClass: "location-picker-box",dangerouslyUseHTMLString: true,closeOnPressEscape: false,}).then(() => {window.removeEventListener("message", handleMapPickedMessage, false);console.log("选择了地图", currentPicked.value);}).catch(e => {if (e != "cancel") throw e;window.removeEventListener("message", handleMapPickedMessage, false);});window.addEventListener("message", handleMapPickedMessage, false);}function handleMapPickedMessage(event) {/*** 接收位置信息,用户选择确认位置点后选点组件会触发该事件,回传用户的位置信息*/let loc = event.data;// 防止其他应用也会向该页面post信息,需判断module是否为'locationPicker'if (loc && loc.module != "locationPicker") return;currentPicked.value = loc;// console.log(" currentPicked.value ", currentPicked.value );}
</script><style>html .location-picker-box {width: auto;max-width: none;}
</style>
实现步骤
步骤一:拿到腾讯地图组件的iframe
去腾讯地图申请账号,拿到自己的key,否则无法调用腾讯地图的组件
腾讯地图组件示例地址
拿到这个iframe
注意:key需要注册账号·自己去申请,拿到唯一的key之后腾讯才知道是谁调用的这个组件,然后计次
const mapApiKey = "UU2BZ-B6RKG-QCTQW-IA6XO-5NHSH-Q6BYM";const IFRAME_HTML = `<iframe id="mapPage" width="600" height="400" frameborder="0"src="https://apis.map.qq.com/tools/locpicker?search=1&type=1&key=${mapApiKey}&referer=myapp"></iframe>`;
步骤二:在用户点击时调用方法,该方法内调出腾讯的iframe
用别的方法也行,此处是使用了el-element的this.$msgBox,如果使用的其他组件库你也可以使用其他的
function openMapPickPop($event) {if ($event.relatedTarget) return;ElMessageBox({title: "选择地址",message: IFRAME_HTML,customClass: "location-picker-box",dangerouslyUseHTMLString: true,closeOnPressEscape: false,}).then(() => {window.removeEventListener("message", handleMapPickedMessage, false);console.log("选择了地图", currentPicked.value);}).catch(e => {if (e != "cancel") throw e;window.removeEventListener("message", handleMapPickedMessage, false);});window.addEventListener("message", handleMapPickedMessage, false);}
步骤三:用户选点后,通过页面通信将选中的值传给页面内的变量
function handleMapPickedMessage(event) {/*** 接收位置信息,用户选择确认位置点后选点组件会触发该事件,回传用户的位置信息*/let loc = event.data;// 防止其他应用也会向该页面post信息,需判断module是否为'locationPicker'if (loc && loc.module != "locationPicker") return;currentPicked.value = loc;// console.log(" currentPicked.value ", currentPicked.value );}
完成拉!!!!
技术点:使用vue和element实现地图选点功能相关推荐
- 微信小程序获取个人头像和昵称,和地图选点功能
微信小程序获取个人头像和昵称,有技巧 1.可以直接获取 2.通过用户点击获取 过程中,有什么问题,可以加我微信号yizheng369探讨 先分析 这里面隐含了很多默认的规则,大家要注意: 1.可以直接 ...
- vue使用谷歌地图绘制图形以及地图选点功能
因做加拿大配送项目得用到谷歌地图 效果图: 第一步: 首先访问谷歌地图以及文档需要加速插件 你得在谷歌浏览器扩展程序里添加一个加速插件(如图): 最好充值vip,不然免费的加速通道不稳定 本人是在vu ...
- uni-app中使用腾讯位置服务实现小程序地图选点功能
文章目录 1. 官方文档 2. 小程序添加插件 3. HBuilder配置 4. 配置代码 5. 页面代码 1. 官方文档 技术选定(地图选点插件) (对应官网:https://lbs.qq.com/ ...
- 微信小程序获取当前位置及地图选点功能
标题小程序获取当前位置----逆地址解析----地图选点 实现功能:小程序首页定位当前城市类似于 某宝: 某团: 获取当前位置: 在小程序首页创建getLocation函数并在onLoad调用 首先需 ...
- ArcGIS API+Canvas +Vue框架 制作前端地图打印功能
将ArcGIS Pro 桌面打印制图功能搬到前端页面上 实现BS端打印制图功能 简介 地图框 冲突 拖拽 放大缩小 标题 图例 图例储存 图例获取 图例摆放 比例尺 scale属性 格式化 指北针 预 ...
- uniapp地图选点功能
<template><view><view class="" style="height: 500rpx;"></vi ...
- vue项目使用高德地图
vue项目使用高德地图-部分功能介绍 在此做个笔记,引入方式使用了高德2.0 loadsh的加载方式 1.引入高德地图方式-NPM npm i @amap/amap-jsapi-loader --sa ...
- Vue + TypeScript + Element 搭建简洁时尚的博客网站及踩坑记
前言 本文讲解如何在 Vue 项目中使用 TypeScript 来搭建并开发项目,并在此过程中踩过的坑 . TypeScript 具有类型系统,且是 JavaScript 的超集,TypeScript ...
- 在Vue中使用高德地图
在Vue中使用高德地图 一.如何在Vue中引入基础高德地图 1.步骤一:注册并登录高德地图开放平台,申请密钥 2.步骤二:安装高德地图加载器 3.封装一个自定义地图组件,并初始化地图 二.根据关键词搜 ...
- vue集合离线百度地图
vue集合离线百度地图 vue.js百度地图api离线 发布于 1月9日 一.需求场景 所谓离线,大概都是项目在内网中使用,无法连接外网,所以需要开发离线地图功能. 在看以下步骤前,先提示这个vue项 ...
最新文章
- [JavaWeb基础] 007.Struts2的配置和简单使用
- 定义指令时“控制器”,“链接”和“编译”函数之间的区别
- 自动装配——@Resource(JSR250)和@Inject(JSR330)---[java规范的注解]
- 产品需求文档中容易被忽视的10个细节
- CSS背景属性彻底研究
- 微星z370黑苹果_记录一下装了第二台黑苹果(Z370 + High Sierra)
- imac android studio,Mac安装Android Studio的时候忘记安装Avd Manager怎么办?
- 9203班级纪律 1202
- “吸才”的字节跳动和“散才”的好未来
- C#/winform 腾讯QQ注册
- IOCP实现聊天服务
- Windows开机运行程序
- 钢绞线的弹性模量的计算方法_钢绞线弹性模量的理论计算及其影响因素分析
- xlsxwriter去掉网格线_python之xlsxwriter模块(可操作xls/xlsx格式文件)
- CKEditor富文本编辑器使用
- 苹果在中国失掉 iPad 商标
- 大数据在人力资源管理当中的应用
- mp3格式怎么转html格式转换器,flac转mp3格式转换器 如何将flac格式的音频文件转换为MP3格式...
- Excel PivotTable 使用心得手顺分享(二)
- 【文件格式探究】EP.1 对ePub文件格式的初探
热门文章
- 数据库周刊45丨易鲸捷4.2亿订单创记录;10月Oracle补丁发布;巨杉SequoiaDB v5.0发布;MySQL卡死案例……
- jndi weblogic mysql_WebLogic使用总结(三)——WebLogic配置JNDI数据源
- Java创建数组的方法
- VL1_四选一多路器(完整RTL、Testbench和覆盖率)
- iOS常用三方库、插件、知名技术博客、常用开发工具使用介绍等等,大家可以一次性下载了!
- 黄永成think php rest,Rest控制器
- kjb文件 解析_十四期全国BIM一级考试真题及解析
- 毕业论文查重不合格会怎么样?
- 计算机导论学后感5000字,大学计算机导论论文3000字.docx
- Excel连接MySQL数据库进行数据的可视化