您的位置:老铁SEO > 站长新闻 > 网站交易 >

julian,Cesium中的JulianDate对象

文章来源:http://www.6cu.com

作者:外链网站

人气:16

2021-03-23 04:39:10

     一、JulianDate简介

     对于这个对象而言,刚一开始一直让我很困惑,因为我一时没搞明白它到底是怎么用的,也怪我当初没好好学JavaScript,其实JulianDate与JS中的Date是相同的。只不过可能前者的精度更为精确一些。

     (1)因为我个人是比较喜欢“比较”的,所以就先看一下JS中的Date类型,其是使用从UTC(Coordinated Universal Time,国际协调时间)1970年1月1日(零时)开始经过的毫秒数来保存日期的。使用这种格式Date类型可以保存的日期能够精确到1970年1月1日之前或之后的100000000天。

     (2)而JulianDate类型Cesium是这样解释的,“Represents an astronomical Julian date, which is the number of days since noon on January 1, -4712 (4713 BC). For increased precision, this class stores the whole number part of the date and the seconds part of the date in separate components. In order to be safe for arithmetic and represent leap seconds, the date is always stored in the International Atomic Time standard TimeStandard.TAI. ”,翻译过来就是代表天文朱利安日期,它是自4712年1月1日(公元前4713年)正午以来的天数。为了提高精度,该类存储的日期部分和秒数部分是分开的。并且为了算术安全和表示闰秒,该日期始终存储在国际原子时间标准中 (TimeStandard.TAI) 。而这其中的Julian可能我们会有些陌生,但是提起他的另一个名字“凯撒大帝”,我们应该就熟悉很多了,其有效的日期范围是从公元前4713年1月1日到公元9999年12月31日。

     二、JulianDate的使用

     1、构造形式

     new Cesium.JulianDate ( julianDayNumber , secondsOfDay , timeStandard )

     其中:julianDayNumber 是指整数天,因为是从公元前4713年开始计数的,所以这个数可能会很大;secondsOfDay 是指这一天过了多少秒;timeStandard则是指所用时间的标准,Cesium中主要有两种 Cesium.TimeStandard.TAI(国际原子时间标准)和Cesium.TimeStandard.UTC(协调世界时时间标准,这和JS中的时间标准是一样的)。

     2、简单使用

     创建JulianDate对象:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">  

<title>日期对象</title> 

<script src="../js/jquery.min.js"></script> 

<script src="../js/Sandcastle-header.js"></script> 

<script src="../js/config.js"></script>

<script type="text/javascript" src="../Build/Cesium/Cesium.js"></script>

</head>

<body>   

<script>   

var current=Cesium.JulianDate.now(new Date());       

 //var current=Cesium.JulianDate.fromDate(new Date());         //获取当前时间,由js中的UTC标准转换为TAI标准 

console.log(current.dayNumber,current.secondsOfDay); 

</script>

</body>

</html>

     添加时间:

var addDays= Cesium.JulianDate.addDays(current,1,new Cesium.JulianDate());

console.log("添加天数:",addDays.dayNumber,addDays.secondsOfDay);

var addHours= Cesium.JulianDate.addHours(current,1,new Cesium.JulianDate());

console.log("添加小时:",addHours.dayNumber,addHours.secondsOfDay);

var addSeconds= Cesium.JulianDate.addSeconds(current,1,new Cesium.JulianDate());

console.log("添加秒数:",addSeconds.dayNumber,addSeconds.secondsOfDay);

     其中,两个JulianDate类型的对象不能直接使用“-”符号进行相减,这一点不同于js中的Date对象。如果想要实现两个JulianDate类型相减,可以使用下面的函数:

var diffDays=Cesium.JulianDate.daysDifference (addDays, addHours);

console.log("相差天数:",diffDays);

var diffSeconds= Cesium.JulianDate.secondsDifference(addHours,addSeconds);

console.log("相差秒数:",diffSeconds);

     三、小结

     为什么要对JulianDate类型进行详细了解呢,这主要是因为之后的动态模型会经常的用到“时间”这一维的数据类型,这就要牵扯到Cesium中的property机制了。

     原文链接:https://blog.csdn.net/dayuhaitang1/article/details/107499742


上一篇:行云堡垒机初始信息

下一篇:没有了

相关文章

在线客服

外链咨询

扫码加我微信

微信:juxia_com

返回顶部