mars3d动态轨迹DynamicRoamLine,如何获取实时运⾏的经纬度
export let map // mars3d.Map三维地图对象
export let graphicLayer // ⽮量图层对象
// 需要覆盖config.json中地图属性参数(当前示例框架中⾃动处理合并)
export const mapOptions = {
scene: {
center: { lat: 31.773622, lng: 117.077444, alt: 5441, heading: 359, p
itch: -57 }
}
}
export const eventTarget = new mars3d.BaseClass()
/**
* 初始化地图业务,⽣命周期钩⼦函数(必须)
* 框架在地图初始化完成后⾃动调⽤该函数
* @param {mars3d.Map} mapInstance 地图对象
* @returns {void} ⽆
*/
export function onMounted(mapInstance) {
map = mapInstance // 记录map
// 演示数据的时间
map.clock.currentTime = Cesium.JulianDate.fromDate(new Date("2020-11-2
5 10:10:00"))
// 加载⻋辆
mars3d.Util.fetchJson({
url: "//data.mars3d.cn/file/apidemo/car-list.json"
})
.then(function (res) {
const tableData = res.data
eventTarget.fire("carList", { tableData })
showCarList(tableData)
})
.catch(function () {
globalMsg("查询信息失败")
})
}
/**
* 释放当前地图业务的⽣命周期函数
* @returns {void} ⽆
*/
export function onUnmounted() {
map = null
}
const colors = [
"rgb(40, 40, 255)",
"rgb(0, 88, 176)",
"rgb(0, 128, 255)",
"rgb(0, 217, 0)",
"rgb(0, 151, 0)",
"rgb(255, 199, 83)",
"rgb(255, 144, 30)",
"rgb(202, 101, 0)",
"rgb(255, 0, 0)"
]
function showCarList(arr) {
console.log("加载" + arr.length + "条")
// 创建⽮量数据图层
graphicLayer = new mars3d.layer.GraphicLayer()
map.addLayer(graphicLayer)
// ⿏标移⼊提示信息
graphicLayer.bindTooltip(function (event) {
const data = event.graphic.options
return "⻋辆编号:" + data.id + "<br />⻋牌号码:" + data.name
})
// 单击地图空⽩处
map.on(mars3d.EventType.clickMap, function (event) {
if (lastClickCar) {
lastClickCar.removeShading("circle")
lastClickCar = null
}
})
// 绑定点击事件
graphicLayer.on(mars3d.EventType.click, (event, position) => {
const car = event.graphic
console.log("单击了⻋辆", car)
if (lastClickCar) {
if (lastClickCar === car) {
return
} // 重复单击,跳出
lastClickCar.removeShading("circle")
lastClickCar = null
}
car.addShading({
type: "circle",
materialType: mars3d.MaterialType.CircleWave,
speed: 10,
count: 3,
gradient: 0.1,
radius: 50,
color: "#ffff00",
opacity: 0.3,
show: true
})
lastClickCar = car
// 视⻆定位下
// car.flyToPoint({ radius: 1000 })
})
let lastClickCar
for (let i = 0; i < arr.length; i++) {
const item = arr[i]
item.show = true
let modelParam
switch (item.type) {
case 1:
modelParam = {
scale: 2,
url: "//data.mars3d.cn/gltf/mars/car/tufangche.glb"
}
break
case 2:
modelParam = {
scale: 1,
url: "//data.mars3d.cn/gltf/mars/car/wajueji.glb"
}
break
default:
}
const car = new mars3d.graphic.DynamicRoamLine({
id: item.id,
name: item.name,
model: {
clampToGround: true,
show: true,
...modelParam
},
shadow: [
{
type: "polyline",
color: colors[i],
width: 2,
clampToGround: true,
maxDistance: 500,
show: true
}
]
})
car.on(mars3d.EventType.change, (event) => {
console.log(event);
})
graphicLayer.addGraphic(car)
}
// 定时获取卡⻋和铲⻋的列表数据
createPath()
}
// 取轨迹数据的时间间隔(单位:秒)
const timeStep = 10
let lastTime
// ⾸次获取并创建轨迹
function createPath() {
// 取数据的时间范围,结束时间
const date = Cesium.JulianDate.toDate(map.clock.currentTime)
const endTime = mars3d.Util.formatDate(date, "yyyy-MM-dd HH:mm:ss")
// 修改当前时间回退⼀分钟,因为数据永远是当前时间之前的。
date.setSeconds(date.getSeconds() - 60)
map.clock.currentTime = window.Cesium.JulianDate.fromDate(date)
// 取数据的时间范围,开始时间
date.setMinutes(date.getMinutes() - 10) // 初次取⼀定时间内的数据
const beginTime = mars3d.Util.formatDate(date, "yyyy-MM-dd HH:mm:ss")
// 记录最后⼀次读取数据的时间
lastTime = endTime
// 取数据
getPathList(beginTime, endTime)
解决⽅案: change事件中可以拿到position属性
issue: https://gitee.com/marsgis/mars3d/issues/I5CCL8?from=project-issue
// 定时更新
setInterval(() => {
updatePath()
}, timeStep * 1000)
}
相关文章:

mars3d动态轨迹DynamicRoamLine,如何获取实时运⾏的经纬度
问题 1.期望 实现 实时显示经纬度、⾼度,做电⼦围栏报警判断 2.第⼀步就是要,获取实时运⾏的经纬度信息、⾼度信息,然后通过算法做电⼦围栏判断 3.使⽤了参数getOverPositions,发现返回的不是经纬度 相关链接 http://mars3d.cn//e…...

jvm常识
Jvm工作原理学习笔记0126一、JVM的生命周期1.JVM实例对应了一个独立运行的java程序它是进程级别a)启动。启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点b)运行。ma…...

PHP部署、nginx与PHP的整合、PHP动态添加模块
文章目录前言一、基本知识1.php介绍2.PHP能做什么3.web工作原理4.PHP脚本主要用于领域5.php其他相关信息6.memcache介绍二、php的源码安装1.php安装2.php配置三、nginx与php整合四、php动态扩展模块(memcache模块)前言 一、基本知识 1.php介绍 官方下载…...

SpringCloud与SpringBoot的版本对应
一、SpringCloud与SpringBoot的版本对应 SpringCloud版本 SpringBoot版本 2021.0.1-SNAPSHOT Spring Boot >2.6.4-SNAPSHOT and <2.7.0-M1 2021.0.0 Spring Boot >2.6.1 and <2.6.4-SNAPSHOT 2021.0.0-RC1 Spring Boot >2.6.0-RC1 and <2.6.1 2021.0.0-M3 Sp…...

华为OD机试题,用 Java 解【N 进制减法】问题
最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】华为OD机试 - 组成最大数…...

Linux->进程概念于基本创建
1. 进程基本概念 当一个可执行程序被加载到内存当中,并由操作系统将其管理起来,此时这个程序就被称之为进程。也就是下方的: 程序的一个执行实例,正在执行的程序等 担当分配系统资源(CPU时间,内存ÿ…...

【MySQL】5.7版本解压安装配置
前言 之所以使用解压版本,而不使用exe安装,因为exe的安装方式删除过于麻烦!!! 如果安装MySQL过程中,出错了或者想重新在来一把,删除mysql服务即可 sc delete mysql # 删除已经安装好的Mysql&a…...

c++类对象数据成员和虚函数的内存布局
一直想搞清楚类对象的数据成员和虚函数的内存布局,今天刚好有时间,所以就写了个demo查看了一下具体的内存布局情况(使用的编译器为微软的)。下面是自己demo的代码:#include <iostream> #include <windows.h&g…...

Python 模块和包
1. 模块和包 **容器:**列表、元组、字符串、字典等,对数据的封装**函数:**对语句的封装**类:**对方法和属性的封装,即对函数和数据的封装 而模块(module)就是个程序,一个.py 文件&…...

Java零基础专栏——面向对象
1 面向对象思想1.1 什么是面向对象?2 类和对象2.1 类和对象的理解2.2 类的定义2.3定义类的补充注意事项2.4 对象的使用2.5 练习3 封装3.1 封装思想3.1.1 封装概述3.1.2 封装的步骤3.1.3 封装代码实现3.2 private关键字3.3 练习—private的使用4 构造方法4.1 构造方法…...

离散无记忆与有记忆信源的序列熵
本专栏包含信息论与编码的核心知识,按知识点组织,可作为教学或学习的参考。markdown版本已归档至【Github仓库:information-theory】,需要的朋友们自取。或者公众号【AIShareLab】回复 信息论 也可获取。 文章目录离散无记忆信源的…...

算法该不该刷?如何高效刷算法?
一、算法该不该刷?最近有小伙伴向我咨询一个问题,就是算法该不该刷,该如何刷算法呢?这个问题可谓太大众化了,只要你去某乎、某度搜索一下相关的解答,会有无数种回答,可见这个问题困扰了多少学习…...

Allegro如何在关闭飞线模式下查看网络连接位置操作指导
Allegro如何在关闭飞线模式下查看网络连接位置操作指导 在用Allegro做PCB设计的时候,有时会因为设计需要,关闭飞线显示。 如何在关闭飞线显示模式下查看网络连接的位置,如下图 除了能看到网络连接的点位以外,还能看到器件的pin Number 如何显示出这种效果,具体操作如下 …...

啊哈 算法读书笔记 第 1 章 一大波数正在靠近——排序
目录 排序算法: 时间复杂度: 排序算法和冒泡排序之间的过渡: 冒泡排序 冒泡排序和快速排序之间的过渡: 快速排序 排序算法: 首先出场的是我们的主人公小哼,上面这个可爱的娃就是啦。期末考试完了老…...

Servlet笔记(5):HTTP请求与响应
1、HTTP请求 当浏览器请求网页时,它会向Web服务器发送特定信息,这些信息不能被直接读取,而是通过传输HTTP请求时,封装进请求头中。 有哪些头信息? 头信息描述Accept这个头信息指定浏览器或其他客户端可以处理的 MIME…...

信号的运算与变换
目录 前言 本章内容介绍 信号的运算与变换 相加 相乘 时移 反折 尺度变换 微分(差分) 积分(累加) 信号的奇偶求解 信号的实虚分解 合适的例题 1、时移反折 2、时移尺度 3、时移反折尺度 4、反求x(t) 前言 《信号…...

【GO】K8s 管理系统项目9[API部分--Secret]
K8s 管理系统项目[API部分–Secret] 1. 接口实现 service/dataselector.go // secret type secretCell corev1.Secretfunc (s secretCell) GetCreation() time.Time {return s.CreationTimestamp.Time }func (s secretCell) GetName() string {return s.Name }2. Secret功能…...

ESP32 Arduino EspNow点对点双向通讯
ESP32 Arduino EspNow点对点双向通讯✨本案例分别采用esp32和esp32C3之间点对点单播无线通讯方式。 🌿esp32开发板 🌾esp32c3开发板 🔧所需库(需要自行导入到Arduino IDE library文件夹中,无法在IDE 管理库界面搜索下载到该库)&am…...

Linux SID 开发指南
Linux SID 开发指南 1 前言 1.1 编写目的 介绍Linux 内核中基于Sunxi 硬件平台的SID 模块驱动的详细设计,为软件编码和维护提供基 础。 1.2 适用范围 内核版本Linux-5.4, Linux-4.9 的平台。 1.3 相关人员 SID 驱动、Efuse 驱动、Sysinfo 驱动的维护、应用开…...

Matlab进阶绘图第2期—线型热图
线型热图由共享X轴的多条渐变直线组成,其颜色表示某一特征值。 与传统热图相比,线型热图适应于X轴数据远多于Y轴(条数)的情况,可以很好地对不同组数据间的分布情况进行比较,也因此可以在一些期刊中看到它的…...

【Redis中bigkey你了解吗?bigkey的危害?】
一.Redis中bigkey你了解吗?bigkey的危害? 如果面试官问到了这个问题,不必惊慌,接下来我们从什么是bigkey?bigkey划分的类型?bigkey危害之处? 二.什么是bigkey?会有什么影响ÿ…...

C++回顾(一)——从C到C++
前言 在学习了C语言的基础上,C到底和C有什么区别呢? 1.1 第一个C程序 #include <iostream>// 使用名为std的命名空间 using namespace std;int main() {// printf ("hello world\n");// cout 标准输出 往屏幕打印内容 相当于C语言的…...

CRF条件随机场 | 关键原理+面试知识点
😄 CRF之前跟人生导师:李航学习过,这里结合自己的理解,精简一波CRF,总结一下面试中高频出现的要点。个人觉得没网上说的那么复杂,我看网上很大部分都是一长篇先举个例子,然后再说原理。没必要原理其实不难,直接从原理下手更好理解。 文章目录 1、概率无向图(马尔可夫…...

秒懂算法 | 回归算法中的贝叶斯
在本文中,我们会用概率的观点来看待机器学习模型,用简单的例子帮助大家理解判别式模型和生成式模型的区别。通过思考曲线拟合的问题,发现习以为常的损失函数和正则化项背后有着深刻的意义 01、快速理解判别式模型和生成式模型 从概率的角度来理解数据有着两个不同的角度,假…...

用Netty实现物联网01:XML-RPC和JSON-RPC
最近十年,物联网和云计算、人工智能等技术一道,受到业内各方追捧,被炒得火热,甚至还诞生了AIoT这样的技术概念。和(移动)互联网不同,物联网针对的主要是一些资源有限的硬件设备,比如监控探头、烟雾感应器、温湿度感应器、车载OBD诊断器、智能电表、智能血压计等。这些硬…...

腾讯云服务器centos7安装python3.7+,解决ssl问题
使用requests模块访问百度,报错如下: requests.exceptions.SSLError: HTTPSConnectionPool(hostwww.baidu.com, port443): Max retries exceeded with url: / (Caused by SSLError("Cant connect to HTTPS URL because the SSL module is not avail…...

C++【模板STL简介】
文章目录C模板&&STL初阶一、泛型编程二、函数模板2.1.函数模板概念2.2.函数模板格式2.3.函数模板的实例化2.4.模板参数的匹配原则三、 类模板3.1.模板的定义格式3.2.类模板的实例化STL简介一、STL的概念、组成及缺陷二、STL的版本C模板&&STL初阶 一、泛型编程…...

该学会是自己找bug了(vs调试技巧)
前言 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言初阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>:介绍c语言初阶的最后一篇.有关调试的重要性. 金句分享…...

Redis大全(概念与下载安装)
目录 一、概念 1.非关系型数据库(NoSQL)的介绍 2.什么是redis 3.redis的作者 4.Redis的特点 5.redis的应用场景 6.高度概括知识 一、二 缓存穿透、缓存击穿、缓存雪崩的概念 (一)缓存穿透 (二)缓…...

指针的进阶【上篇】
文章目录📀1.字符指针📀2.指针数组📀3.数组指针💿3.1.数组指针的定义💿3.2. &数组名VS数组名💿3.3.数组指针的使用📀1.字符指针 int main() {char ch w;char* pc &ch;// pc就是字符指…...