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 相关文章推荐
js 获取input点选按钮的值的方法
Apr 14 Javascript
javascript实现tab切换的四种方法
Nov 05 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
Dec 03 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
Jan 18 Javascript
JavaScript如何实现组合列表框中元素移动效果
Mar 01 Javascript
jQuery简单实现提交数据出现loading进度条的方法
Mar 29 Javascript
BootstrapValidator超详细教程(推荐)
Dec 07 Javascript
详解vue+vueRouter+webpack的简单实例
Jun 17 Javascript
python爬取安居客二手房网站数据(实例讲解)
Oct 19 Javascript
Vue面试题及Vue知识点整理
Oct 07 Javascript
微信小程序实现展示评分结果功能
Feb 15 Javascript
使用Vue CLI创建typescript项目的方法
Aug 09 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
第一个无线电台是由谁发明的
2021/03/01 无线电
php中将html中的br换行符转换为文本输入中的换行符
2013/03/26 PHP
降低PHP Redis内存占用
2017/03/23 PHP
laravel请求参数校验方法
2019/10/10 PHP
js几个验证函数代码
2010/03/25 Javascript
extjs中form与grid交互数据(record)的方法
2013/08/29 Javascript
js键盘上下左右键怎么触发function(实例讲解)
2013/12/14 Javascript
js判断为空Null与字符串为空简写方法
2014/02/24 Javascript
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
bootstrap学习笔记之初识bootstrap
2016/06/21 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
2017/03/27 Javascript
深入浅析Vue全局组件与局部组件的区别
2018/06/15 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
Python实现获取某天是某个月中的第几周
2015/02/11 Python
python开发之基于thread线程搜索本地文件的方法
2015/11/11 Python
Python 多线程的实例详解
2017/09/07 Python
Python闭包执行时值的传递方式实例分析
2018/06/04 Python
Tensorflow 实现将图像与标签数据转化为tfRecord文件
2020/02/17 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
2020/03/10 Python
python 发送get请求接口详解
2020/11/17 Python
HTML5去掉输入框type为number时的上下箭头的实现方法
2020/01/03 HTML / CSS
伦敦眼门票在线预订:London Eye
2018/05/31 全球购物
牵手50新加坡:专为黄金岁月的单身人士而设的交友网站
2020/08/16 全球购物
夜班门卫岗位职责
2013/12/09 职场文书
综合实践活动方案
2014/02/14 职场文书
关于保护环境的建议书
2014/05/13 职场文书
争先创优活动总结
2014/08/27 职场文书
优秀团员事迹材料1500字
2014/08/31 职场文书
社保代办委托书怎么写
2014/10/06 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
正能量励志演讲稿三分钟(范文)
2019/07/11 职场文书
工作计划范文之财务管理
2019/08/09 职场文书
浅析Python实现DFA算法
2021/06/26 Python