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 刷新页面的代码小结 推荐
Apr 02 Javascript
15个款优秀的 jQuery 图片特效插件推荐
Nov 21 Javascript
Javascript图像处理思路及实现代码
Dec 25 Javascript
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
Mar 26 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
Jun 22 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
Nov 01 Javascript
JavaScript设计模式之责任链模式实例分析
Jan 16 Javascript
简单谈谈javascript高级特性
Sep 04 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
Nov 19 Javascript
Vue简单封装axios之解决post请求后端接收不到参数问题
Feb 16 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
Apr 30 jQuery
简单了解vue 插值表达式Mustache
Jul 22 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-fpm静态和动态执行方式的比较
2016/11/09 PHP
新浪刚打开页面出来的全屏广告代码
2007/04/02 Javascript
学习ExtJS(一) 之基础前提
2009/10/07 Javascript
JS 文件本身编码转换 图文教程
2009/10/12 Javascript
别了 JavaScript中的isXX系列
2012/08/01 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
2016/03/10 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
老生常谈jquery id选择器和class选择器的区别
2017/02/12 Javascript
node.js中http模块和url模块的简单介绍
2017/10/06 Javascript
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
vue 返回上一页,页面样式错乱的解决
2019/11/14 Javascript
js实现简单贪吃蛇游戏
2020/05/15 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
[02:07]2017国际邀请赛中国区预选赛直邀战队前瞻
2017/06/23 DOTA
[01:16]DOTA2小知识课堂 Ep.03 芒果树无伤肉山
2019/12/05 DOTA
netbeans7安装python插件的方法图解
2013/12/24 Python
Python Web框架Flask中使用新浪SAE云存储实例
2015/02/08 Python
深入解析Python中的urllib2模块
2015/11/13 Python
浅谈Python爬取网页的编码处理
2016/11/04 Python
python读取TXT每行,并存到LIST中的方法
2018/10/26 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
2019/06/27 Python
基于Python2、Python3中reload()的不同用法介绍
2019/08/12 Python
python 爬虫 实现增量去重和定时爬取实例
2020/02/28 Python
python 19个值得学习的编程技巧
2020/08/15 Python
世界上最大的街头服饰网站:Karmaloop
2017/02/04 全球购物
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
新文化运动的口号
2014/06/21 职场文书
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书
这样写python注释让代码更加的优雅
2021/06/02 Python
Go语言 详解net的tcp服务
2022/04/14 Golang
Go gorilla/sessions库安装使用
2022/08/14 Golang