高德地图动态绘制路线--moveAlong(vue)

本文介绍如何在Vue项目中使用高德地图API实现动态路线绘制和轨迹巡航功能,包括地图初始化、路线路径设置、图标移动及路线跟随等关键技术点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

高德地图的引入和使用,详见高德地图动态绘制路线–轨迹巡航(vue)

动态绘制路线

<template>
    <div class="page_demo">
        <div id="container" class='container' :style="node"> </div>
    </div>
</template>

<script>
// import AMap from 'AMap'
export default {
    data () {
        return {
            screenHeight: document.documentElement.clientHeight,
            screenWidth: document.documentElement.clientWidth,
            node: {
                width: document.documentElement.clientWidth + 'px',
                height: document.documentElement.clientHeight + 'px'
            },
            marker: [],
            speed: 100
        }
    },
    mounted() {
        const that = this;
        // 初始化
        that.init();
        // 自适应
        window.onresize &
### 如何在 Vue2 中使用高德地图 API 实现轨迹回放功能 为了实现在 Vue2 项目中集成高德地图并实现轨迹回放的功能,可以按照如下方法进行设置和编码。 #### 安装依赖库 首先,在项目根目录下安装 `@amap/amap-jsapi-loader` 这一 npm 包来加载 AMap JS API[^1]: ```bash npm i @amap/amap-jsapi-loader --save ``` #### 初始化地图组件 创建一个新的 Vue 组件用于承载地图实例,并引入必要的模块。下面是一个简单的初始化例子: ```javascript <template> <div id="container"></div> </template> <script> import { load } from '@amap/amap-jsapi-loader'; export default { name: 'AmapComponent', data() { return { map: null, }; }, mounted() { this.initMap(); }, methods: { async initMap() { const AMAP_KEY = '您申请的key'; // 替换成自己的 key await load({ key: AMAP_KEY, // 高德开放平台申请的 Key version: '2.0', // 版本号 plugins: ['AMap.MoveAnimation'], // 加载插件 }).then((AMap) => { this.map = new AMap.Map('container', { zoom: 13, center: [116.397428, 39.90923], // 设置中心点坐标 }); }); } } }; </script> <style scoped> #container { width: 100%; height: 500px; } </style> ``` #### 添加轨迹回放逻辑 为了让地图支持轨迹回放,需利用 `AMap.Polyline` 和 `moveAlong()` 方法绘制路线并模拟移动效果。这里给出一段简化版的代码片段展示如何完成这一过程: ```javascript methods: { ..., playTrack(points) { let polyline = new AMap.Polyline({ path: points, strokeColor: "#FF33FF", strokeWeight: 6, strokeOpacity: 0.9, zIndex: 500, }); polyline.setMap(this.map); var marker = new AMap.Marker({ icon: "https://webapi.amap.com/images/car.png", // 自定义图标 position: points[0], angle: -90, offset: new AMap.Pixel(-26, -13), autoRotation: true, map: this.map }); marker.moveAlong(polyline.getPath(), { duration: 60 * 1000 / polyline.getPath().length, // 每个点之间的时间间隔 repeat: false // 是否循环播放 }); }, startPlayback() { // 示例数据:一系列经纬度组成的数组表示一条路径上的各个节点 const trackPoints = [ [116.397428, 39.90923], [116.407428, 39.91923], ... ]; this.playTrack(trackPoints); } } ``` 上述代码展示了如何基于给定的一系列地理坐标点构建 Polyline 对象作为行驶线路,并让 Marker 图标沿着这条线路上的一个个位置逐步前进,从而达到视觉上重现车辆或其他物体运动的效果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值