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 相关文章推荐
jQuery 页面载入进度条实现代码
Feb 08 Javascript
JS函数验证总结(方便js客户端输入验证)
Oct 29 Javascript
PHP PDO操作总结
Nov 17 Javascript
jQuery实现表格行上下移动和置顶效果
Jun 05 Javascript
基于jQuery实现的扇形定时器附源码下载
Oct 20 Javascript
Mvc提交表单的四种方法全程详解
Aug 10 Javascript
js模拟微博发布消息
Feb 23 Javascript
Angular.JS去掉访问路径URL中的#号详解
Mar 30 Javascript
Flask中获取小程序Request数据的两种方法
May 12 Javascript
vue.js整合mint-ui里的轮播图实例代码
Dec 27 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
Feb 11 Javascript
JS ES6异步解决方案
Apr 29 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
合作指挥官:孟斯克
2020/03/16 星际争霸
php chr() ord()中文截取乱码问题解决方法
2008/09/08 PHP
PHP中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
表单的一些基本用法与技巧
2006/07/15 Javascript
JavaScript操作XML 使用百度RSS作为新闻源示例
2012/02/17 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
2015/08/30 Javascript
JavaScript的String字符串对象常用操作总结
2016/05/26 Javascript
JS控制静态页面传递参数并获取参数应用
2016/08/10 Javascript
Angularjs CURD 详解及实例代码
2016/09/14 Javascript
js仿支付宝多方框输入支付密码效果
2016/09/27 Javascript
js监听键盘事件的方法_原生和jquery的区别详解
2016/10/10 Javascript
js+css3制作时钟特效
2016/10/16 Javascript
简单的网页广告特效实例
2017/08/19 Javascript
vue项目中使用tinymce编辑器的步骤详解
2018/09/11 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
JS中的算法与数据结构之字典(Dictionary)实例详解
2019/08/20 Javascript
[03:36]DOTA2完美大师赛coL战队趣味视频——我演你猜
2017/11/23 DOTA
Python字符串转换成浮点数函数分享
2015/07/24 Python
Python反射的用法实例分析
2018/02/11 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
对Python 语音识别框架详解
2018/12/24 Python
Django如何将URL映射到视图
2019/07/29 Python
利用django model save方法对未更改的字段依然进行了保存
2020/03/28 Python
python使用OpenCV模块实现图像的融合示例代码
2020/04/10 Python
Python如何将模块打包并发布
2020/08/30 Python
python 如何引入协程和原理分析
2020/11/30 Python
HTML5 常用语法一览(列举不支持的属性)
2010/01/26 HTML / CSS
西尔斯百货官网:Sears
2016/09/06 全球购物
手术室护士长竞聘书
2014/03/31 职场文书
2014年国庆标语
2014/06/30 职场文书
公司户外活动总结
2014/07/04 职场文书
群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
自主招生自荐信格式
2015/03/04 职场文书
大学毕业典礼致辞
2015/07/29 职场文书