位置: IT常识 - 正文

vue项目中使用高德地图(vue中使用gojs)

编辑:rootadmin
vue项目中使用高德地图

推荐整理分享vue项目中使用高德地图(vue中使用gojs),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue 使用,vue 使用,vue高级技巧,vue在项目中怎么用的,vue高级技巧,vue在项目中怎么用的,vue 高级用法,vue 高级用法,内容如对您有帮助,希望把文章链接给更多的朋友!

最近做的项目中有个地图选择的功能,如下图所示:

所以在此记录下使用方法,望各位大神指导

我的应用 | 高德控制台第一步:去高德官网去创建一个属于自己的地图应用 (得到key和秘钥)我的应用 | 高德控制台

 这是添加的方式:

vue项目中使用高德地图(vue中使用gojs)

准备-入门-教程-地图 JS API | 高德地图API

第二步:获取到属于自己的key和秘钥后,下载地图高德:npm install vue-amap --save 

第三步:在main.js中导入 

VueAMap.initAMapApiLoader({ key: '你申请的key', plugin: [ 'AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType', 'AMap.PlaceSearch', 'AMap.Geolocation', 'AMap.Geocoder', 'AMap.DrivingPolicy', 'AMap.Driving', "AMap.Autocomplete", "AMap.PolyEditor", "AMap.CircleEditor", ], v: '1.4.4', uiVersion: '1.0',})

这里的key是你申请的

第四步:在index.html页面头部 添加秘钥

​​​​​​​​​​​​​​

<script type="text/javascript"> window._AMapSecurityConfig = { securityJsCode: "你申请的秘钥", } </script>

 以上步骤完成后,就可以去你对应的页面中使用了

因为我是写的一个组件,所以大家根据自己的情况 

我的组件完整代码:

<template> <div class="container"> <div class="search-box"> <el-row> <el-col :span="16"> <el-input v-model="searchKey" id="search" placeholder="请输入地址信息"></el-input> </el-col> <el-col :span="6"> <el-button type="success" plain @click="searchByHand" style="margin-left:20px">搜索位置</el-button> </el-col> </el-row> <div class="tip-box" id="searchTip"></div> </div> <el-amap class="amap-box" :amap-manager="amapManager" :vid="'amap-vue'" :zoom="zoom" :plugin="plugin" :center="center" :events="events"> <!-- 标记 --> <el-amap-marker v-for="(marker, index) in markers" :position="marker" :key="index"></el-amap-marker> </el-amap> </div></template><script>import { AMapManager, lazyAMapApiLoaderInstance } from 'vue-amap'let amapManager = new AMapManager()export default { data() { let self = this return { address: null, searchKey: '', amapManager, markers: [], searchOption: { city: '全国', citylimit: true }, center: [108.872249, 34.33328], zoom: 10, lng: 0, lat: 0, loaded: false, markerEvent: { click(e) { // console.log(e); } }, mapInfo: { lng: '', lat: '', mapText: '' }, events: { init() { lazyAMapApiLoaderInstance.load().then(() => { self.initSearch() }) }, // 点击获取地址的数据 click(e) { self.markers = [] let { lng, lat } = e.lnglat self.lng = lng self.lat = lat self.center = [lng, lat] self.markers.push([lng, lat]) // 这里通过高德 SDK 完成。 let geocoder = new AMap.Geocoder({ radius: 1000, extensions: 'all' }) geocoder.getAddress([lng, lat], function (status, result) {//点击地图显示位置信息 if (status === 'complete' && result.info === 'OK') { if (result && result.regeocode) { if (result.regeocode.crosses.length > 0) { self.mapInfo.lng = result.regeocode.crosses[0].location.lng self.mapInfo.lat = result.regeocode.crosses[0].location.lat } if (result.regeocode.crosses.length > 0) { self.mapInfo.lng = result.regeocode.pois[0].location.lng self.mapInfo.lat = result.regeocode.pois[0].location.lat } self.mapInfo.mapText = result.regeocode.formattedAddress // console.log('地图组件中点击选中的地址为',self.mapInfo) if (self.mapInfo.lng !== '' && self.mapInfo.lat !== '') { self.$store.state.addersInfo = JSON.stringify(self.mapInfo) } console.log(self.lng, self.lat, "33333333333333333") self.address = result.regeocode.formattedAddress self.searchKey = result.regeocode.formattedAddress self.$nextTick() } } }) } }, // 一些工具插件 plugin: [ { // 定位 pName: 'Geolocation', events: { init(o) { // o是高德地图定位插件实例 o.getCurrentPosition((status, result) => { if (result && result.position) { // 设置经度 self.lng = result.position.lng // 设置维度 self.lat = result.position.lat // 设置坐标 self.center = [self.lng, self.lat] self.markers.push([self.lng, self.lat]) // load self.loaded = true // 页面渲染好后 self.$nextTick() } }) }, click(e) { // console.log(e); } } }, { // 工具栏 pName: 'ToolBar', events: { init(instance) { // console.log(instance); } } }, { // 鹰眼 pName: 'OverView', events: { init(instance) { // console.log(instance); } } }, { // 地图类型 pName: 'MapType', defaultType: 0, events: { init(instance) { // console.log(instance); } } }, { // 搜索 pName: 'PlaceSearch', events: { init(instance) { // console.log(instance) } } } ] } }, created() { this.searchKey = JSON.parse(this.$store.state.addersInfo).mapText; }, watch: { "$store.state.addersInfo": { handler: function (newVal, oldVal) { this.searchKey = JSON.parse(newVal).mapText; }, deep : true }, searchKey(addersText) { if (addersText == '') { this.$store.state.addersInfo = '' } } }, methods: { // submitAddress() {//确定事件 // console.log('经纬度', this.center) // console.log('地址', this.address) // this.mapInfo.lng = this.center[0] // this.mapInfo.lat = this.center[1] // this.mapInfo.mapText = this.address // // console.log(this.mapInfo) // this.$store.state.address = JSON.stringify(this.mapInfo) // }, initSearch() { let vm = this let map = this.amapManager.getMap() AMapUI.loadUI(['misc/PoiPicker'], function (PoiPicker) { var poiPicker = new PoiPicker({ input: 'search', placeSearchOptions: { map: map, pageSize: 10 }, suggestContainer: 'searchTip', searchResultsContainer: 'searchTip' }) console.log(poiPicker, "***********") vm.poiPicker = poiPicker // 监听poi选中信息 poiPicker.on('poiPicked', function (poiResult) { let source = poiResult.source let poi = poiResult.item if (source !== 'search') { poiPicker.searchByKeyword(poi.name) } else { poiPicker.clearSearchResults() vm.markers = [] let lng = poi.location.lng let lat = poi.location.lat let address = poi.cityname + poi.adname + poi.name vm.center = [lng, lat] // console.log(vm.center) vm.markers.push([lng, lat]) vm.lng = lng vm.lat = lat vm.address = address vm.searchKey = address // console.log(vm.address) vm.mapInfo.lng = lng vm.mapInfo.lat = lat vm.mapInfo.mapText = vm.address // console.log(vm.mapInfo) vm.$store.state.addersInfo = JSON.stringify(vm.mapInfo) } }) }) }, searchByHand() {//点击搜索事件 if (this.searchKey !== '') { this.searchKey = JSON.parse(this.$store.state.addersInfo).mapText; this.poiPicker.searchByKeyword(this.searchKey) } } },}</script><style lang="scss" scoped>.container { width: 100%; height: 500px;}.search-box { position: absolute; z-index: 5; width: 100%; left: 13%; top: 10px; height: 30px; border: none !important;}.tip-box { width: 73%; max-height: 260px; position: absolute; top: 42px; overflow-y: auto; background-color: #fff;}</style>

里面都有对应的注释

本文链接地址:https://www.jiuchutong.com/zhishi/283340.html 转载请保留说明!

上一篇:pavupg.exe是什么进程 pavupg进程查询(pnaico.exe是什么软件)

下一篇:ReadTimeoutError: HTTPSConnectionPool(host=‘cdn-lfs.huggingface.co‘, port=443)

  • 微信可以两个手机一起登吗(微信可以两个手机同步聊天记录吗)

    微信可以两个手机一起登吗(微信可以两个手机同步聊天记录吗)

  • opporeno4pro的屏幕是什么(opporeno4pro的屏幕怎么样)

    opporeno4pro的屏幕是什么(opporeno4pro的屏幕怎么样)

  • vivoz6对比vivos6有什么不同吗(vivoz6对比vivos6,哪个手机好)

    vivoz6对比vivos6有什么不同吗(vivoz6对比vivos6,哪个手机好)

  • 为什么快手识别字幕失败(为什么快手识别不出来)

    为什么快手识别字幕失败(为什么快手识别不出来)

  • 微信如何调为深色模式(微信如何调深色模式华为)

    微信如何调为深色模式(微信如何调深色模式华为)

  • 手机拍照和单反的差距(手机拍照和单反拍照)

    手机拍照和单反的差距(手机拍照和单反拍照)

  • 临时会话对方能看到吗(临时会话对方能看到自动回复吗)

    临时会话对方能看到吗(临时会话对方能看到自动回复吗)

  • 打10086能帮忙定位手机吗(打10086可以定位自己的手机号码吗)

    打10086能帮忙定位手机吗(打10086可以定位自己的手机号码吗)

  • 打开查找对话框的快捷键是(打开查找对话框一点就闪退)

    打开查找对话框的快捷键是(打开查找对话框一点就闪退)

  • 手机怎么设置关机时间(手机怎么设置关机)

    手机怎么设置关机时间(手机怎么设置关机)

  • qq怎么设置自定义分组(qq怎么设置自定义主题背景)

    qq怎么设置自定义分组(qq怎么设置自定义主题背景)

  • oppoa91有几个颜色 (oppoa91有几种颜色)

    oppoa91有几个颜色 (oppoa91有几种颜色)

  • 小米m1908c3je是什么型号(小米m1908c3jc是啥型号)

    小米m1908c3je是什么型号(小米m1908c3jc是啥型号)

  • 电脑除法符号在哪(电脑键盘上的除法标点符号怎么打)

    电脑除法符号在哪(电脑键盘上的除法标点符号怎么打)

  • 电脑兼容模式怎么调整(电脑兼容模式怎么还原)

    电脑兼容模式怎么调整(电脑兼容模式怎么还原)

  • 户户通小锅怎么搜台

    户户通小锅怎么搜台

  • 手机ppt怎么全程音乐(手机ppt怎么全程播放音频)

    手机ppt怎么全程音乐(手机ppt怎么全程播放音频)

  • dp文件用什么软件打开(dpt文件用什么打开)

    dp文件用什么软件打开(dpt文件用什么打开)

  • 耳机皮子开裂怎么办(耳机皮革开裂)

    耳机皮子开裂怎么办(耳机皮革开裂)

  • x27nfc功能在哪里(vivox27nfc功能在哪里打开)

    x27nfc功能在哪里(vivox27nfc功能在哪里打开)

  • 小米max4还能出吗(2021年小米max4是不是不出了)

    小米max4还能出吗(2021年小米max4是不是不出了)

  • 收款提示音怎么设置(收款提示音怎么使用)

    收款提示音怎么设置(收款提示音怎么使用)

  • 怎么获得最新Win10 21H2激活密钥 21H2激活码分享 附激活工具(怎么获得最新医学类指南)

    怎么获得最新Win10 21H2激活密钥 21H2激活码分享 附激活工具(怎么获得最新医学类指南)

  • Win11 Build 22000.65更新体验:汉化更完善,右下角返回桌面回归

    Win11 Build 22000.65更新体验:汉化更完善,右下角返回桌面回归

  • 亚运村夜景,北京 (© ViewStock/Getty Images)(亚运村夜宵地方)

    亚运村夜景,北京 (© ViewStock/Getty Images)(亚运村夜宵地方)

  • chatgpt 无法登录报错Access denied、OpenAl‘s services are not available in yourcountry. (error=unsupported )(无法登陆p.to)

    chatgpt 无法登录报错Access denied、OpenAl‘s services are not available in yourcountry. (error=unsupported )(无法登陆p.to)

  • 什么是简易征税项目
  • 补缴以前年度企业所得税如何填报汇算清缴表
  • 无形资产一般包括专利权
  • 企业所得税不含税价格怎么算
  • 公司业务章需要报备吗
  • 房屋租赁收入还需要缴纳附加税吗
  • 小企业会计准则以前年度损益调整
  • 收到供应商违约金 发票
  • 高新技术企业一定是先进制造业吗
  • 购买无形资产的价款超过正常信用
  • 财务人员最重要的三点
  • 电子发票可以做报销凭证吗
  • 劳务公司的税率是多少经营模式
  • 停车费属于不动产租赁服务税率
  • 小规模纳税人咨询服务费税率是多少
  • 增值税缴纳计入成本吗
  • 公司店铺刷单的收入怎么记账
  • 运费发票没有开 怎么做到成本
  • 社会团体收取的会费是否缴纳增值税
  • 冲账的记账凭证冲销错误记录
  • 红字负数发票可以抵扣吗
  • 收到税务局信息
  • 视同销售怎么做账务处理
  • windows10安装应用怎么到桌面
  • php数组函数题目
  • 广告公司广告费会计分录
  • 职业病治疗费用由谁来承担
  • 公寓收费标准
  • 价外费用分录
  • 应付票据转应付账款分录
  • 如何找装修公司
  • PHP:pg_send_query_params()的用法_PostgreSQL函数
  • 下岗职工生活费最多发多少个月
  • 出租固定资产取得的收入属于收入要素吗
  • 坏账损失税务处理
  • php中strcmp函数
  • 后端怎么把图片传给前端的
  • ts基础
  • php数字转16进制
  • 存放同业属于什么会计制度
  • 出口退税还需要交企业所得税吗
  • 咨询公司小规模纳税人企业所得税核定征收
  • 企业回购本公司股票会导致所有者权益增加
  • 什么是认缴出资金额
  • 差旅费不抵扣
  • 企业应付账款的借方余额反映的是
  • 进项留抵月末要结转吗
  • 外包加工如何做账
  • 跨月的发票还能入账吗
  • 营改增后税率表
  • 收到伙食费的会计处理
  • 领导出差差旅费怎么报销
  • 诺诺开票人怎么修改
  • sql解析原理
  • sqlserver导出数据库及表结构
  • 组装电脑光盘分几种
  • windows10怎么隐藏工具栏
  • windows7录音怎么录
  • win8系统怎么远程电脑
  • Linux下使用quota命令管理磁盘空间的实例教程
  • mac系统怎么把文件移到文件夹
  • nginx文件服务器
  • linux如何给网卡配置ip地址
  • win7系统屏幕保护设置禁用如何开启
  • cocos-creator
  • node.js gui
  • c++服务器与客户端连接
  • linux如何启动tomcat
  • opengl绘制坐标轴
  • linux进程管理命令使用
  • jquery结合html实现中英文页面切换
  • python怎么用命令行
  • node.js做服务器
  • vue2.x
  • Android mediaplayer 白屏
  • js写日期
  • jquery中追加到指定元素末尾
  • 晋税通注册
  • 税务局2017年40号令
  • 税务系统个人业务自传
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设