vue-amap根据地址回显地图并mark的操作


Posted in Javascript onNovember 03, 2020

实现了地图选址功能后,现在来实现一个根据地址回显地图并标记的功能,效果图如下:

vue-amap根据地址回显地图并mark的操作

直接上代码:

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
   }
  },
 }

以上这篇vue-amap根据地址回显地图并mark的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
(转载)JavaScript中匿名函数,函数直接量和闭包
May 08 Javascript
JS版网站风格切换实例代码
Oct 06 Javascript
js下拉菜单语言选项简单实现
Sep 23 Javascript
取得元素的左和上偏移量的方法
Sep 17 Javascript
jQuery+AJAX实现无刷新下拉加载更多
Jul 03 Javascript
JavaScript计算器网页版实现代码分享
Jul 15 Javascript
js实现按钮控制带有停顿效果的图片滚动
Aug 30 Javascript
AngularJS bootstrap启动详解及实例代码
Sep 14 Javascript
Bootstrap jquery.twbsPagination.js动态页码分页实例代码
Feb 20 Javascript
通过命令行生成vue项目框架的方法
Jul 12 Javascript
vue下载excel的实现代码后台用post方法
May 10 Javascript
layui给下拉框、按钮状态、时间赋初始值的方法
Sep 10 Javascript
ant-design-vue中tree增删改的操作方法
Nov 03 #Javascript
Vue+Vant 图片上传加显示的案例
Nov 03 #Javascript
vant-ui AddressEdit地址编辑和van-area的用法说明
Nov 03 #Javascript
antd中table展开行默认展示,且不需要前边的加号操作
Nov 02 #Javascript
React Ant Design树形表格的复杂增删改操作
Nov 02 #Javascript
vue缓存之keep-alive的理解和应用详解
Nov 02 #Javascript
详解vue-router的导航钩子(导航守卫)
Nov 02 #Javascript
You might like
php获取用户浏览器版本的方法
2015/01/03 PHP
教你识别简单的免查杀PHP后门
2015/09/13 PHP
php ajax confirm 删除实例详解
2019/03/06 PHP
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
js生成的验证码的实现与技术分析
2014/09/17 Javascript
jQuery插件kinMaxShow扩展效果用法实例
2015/05/04 Javascript
javascript判断复选框是否选中的方法
2015/10/16 Javascript
js实现select下拉框菜单
2015/12/08 Javascript
js+css绘制颜色动态变化的圈中圈效果
2016/01/27 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
2017/03/09 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
2019/11/09 Javascript
浅谈js数组splice删除某个元素爬坑
2020/10/14 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
python实现的一个火车票转让信息采集器
2014/07/09 Python
python读文件保存到字典,修改字典并写入新文件的实例
2018/04/23 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
2018/10/30 Python
python3实现zabbix告警推送钉钉的示例
2019/02/20 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
Python3中函数参数传递方式实例详解
2019/05/05 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
opencv-python 读取图像并转换颜色空间实例
2019/12/09 Python
opencv resize图片为正方形尺寸的实现方法
2019/12/26 Python
Python如何使用turtle库绘制图形
2020/02/26 Python
Django中F函数的使用示例代码详解
2020/07/06 Python
详解如何解决H5开发使用wx.hideMenuItems无效果不生效
2021/01/20 HTML / CSS
伦敦时尚生活的缩影:LN-CC
2017/01/24 全球购物
C面试题
2015/10/08 面试题
怎样写留学自荐信
2013/11/11 职场文书
优秀员工演讲稿
2014/05/19 职场文书
护理专业自荐书
2014/06/04 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
个人工作总结怎么写?
2019/04/09 职场文书
mysql left join快速转inner join的过程
2021/06/30 MySQL