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

发布时间 - 2026-01-11 00:52:47    点击率:

前言

在做基于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_jb51.rar

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


# vue  # 高德地图  # 高德  # vue引用高德地图  # VUE项目中调用高德地图的全流程讲解  # 在vue中高德地图引入和轨迹的绘制的实现  # Vue中的高德轨迹回放  # 他们的  # 我要  # 给我  # 让人  # 来了  # 去了  # 也就  # 下载地址  # 每个人  # 很简单  # 又能  # 能给  # 绑定  # 来玩  # 放上  # 官网  # 大家多多  # 讲起  # 图上  # 要搞 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Android Socket接口实现即时通讯实例代码  如何获取上海专业网站定制建站电话?  Bootstrap整体框架之CSS12栅格系统  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  高防服务器:AI智能防御DDoS攻击与数据安全保障  Laravel怎么判断请求类型_Laravel Request isMethod用法  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  Laravel定时任务怎么设置_Laravel Crontab调度器配置  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  Laravel如何与Pusher实现实时通信?(WebSocket示例)  WEB开发之注册页面验证码倒计时代码的实现  Laravel如何使用Eloquent进行子查询  实例解析Array和String方法  Laravel如何使用Blade组件和插槽?(Component代码示例)  如何在万网自助建站平台快速创建网站?  如何在Windows服务器上快速搭建网站?  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  JS中对数组元素进行增删改移的方法总结  如何快速搭建高效简练网站?  iOS发送验证码倒计时应用  如何用低价快速搭建高质量网站?  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  香港服务器选型指南:免备案配置与高效建站方案解析  高防服务器如何保障网站安全无虞?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  如何快速上传自定义模板至建站之星?  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  微信小程序 配置文件详细介绍  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  潮流网站制作头像软件下载,适合母子的网名有哪些?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  微信小程序 canvas开发实例及注意事项  如何利用DOS批处理实现定时关机操作详解  深圳网站制作培训,深圳哪些招聘网站比较好?  如何快速完成中国万网建站详细流程?  python中快速进行多个字符替换的方法小结  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  使用C语言编写圣诞表白程序  Swift中switch语句区间和元组模式匹配  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  Laravel如何实现一对一模型关联?(Eloquent示例)  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤