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复制对象使用说明
Jun 28 Javascript
Javascript 按位与赋值运算符 (&amp;=)使用介绍
Feb 04 Javascript
js 获取元素下面所有li的两种方法
Apr 14 Javascript
微信小程序 火车票查询实例讲解
Oct 17 Javascript
JS动态生成年份和月份实例代码
Feb 04 Javascript
JS验证码实现代码
Sep 14 Javascript
js Dom实现换肤效果
Oct 21 Javascript
js定时器实现倒计时效果
Nov 05 Javascript
基于Layui自定义模块的使用方法详解
Sep 14 Javascript
express中static中间件的具体使用方法
Oct 17 Javascript
JavaScript设计模式之观察者模式与发布订阅模式详解
May 07 Javascript
vue项目配置同一局域网可使用ip访问的操作
Oct 23 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
模拟SQLSERVER的两个函数:dateadd(),datediff()
2006/10/09 PHP
php 阴历-农历-转换类代码
2012/01/16 PHP
php超快高效率统计大文件行数
2015/07/05 PHP
php curl模拟post请求和提交多维数组的示例代码
2015/11/19 PHP
PHP中的empty、isset、isnull的区别与使用实例
2019/03/22 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
2019/07/12 PHP
插件:检测javascript的内存泄漏
2007/03/04 Javascript
随机显示经典句子或诗歌的javascript脚本
2007/08/04 Javascript
固定网页背景图同时保持图片比例的思路代码
2013/08/15 Javascript
jquery默认校验规则整理
2014/03/24 Javascript
从数据库读取数据后将其输出成html标签的三种方法
2014/10/13 Javascript
javascript实现 百度翻译 可折叠的分享按钮列表
2015/03/12 Javascript
JavaScript 继承详解(五)
2016/10/11 Javascript
jQuery读取XML文件的方法示例
2017/02/03 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
2017/09/20 Javascript
详解vue中点击空白处隐藏div的实现(用指令实现)
2018/04/19 Javascript
解决js中的setInterval清空定时器不管用问题
2020/11/17 Javascript
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
在Python中用has_key()方法查找键是否存在的教程
2015/05/21 Python
Python中的迭代器与生成器高级用法解析
2016/06/28 Python
python 数据提取及拆分的实现代码
2019/08/26 Python
python日期与时间戳的各种转换示例
2020/02/12 Python
Python类的动态绑定实现原理
2020/03/21 Python
解决keras加入lambda层时shape的问题
2020/06/11 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
美国钻石商店:Zales
2016/11/20 全球购物
会计应聘求职信范文
2013/12/17 职场文书
护士毕业生自我鉴定
2014/02/08 职场文书
2014年大学生党员评议表自我评价
2014/09/20 职场文书
党支部三严三实对照检查材料思想汇报
2014/09/29 职场文书
2014社区健康教育工作总结
2014/12/16 职场文书
2015年度物流工作总结
2015/04/30 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
图片批量处理 - 尺寸、格式、水印等
2022/03/07 杂记
Golang jwt身份认证
2022/04/20 Golang
httpclient调用远程接口的方法
2022/08/14 Java/Android