用vue-amap如何实现依据地址回显地图并标记
Admin 2022-07-13 群英技术资讯 415 次浏览
实现了地图选址功能后,现在来实现一个根据地址回显地图并标记的功能,效果图如下:
直接上代码:
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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要为大家详细介绍了JavaScript实现移动端签字功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
基于JS怎样实现图片拖曳,代码怎样写?下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家,下面我们一起来了解看看吧
这篇文章主要介绍了详解vue实现坐标拾取器功能示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
对于验证码详细大家都不陌生,我们在登录或者注册页面,常能看到验证码。而我们在做验证码的时候要考虑到,获取验证码的时间间隔,因为如果不设置这个,那么就会出现短时间或者大量验证码的情况,对此这篇文章就给大家介绍用JS实现间隔10秒载获取验证码的功能,感兴趣的朋友就继续往下看吧
jQuery怎样实现任意点击隐藏div的效果?我们一些网站经常能看到通过点击任意位置后关闭打开div的效果,这样的好处是能提高用户的体验,那么具体怎样实现这一效果呢?
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008