openlayers实现路径动画

article/2025/10/24 13:36:47

实现效果如下
请添加图片描述

主要代码

import {Feature} from 'ol';
import {LineString, Point} from 'ol/geom';
import {Icon, Stroke, Fill, Style} from 'ol/style';
import {getVectorContext} from 'ol/render';// 路径动画图层
let traceSource = new VectorSource({});
let moveLayer = new VectorLayer({source: traceSource
});
let lastTime;
let distance;/*** @description 创建路径动画图层* @param {*} map 地图对象* @param {*} lineFeature 路径线段要素*/
function createMarkAnimation(map, lineFeature){// 根据路径线段的起点,创建移动元素点let personGeo = new Point(lineFeature.getGeometry().getFirstCoordinate());const markFeature = new Feature({type: 'moveMark',geometry: personGeo});const markStyle = new Style({image: new Icon({anchor: [0.5, 0.9],src: person_run	//---自行设置移动元素点的图片路径})});markFeature.setStyle(markStyle);traceSource.addFeature(markFeature);map.addLayer(moveLayer);// 开始路径动画lastTime = Date.now();distance = 0;moveLayer.on('postrender', e => {startRunAnimation(map, e, 300, lineFeature, personGeo, markStyle);});
}/*** @description 开始路径动画* @param {*} map_ol 地图* @param {*} e postrender事件参数* @param {*} speed 移动速度* @param {*} feature 路径线段元素* @param {*} geometry 运动元素几何对象*/
function startRunAnimation(map_ol, e, speed, feature, geometry, style) {const time = e.frameState.time;const elapsedTime = time - lastTime;distance = (distance + (speed * elapsedTime) / 1e6) % 2;if (distance >= 1) distance = 0; //从头重新开始运动lastTime = time;const currentCoordinate = feature.getGeometry().getCoordinateAt(distance > 1 ? 2 - distance : distance);geometry.setCoordinates(currentCoordinate);const vectorContext = getVectorContext(e);vectorContext.setStyle(style);vectorContext.drawGeometry(geometry);//告诉OpenLayers继续postrender动画map_ol.render();
}

参考官网示例:https://openlayers.org/en/latest/examples/feature-move-animation.html


http://chatgpt.dhexx.cn/article/EIixEeb7.shtml

相关文章

咸鱼Maya笔记—路径动画

咸鱼Maya笔记—路径动画 创建路径动画 动画的创建方式有很多种,路径动画是其中的一种,Key关键帧的方式并不适用于所有的情况,有些特定的情况下我们就需要用到路径动画,它的创建方法如下 创建路径动画 (如果你的maya菜…

CSS 路径动画

前言 最近看css大佬chokcoco的文章,看到了这篇 探秘神奇的运动路径动画 Motion Path 关于css路径动画的文章。 之前没学过,这里按照大佬的文章进行简单的学习。 Motion Path CSS Motion Path 规范主要包含以下几个属性: offset-path&…

AnimationPath路径动画实现详解

AnimationPath路径动画实现详解: 一、关联类图展示 二、实现详解 首先我们通过调用createAnimationPath方法来创建动画路径,即:通过起点、终点以及之间的时间步长来进行插值来保证动画的一个流畅度,然后将这些时间和点保存到一个…

Dotween Path 路径动画使用方法详解

Dotween对于路径动画部分的api我觉得注释的过少了,很多用法没有写清楚,这里我就对Dotween Path做一下详细说明 1、API Dotween对于路径动画就只提供了两个方法,一个是针对于世界坐标的,一个是针对于局部坐标的,本质上…

WPF路径动画

特此声明:本文为CSDN博主「田野上的风筝」,原文地址:https://blog.csdn.net/weixin_43100896/article/details/87899883。感谢大佬的总结, 下文为转载内容。 在WPF中实现动画并不是什么困难的事,因为WPF提供了动画模型…

10路径动画

using System.Collections; using System.Collections.Generic; using System.Linq; using DG.Tweening; using UnityEngine;public class PathMove : MonoBehaviour {public Transform[] pointList;void Start(){//select方法,直接得到值,查询要返回的目标数据 int[] numm {…

服务器连接超时是怎么回事呢?

服务器连接超时就是在程序默认的等待时间内没有得到服务器的响应。 网络连接超时可能的原因有那些呢? 1、网络断开,不过经常显示无法连接。网络阻塞,导致你不能在程序默认等待时间内得到回复数据包。 2、网络不稳定,网络无法完整…

服务器时间修改连接超时时间,服务器设置网络连接超时时间设置

服务器设置网络连接超时时间设置 内容精选 换一换 有以下几种现象:将制作好的SD卡插入开发者板并上电后,开发者板LED1与LED2灯状态信息异常。将制作好的SD卡插入开发者板,并通过USB方式连接Ubuntu服务器,上电、开发者板启动完成后,Ubuntu服务器无虚拟网卡信息。将制作好的…

修改服务器超时时间,服务器超时时间设置

服务器超时时间设置 内容精选 换一换 在压测过程中能够提供自身性能数据的施压目标机器。管理执行机的节点。CPTS为用户的测试工程提供管理能力,事务、压测任务、测试报告的内容在同一个测试工程内共享复用,您可以为不同的测试项目创建不同的测试工程。事务是指用户自定义的操…

FinalShell连接超时解决方法

输入ipconfig查看是否自动更改了ip地址 如果ip地址有变动,在shell中更改 查看是否打开了vm服务 快捷键:win X 选择“计算机管理(G)” 下滑找到vm服务,如若关闭打开即可 查看是否打开vm网络连接 右键点击属性,勾选所示…

finalshell连接超时怎么办

错误提示:java.net.ConnectException: Connection timed out: connect 在Linux中输入ip addr 来查看ip地址是否还在 如果没有的话重启虚拟机,出现ip地址再进行ssh连接

光猫显示连接isp服务器超时,光猫链接isp服务器超时

光猫链接isp服务器超时 内容精选 换一换 若已有连接后端服务器超过请求超时时间没有请求传输后,ELB会将其断开。根据负载均衡器与后端服务器链接的协议不同,系统默认超时时间也不同,系统默认的超时时间如下。TCP协议:默认超时时间为300s。UDP协议:默认超时时间为10s。HTTP…

服务器时间修改连接超时时间设置,云服务器连接超时时间设置

云服务器连接超时时间设置 内容精选 换一换 配置高防IP服务后,网站执行某些POST请求时,长时间等待后返回504错误,执行不成功。此问题是由于请求处理时间过长,已超过高防IP服务的连接阈值,高防IP服务主动断开连接。TCP默认连接超时时间为900s。HTTP/WebSocket、HTTPS/WebSo…

putty连接服务器显示连接超时,putty连接云服务器超时连接

putty连接云服务器超时连接 内容精选 换一换 文档数据库服务提供使用数据管理服务(Data Admin Service,简称DAS)、内网和公网的连接方式。文档数据库服务默认为您开通了远程主机登录权限,推荐您使用更安全便捷的数据管理服务连接实例,具体请参见通过数据管理服务连接集群实例…

apex显示服务器连接超时,apex与服务器链接超时

apex与服务器链接超时 内容精选 换一换 使用mount命令挂载文件系统到云服务器,云服务器系统提示timed out。原因1:网络状态不稳定。原因2:网络连接异常。原因3:云服务器DNS配置错误,导致解析不到文件系统的域名,挂载失败。SFS Turbo文件系统不存在此问题。原因4:挂载的是…

光猫显示isp服务器断开,光猫连接isp服务器超时

光猫连接isp服务器超时 内容精选 换一换 在使用负载均衡服务时,确保至少有一台后端服务器在正常运行,可以接收负载均衡转发的客户端请求。如果请求的需求流量上升,用户需要向负载均衡器添加更多后端服务器处理需求。移除负载均衡器绑定的后端服务器,后端服务器将不再收到负…

网页 游戏服务器连接超时,连接游戏服务器超时怎么解决

连接游戏服务器超时怎么解决 内容精选 换一换 调用API出错后,将不会返回结果数据。调用方可根据每个API对应的错误码来定位错误原因。当调用出错时,HTTP请求返回一个4xx或5xx的HTTP状态码。返回的消息体中是具体的错误代码及错误信息。在调用方找不到错误原因时,可以联系客服…

【uniapp/hBuilder】使用部分插件(如uni-file-picker)后出现连接服务器超时的解决方法

在uniapp项目中,导入uni-file-picker等一些组件可能会使相关页面变成(但是其他页面正常运行): 这是由于该组件需要你绑定uniapp的服务空间运行。(当然也可以不绑定,你可以选择手动上传的方式)…

uni-app 编译成H5页面运行,提示“连接服务器超时,请点击屏幕重试”

现象 参考文档: uni-app H5端 “网络不给力” 排查日记 备注: 不一定是网络问题,有可能是代码问题,不要被提示忽悠了,记得看控制台代码,代码报错解决了,报错也就解决了 history 模式。跳转页…

uniapp 发布h5后报错,连接服务器超时,点击屏幕重试

更新文件到linux 也更新不上去 解决方法: 文件目录层级太深了,直接把项目文件放到D盘