当前位置:首页 > VUE

vue 实现地图路线

2026-02-23 07:53:48VUE

Vue 实现地图路线的方法

使用 Vue 实现地图路线通常需要结合第三方地图 API(如高德、百度或 Google Maps)。以下是基于高德地图的实现方法。

安装高德地图 SDK

在项目中引入高德地图 JavaScript API,可以通过 CDN 或 npm 安装。以下是 npm 安装方式:

vue 实现地图路线

npm install @amap/amap-jsapi-loader --save

初始化地图组件

创建一个 Vue 组件用于加载地图。在组件中引入高德地图 SDK 并初始化地图实例。

vue 实现地图路线

<template>
  <div id="map-container" style="width: 100%; height: 500px;"></div>
</template>

<script>
import AMapLoader from '@amap/amap-jsapi-loader';

export default {
  name: 'MapRoute',
  data() {
    return {
      map: null,
      path: [
        [116.478935, 39.997761],
        [116.478939, 39.997825],
        [116.478912, 39.998549],
        [116.478912, 39.998549],
        [116.478998, 39.998555],
        [116.478998, 39.998555],
        [116.479282, 39.99856],
        [116.479658, 39.998528],
        [116.480151, 39.998453],
        [116.480784, 39.998302],
      ],
    };
  },
  mounted() {
    this.initMap();
  },
  methods: {
    initMap() {
      AMapLoader.load({
        key: '你的高德地图Key',
        version: '2.0',
        plugins: ['AMap.Driving'],
      })
        .then((AMap) => {
          this.map = new AMap.Map('map-container', {
            viewMode: '2D',
            zoom: 13,
            center: [116.397428, 39.90923],
          });
          this.drawRoute(AMap);
        })
        .catch((e) => {
          console.error(e);
        });
    },
    drawRoute(AMap) {
      const driving = new AMap.Driving({
        map: this.map,
        panel: 'panel',
      });
      driving.search(
        new AMap.LngLat(116.379028, 39.865042),
        new AMap.LngLat(116.427281, 39.903719),
        (status, result) => {
          if (status === 'complete') {
            console.log('绘制路线完成');
          } else {
            console.error('路线规划失败:', result);
          }
        }
      );
    },
  },
};
</script>

自定义路线样式

如果需要自定义路线样式,可以通过 polyline 实现。以下是绘制自定义路径的代码示例:

drawCustomRoute(AMap) {
  const polyline = new AMap.Polyline({
    path: this.path,
    isOutline: true,
    outlineColor: '#ffeeff',
    borderWeight: 1,
    strokeColor: '#3366FF',
    strokeOpacity: 1,
    strokeWeight: 6,
    strokeStyle: 'solid',
    lineJoin: 'round',
    lineCap: 'round',
    zIndex: 50,
  });
  this.map.add(polyline);
  this.map.setFitView();
}

添加路线标记点

可以在地图上添加起点和终点的标记点,增强用户体验。

addMarkers(AMap) {
  const startMarker = new AMap.Marker({
    position: this.path[0],
    icon: 'https://webapi.amap.com/theme/v1.3/markers/n/start.png',
    map: this.map,
  });
  const endMarker = new AMap.Marker({
    position: this.path[this.path.length - 1],
    icon: 'https://webapi.amap.com/theme/v1.3/markers/n/end.png',
    map: this.map,
  });
}

注意事项

  • 高德地图的 Key 需要注册并获取,替换代码中的 你的高德地图Key
  • 路径数据 path 可以根据实际需求动态获取或计算。
  • 如果需要更复杂的路线规划(如避堵、高速优先等),可以使用 AMap.Driving 的更多参数配置。

标签: 路线地图
分享给朋友:

相关文章

vue实现工位地图

vue实现工位地图

Vue 实现工位地图的方法 使用地图库(如百度地图、高德地图、Leaflet) 在Vue项目中集成第三方地图库(如百度地图API或高德地图API)可以快速实现工位地图功能。需要申请对应的开发者密钥,并…

vue地图实现卫星图

vue地图实现卫星图

使用高德地图实现卫星图 高德地图提供了卫星图图层,可以通过Vue组件轻松实现。需要注册高德开发者账号并获取API key。 安装依赖: npm install @amap/amap-jsapi-l…

如何在react中嵌入高德地图

如何在react中嵌入高德地图

安装高德地图 JavaScript API 在项目中引入高德地图的 JavaScript API。可以通过在 public/index.html 中添加脚本标签实现: <script src=…

js实现手绘地图

js实现手绘地图

实现手绘地图的JavaScript方法 使用Canvas绘制基础地图 Canvas API适合绘制手绘风格的图形。通过设置线条的粗糙度和填充颜色,可以模拟手绘效果。 const canvas = d…

uniapp开发路线

uniapp开发路线

uniapp开发路线概述 uniapp是一个使用Vue.js开发跨平台应用的框架,支持编译到iOS、Android、H5以及小程序等多个平台。以下是uniapp开发的主要路线和关键点。 基础学习阶段…

uniapp 3D地图

uniapp 3D地图

在 uniapp 中实现 3D 地图功能,可以通过以下方法实现: 使用高德地图或百度地图的 JavaScript API 高德地图和百度地图提供了丰富的 JavaScript API,支持 3D 地…