用vue-amap如何实现依据地址回显地图并标记
Admin 2022-07-13 群英技术资讯 656 次浏览
实现了地图选址功能后,现在来实现一个根据地址回显地图并标记的功能,效果图如下:
直接上代码:
main.js中引入
import Vue from 'vue' import VueAMap from 'vue-amap' import App from './App' import router from './router' Vue.config.productionTip = false localStorage.clear(); Vue.use(VueAMap) VueAMap.initAMapApiLoader({ //高德的key key: "cc644a48b701c256e9a827f068743fdd", // 插件集合 plugin: [ "AMap.Autocomplete",// 输入提示插件 "AMap.PlaceSearch",// POI搜索插件 "AMap.Scale",// 右下角缩略图插件 比例尺 "AMap.OverView",// 地图鹰眼插件 "AMap.ToolBar",// 地图工具条 "AMap.MapType",// 类别切换控件,实现默认图层与卫星图、实施交通图层之间切换的控制 "AMap.PolyEditor",// 编辑 折线多,边形 "AMap.CircleEditor",// 圆形编辑器插件 "AMap.Geolocation", // 定位控件,用来获取和展示用户主机所在的经纬度位置 "AMap.Geocoder",// 地理编码与逆地理编码服务,用于地址描述与坐标间的相互转换 "AMap.AMapUI",// UI组件 ], v: "1.4.4", uiVersion: "1.0.11" // 版本号 }); /* eslint-disable no-new */ new Vue({ el: '#app', router, components: { App }, template: '<App/>' })
调用showMap组件的文件
<template> <div class="myIndexWrap"> <!-- 根据地址信息显示地图位置 --> <div class="addrMapWrapper"> <h3>根据地址信息显示地图位置</h3> <div class="addrWrapper"> <p>{{selAddr}}</p> <ShowMap class="showMapBox" :selAddr="selAddr"/> </div> </div> </div> </template>
<script type='text/ecmascript-6'> import ShowMap from "@/components/ShowMap.vue";//地图标记 export default { components: { ShowMap }, data() { return { selAddr:'江苏省南京市雨花台区新华汇B2座', }; }, }; </script>
<style lang='scss' scoped> .myIndexWrap { width: 1200px; min-height: 800px; height: auto; border: 1px solid #000; display: flex; flex-flow: column; h3 { padding-left: 50px; } // 地图标记 .addrMapWrapper { .addrWrapper{ margin-left: 50px; } } } </style>
ShowMap.vue
<template> <div class="showMapWrapper"> <el-amap vid="map" class="amap-box" :zoom="zoom" :plugin="plugin" :events="events" :center="center" > <el-amap-marker vid="marker" :position="center" :label="label"></el-amap-marker> </el-amap> </div> </template>
<script type='text/ecmascript-6'> export default { components: {}, props:{ selAddr:{ type:String, default:'' } }, data() { let self = this; return { zoom: 18, lng: 0, lat: 0, loaded: false, address: this.selAddr, //mark的时候显示tip label:{ content:this.selAddr, offset:[10,12] }, center: [0,0], //插件集合 plugin: [ //工具条 { pName: "ToolBar", positon: "LB" }, ], events: { init(map) { // 这里通过高德 SDK 完成。 var geocoder = new AMap.Geocoder({ radius: 1000, extensions: "all", city: "全国" }); geocoder.getLocation(self.address, (status, result) => { if (status === "complete" && result.geocodes.length) { let lnglat = result.geocodes[0].location self.lng = lnglat.lng; self.lat = lnglat.lat; self.center = [self.lng, self.lat]; } }); } } }; }, }; </script>
<style lang='scss' scoped> .showMapWrapper { width: 500px; height: 500px; border: 1px solid #999; } </style>
大功告成~
补充知识:vant 中 AddressEdit 地址编辑 设置手机号格式校验
使用AddressEdit 组件中的 tel-validator 手机号格式校验API
添加 :tel-validator=“validator”
<VanAddressEdit :area-list="areaList" :address-info="addressInfo" :show-delete="Boolean(editId)" show-postal :is-saving="isSaving" :is-deleting="isDeleting" save-button-text="保存并使用" delete-button-text="删除收货地址" @save="onSave" @delete="onDelete" :tel-validator="validator" >
在methods中用正则设置需要的手机号格式
methods: { validator(e) { console.log(e); let myreg1 = /^[1][3,4,5,7,8][0-9]{9}$/; let myreg2 = /^[2][3,4,5,7,8][0-9]{6}$/; if (!myreg1.test(e) && !myreg2.test(e)) { console.log("手机号错误"); return false; } else{ console.log('手机号正确') return true } }, }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章给大家分享的是隐藏域的作用和获取隐藏域中的值的方法,文中的获取隐藏域中的值的示例是使用jQuery实现的,下文有详细的介绍,有需要的朋友可以参考,接下来就跟随小编来一起学习一下吧!
这篇文章主要介绍了antd table按表格里的日期去排序操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
路由权限控制常用于后台管理系统中,对不同业务人员能够访问的页面进行一个权限的限制。本文主要介绍了两种Vue 路由权限控制,具有一定的参考价值,感兴趣的可以了解一下
本文将结合实例代码,介绍Vue批量更新dom的实现步骤,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
这篇文章给大家分享的是用jQuery写一个查看图片的功能的内容,可以实现点击左右查看图片效果等等,小编觉得挺实用的,因此分享给大家做个参考,接下来一起跟随小编看看吧。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008