vue基于Vue2.0和高德地图的地图组件实例


Posted in Javascript onApril 28, 2017

前言

在做基于LBS的应用中,时常会和地图打交道,最直接的解决方案,当然是去对应的地图官网找文档,然后一步步来玩。对于简单场景而言,体验应该还好,但对于一些状态多,变化频繁的复杂场景而言,不仅要时刻维护本地数据状态和地图状态同步,还要查找设置各种状态的地图API,实在是让人头疼的事情。
设计vue-amap的初衷,也就是为了让开发者,在编写地图应用时,能从查找众多地图API和繁琐的地图状态同步中解脱出来。

那么vue-amap是如何做到的,又能给开发者带来怎样的便利与开发体验呢?我们就从一个轻点的栗子讲起。

产品经理说,咱们要搞个地图,上面给我放N个人,我要时刻知道他们的位置。

安装

npm install vue-amap --save

引入vue-amap

vue-amap的引入方式很简单,在入口文件中加入下面内容

// 引入vue-amap
import AMap from 'vue-amap';
Vue.use(AMap);

// 初始化vue-amap
AMap.initAMapApiLoader({
 // 申请的高德key
 key: 'YOUR_KEY',
 // 插件集合
 plugin: ['']
});

显示地图

在模版中加入vue-amap的地图组件

<el-amap vid="amapDemo">
</el-amap>

给地图加入N个人

在模版中加入vue-amap的地图组件

<template>
 <el-amap vid="amapDemo">
  // 添加N个人
  <el-amap-marker v-for="marker in markers" :position="marker.position">
  </el-amap-marker>
</el-amap>
</template>

<script>
export default {
 data() {
  return {
   markers: []
  };
 },
 mounted() {
  // 姑且N为2
  // 这样地图上就添加了两个人
  this.markers = [
   {
   position: [121.5273285, 31.21515044]
   }, {
   position: [121.5273286, 31.21515045]
   }
  ];
 }
};
</script>

让N个人动起来

之前我们已经将N个人放上去了,关键的时候来了,我们如何更新地图状态呢?vue-amap支持数据的单向绑定,直接更新本地数据状态即可同步地图显示状态。

<template>
 <el-amap vid="amapDemo">
  <el-amap-marker v-for="marker in markers" :position="marker.position">
  </el-amap-marker>
</el-amap>
</template>

<script>
export default {
 data() {
  return {
   markers: []
  };
 },
 mounted() {
  // 姑且N为2
  // 为地图添加两个人
  this.markers = [
   {
   position: [121.5273285, 31.21515044]
   }, {
   position: [121.5273286, 31.21515045]
   }
  ];

  // 模拟实时更新位置
  // 开启一个1s的轮训,每个人的经纬度都自增0.00001
  const step = 0.00001;
  setInterval(() => {
   this.markers.forEach((marker) => {
    marker.position = [marker.position[0] + step, marker.position[1] + step];
   });
  }, 1000);
 }
};
</script>

一个简单的基于vue-amap的地图应用就完成了,有没有觉得方便很多,我们只要维护好自己本地的数据状态即可,将具体地图的API,以及本地数据集和地图状态同步问题交给vue-amap负责就好了。

我们会持续维护这个项目,同时也希望vue-amap能给更多开发者带来开发效率的提高以及体验上的舒适。

Github:vue-amap

demo完成下载地址:vue-amap_3water.rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
slice函数的用法 之不错的应用
Dec 29 Javascript
jquery实现的横向二级导航效果代码
Aug 26 Javascript
总结JavaScript三种数据存储方式之间的区别
May 03 Javascript
JS随机打乱数组的方法小结
Jun 22 Javascript
Javascript字符串常用方法详解
Jul 21 Javascript
JavaScript利用Date实现简单的倒计时实例
Jan 12 Javascript
使用JavaScript触发过渡效果的方法
Jan 19 Javascript
使用jQuery如何写一个含验证码的登录界面
May 13 jQuery
React 实现车牌键盘的示例代码
Dec 20 Javascript
关于AngularJS中几种Providers的区别总结
May 17 Javascript
教你使用vscode 搭建react-native开发环境
Jul 07 Javascript
JavaScript流程控制(循环)
Dec 06 Javascript
d3.js实现立体柱图的方法详解
Apr 28 #Javascript
JS基于正则表达式的替换操作(replace)用法示例
Apr 28 #Javascript
vue调用高德地图实例代码
Apr 28 #Javascript
vue省市区三联动下拉选择组件的实现
Apr 28 #Javascript
AngulaJS路由 ui-router 传参实例
Apr 28 #Javascript
Angular.Js之Scope作用域的学习教程
Apr 27 #Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
Apr 27 #Javascript
You might like
PHP 编程的 5个良好习惯
2009/02/20 PHP
收集的二十一个实用便利的PHP函数代码
2010/04/22 PHP
PHP投票系统防刷票判断流程分析
2012/02/04 PHP
PHP持久连接mysql_pconnect()函数使用介绍
2012/02/05 PHP
PHP中rename()函数的妙用讲解
2019/02/28 PHP
JS加ASP二级域名转向的代码
2007/05/17 Javascript
JS时间选择器 兼容IE6,7,8,9
2012/06/26 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
2014/04/08 Javascript
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
JavaScript中ES6字符串扩展方法
2016/08/26 Javascript
深入学习Bootstrap表单
2016/12/13 Javascript
简单的vue-resourse获取json并应用到模板示例
2017/02/10 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
vue.js异步上传文件前后端实现代码
2017/08/22 Javascript
JS实现颜色的10进制转化成rgba格式的方法
2017/09/04 Javascript
Three.js如何用轨迹球插件(trackball)增加对模型的交互功能详解
2017/09/25 Javascript
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
详解webpack引用jquery(第三方模块)的三种办法
2019/08/21 jQuery
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
详解JavaScript 高阶函数
2020/09/14 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
基于Cesium绘制抛物弧线
2020/11/18 Javascript
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
对python中dict和json的区别详解
2018/12/18 Python
python set内置函数的具体使用
2019/07/02 Python
完美解决Django2.0中models下的ForeignKey()问题
2020/05/19 Python
Python: glob匹配文件的操作
2020/12/11 Python
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
DC Shoes荷兰官方网站:美国极限运动品牌
2019/10/22 全球购物
台湾良兴购物网:EcLife
2019/12/01 全球购物
初中同学聚会邀请函
2014/02/03 职场文书
《雨霖铃》教学反思
2014/02/22 职场文书
2014班子“三严三实”对照检查材料思想汇报
2014/09/18 职场文书
2015年度优秀员工自荐书
2015/03/06 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书