当前位置:首页 > 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 的更多参数配置。

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

相关文章

css地图制作教程

css地图制作教程

CSS地图制作方法 使用CSS制作地图通常涉及利用HTML元素和CSS样式来绘制地理图形或交互式元素。以下是几种常见方法: 基础形状绘制 通过CSS的border、box-shadow和trans…

vue地图怎么实现

vue地图怎么实现

Vue 中实现地图的方法 Vue 可以通过集成第三方地图库(如百度地图、高德地图、Google Maps 或 Leaflet)来实现地图功能。以下是几种常见的实现方式: 使用百度地图 引入百度地图…

vue实现地图轨迹

vue实现地图轨迹

Vue 实现地图轨迹的方法 使用高德地图 API 高德地图提供了 JavaScript API,适合在 Vue 项目中集成。需要先申请高德地图的 Key,并在项目中引入高德地图的 SDK。 安装依赖…

react native实现地图

react native实现地图

React Native 地图实现方法 安装依赖库 使用 react-native-maps 库实现地图功能,需要安装核心库和平台特定配置: npm install react-native-map…

css制作地图

css制作地图

使用CSS制作地图的基本方法 通过CSS的伪元素、边框、阴影等属性可以创建简单的地图轮廓或区块效果。例如用div和border模拟地图边界: .map-container { width: 30…

js实现路线导航

js实现路线导航

使用 Geolocation API 获取当前位置 通过 navigator.geolocation.getCurrentPosition 获取用户当前位置的经纬度坐标。需要用户授权地理位置权限。…