返回资源中心

vue-amap

框架库
地图组件
1 次浏览
0 个赞
Vue地图高德饿了么

资源描述

vue-amap 是饿了么团队基于 Vue 2.x 开发的高德地图官方封装组件库,提供声明式、响应式的地图交互能力。适用于 LBS 应用、O2O 服务(如外卖/打车/门店定位)、地理围栏、轨迹展示等场景,显著降低高德 JS API 集成复杂度,支持 Marker、InfoWindow、覆盖物、插件(如驾车/步行路线规划)等核心功能。

详细内容

## 框架简介与定位 `vue-amap` 是由饿了么(ElemeFE)团队开源的 Vue 2.x 生态专用高德地图组件库,旨在为 Vue 应用提供轻量、易用、符合 Vue 响应式范式的地图集成方案。它并非高德官方 SDK,而是对 [高德 Web JS API v1.4+](https://lbs.amap.com/api/javascript-api/) 的高质量 Vue 封装,通过组件化方式屏蔽底层 DOM 操作与生命周期管理细节,使开发者可专注业务逻辑。 ## 核心特性 - ✅ **声明式组件设计**:支持 `<el-amap>`、`<el-amap-marker>`、`<el-amap-info-window>` 等 20+ 原生组件,属性绑定与事件监听完全遵循 Vue 语法规范。 - ✅ **响应式数据驱动**:地图中心点、缩放级别、标记列表等均支持双向响应式更新,无需手动调用 `setCenter()` 或 `clearMarkers()`。 - ✅ **完整覆盖物支持**:涵盖 Marker、Polyline、Polygon、Circle、GroundImage、TileLayer 等高德原生覆盖物,并提供 Vue 化的 props 控制与 slot 自定义渲染。 - ✅ **内置常用插件封装**:集成高德路径规划(Driving、Walking、Riding)、地理编码(Geocoder)、逆地理编码(AMap.Geocoder)、实时交通(TrafficLayer)等插件,统一为 `v-model` 或事件回调暴露结果。 - ✅ **按需加载与懒加载优化**:支持通过 `plugins` 选项动态加载高德 SDK 模块(如 `'AMap.Autocomplete'`),避免全量加载,提升首屏性能。 ## 适用场景 - O2O 类应用:外卖/跑腿/到家服务中的骑手定位、订单轨迹、配送范围圈选; - 本地生活平台:商家地图展示、用户当前位置搜索、周边 POI 筛选; - 物流与运输系统:车辆实时监控、电子围栏告警、历史轨迹回放; - 政务与公共服务:城市热力图、应急资源分布、疫情风险区域可视化; - 教育与旅游类 H5:景点导览、路线推荐、AR 导航前置地图容器。 ## 快速入门步骤 1. **安装依赖**(仅支持 Vue 2.x): ```bash npm install vue-amap --save ``` 2. **全局注册组件**(main.js): ```js import Vue from 'vue'; import VueAMap from 'vue-amap'; Vue.use(VueAMap); VueAMap.initAMapApiLoader({ key: 'YOUR_AMAP_KEY', // 替换为高德开放平台申请的 Key plugin: ['AMap.Autocomplete', 'AMap.PlaceSearch'], // 按需引入插件 v: '1.4.15' }); ``` 3. **最小示例(单文件组件)**: ```vue <template> <el-amap :zoom="12" :center="center"> <el-amap-marker :position="center" /> </el-amap> </template> <script> export default { data() { return { center: [121.59997, 31.197646] // 上海坐标 }; } }; </script> ``` ## 生态与社区说明 - 项目托管于 GitHub Pages:[https://elemefe.github.io/vue-amap/#/](https://elemefe.github.io/vue-amap/#/),文档完整且含在线 Demo; - 源码仓库已归档(截至 2023 年不再维护新特性),但稳定版(v0.5.x)仍广泛用于存量 Vue 2 项目; - 社区活跃于 GitHub Issues 与中文技术论坛(如掘金、SegmentFault),常见问题有成熟解决方案沉淀; - Vue 3 用户需迁移至社区维护的兼容方案(如 `vue3-amap`)或直接使用高德官方 `@amap/amap-jsapi-loader` + Composition API 封装。