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 相关文章推荐
起点页面传值js,有空研究学习下
Jan 25 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
Oct 17 Javascript
Angularjs中UI Router全攻略
Jan 29 Javascript
几种经典排序算法的JS实现方法
Mar 25 Javascript
javascript之Boolean类型对象
Jun 07 Javascript
jquery精度计算代码 jquery指定精确小数位
Feb 06 Javascript
xmlplus组件设计系列之路由(ViewStack)(7)
May 02 Javascript
jquery.uploadView 实现图片预览上传功能
Aug 10 jQuery
vue如何安装使用Quill富文本编辑器
Sep 21 Javascript
js判断一个对象是数组(函数)的方法实例
Dec 19 Javascript
vscode中Vue别名路径提示的实现
Jul 31 Javascript
基于js实现的图片拖拽排序源码实例
Nov 04 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处理json时中文问题的解决方法
2011/04/12 PHP
php下通过curl抓取yahoo boss 搜索结果的实现代码
2011/06/10 PHP
php页面跳转代码 输入网址跳转到你定义的页面
2013/03/28 PHP
PHP的关于变量和日期处理的一些面试题目整理
2015/08/10 PHP
Alliance vs AM BO3 第一场2.13
2021/03/10 DOTA
js实现按钮加背景图片常用方法
2014/11/01 Javascript
开源的javascript项目Kissy介绍
2014/11/28 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
2015/11/24 Javascript
微信小程序开发之Tabbar实例详解
2017/01/09 Javascript
整理关于Bootstrap表单的慕课笔记
2017/03/29 Javascript
微信小程序中的onLoad详解及简单实例
2017/04/05 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
JavaScript 点击触发复制功能实例详解
2018/11/02 Javascript
微信小程序实现省市区三级地址选择
2020/06/21 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
微信小程序实现3D轮播图效果(非swiper组件)
2019/09/21 Javascript
[01:07:22]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG加赛
2014/05/26 DOTA
python3写爬取B站视频弹幕功能
2017/12/22 Python
简单了解什么是神经网络
2017/12/23 Python
解决DataFrame排序sort的问题
2018/06/07 Python
对python多线程与global变量详解
2018/11/09 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
OpenCV 轮廓检测的实现方法
2019/07/03 Python
Python PIL图片添加字体的例子
2019/08/22 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
Python Selenium库的基本使用教程
2021/01/04 Python
5分钟弄清楚html5的drag and drop(小结)
2019/04/10 HTML / CSS
阿里健康官方海外旗舰店:阿里健康国际自营
2017/11/24 全球购物
Vrbo英国:预订度假屋
2020/08/19 全球购物
寄语学生的话
2014/04/10 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
大雁塔英文导游词
2015/02/10 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
认识实习感想
2015/08/10 职场文书
旅游安全责任协议书
2016/03/22 职场文书
15个值得收藏的JavaScript函数
2021/09/15 Javascript