用vue-amap如何实现依据地址回显地图并标记
Admin 2022-07-13 群英技术资讯 902 次浏览
今天小编跟大家讲解下有关“用vue-amap如何实现依据地址回显地图并标记”的内容 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了相关资料,希望小伙伴们看了有所帮助。实现了地图选址功能后,现在来实现一个根据地址回显地图并标记的功能,效果图如下:

直接上代码:
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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
JS学习有哪些基本语法规则要了解,一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解一下,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
这篇文章主要介绍了React+umi+typeScript创建项目的过程,结合代码介绍了项目框架搭建的方式,本文给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
目录在data里引入相对路径问题解决如何在data中正常引入图片路径此时有两种解决方法在data里引入相对路径问题在项目的HTML中引入图片的相对路径,这样写是能找到图片显示出来的:img src=../../../static/img/step-ongoing.png但图片太多感觉太乱了了,想在data中通过变量统一
这篇文章主要介绍了React-Native 环境搭建和基本介绍的相关资料,包括react native优缺点,通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
本篇文章给大家带来了关于JavaScript的相关知识,其中主要为大家介绍了JavaScript 条件判断使用技巧详解,有需要的朋友可以借鉴参考下,下面一起来看一下,希望对大家有帮助。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008