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入门教程(12) js对象化编程
Jan 31 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
May 12 Javascript
JQuery中基础过滤选择器用法实例分析
May 18 Javascript
基于JavaScript实现购物网站商品放大镜效果
Sep 06 Javascript
JS实现的简单轮播图运动效果示例
Dec 22 Javascript
JavaScript实现一个空中避难的小游戏
Jun 06 Javascript
基于js中style.width与offsetWidth的区别(详解)
Nov 12 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
Apr 09 Javascript
Node批量爬取头条视频并保存方法
Sep 20 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
Oct 31 Javascript
JQuery事件冒泡和默认行为代码实例
May 13 jQuery
简单了解vue 插值表达式Mustache
Jul 22 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和vue配合使用技巧和方法
2019/05/09 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
javascript中关于执行环境的杂谈
2011/08/14 Javascript
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
2012/06/22 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
2015/12/03 Javascript
理解javascript闭包
2015/12/15 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
react.js 翻页插件实例代码
2017/01/19 Javascript
JavaScript 函数节流详解及方法总结
2017/02/09 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
vue-quill-editor富文本编辑器简单使用方法
2018/09/21 Javascript
[04:32]玩具屠夫中文语音节选
2020/08/23 DOTA
Python中的并发编程实例
2014/07/07 Python
python打开文件并获取文件相关属性的方法
2015/04/23 Python
python实现linux下使用xcopy的方法
2015/06/28 Python
Windows上配置Emacs来开发Python及用Python扩展Emacs
2015/11/20 Python
python基本语法练习实例
2017/09/19 Python
django Admin文档生成器使用详解
2019/07/22 Python
nginx+uwsgi+django环境搭建的方法步骤
2019/11/25 Python
基于python使用tibco ems代码实例
2019/12/20 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
Python tkinter实现日期选择器
2021/02/22 Python
意大利折扣和优惠券网站:Groupalia
2019/10/09 全球购物
新浪微博实习心得体会
2014/01/27 职场文书
运动会解说词100字
2014/01/31 职场文书
淘宝中秋节活动方案
2014/01/31 职场文书
运动会稿件200字
2014/02/07 职场文书
房地产促销活动方案
2014/03/01 职场文书
党的群众教育实践活动实施方案
2014/06/12 职场文书
机关作风建设整改方案
2014/10/27 职场文书
巾帼建功标兵先进事迹材料
2016/02/29 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers
Nginx的基本概念和原理
2022/03/21 Servers
Win11 KB5015814遇安装失败 影响开始菜单性能解决方法
2022/07/15 数码科技