TimeInterval

new LSGlobe.TimeInterval ( options )

由开始和停止时间定义的时间间隔; (可选)将这些时间包括在间隔中。可选地,可以将任意数据与每个实例关联,以便与 TimeIntervalCollection 一起使用。
Name Type Description
options Object 可选 具有以下属性的对象:
名称 类型 默认 说明
开始 JulianDate 新JulianDate() 可选 时间间隔的开始时间。
stop JulianDate 新JulianDate() 可选 时间间隔的停止时间。
isStartIncluded 布尔值 真 可选 如果间隔中包含 options.start ,则为 true ,否则为 false 。
isStopIncluded 布尔值 真 可选 如果间隔中包含 options.stop ,则为 true ,否则为 false 。
数据 对象 可选 与该时间间隔相关的任意数据。
Examples:
// Create an instance that spans August 1st, 1980 and is associated
// with a Cartesian position.
var timeInterval = new LSGlobe.TimeInterval({
    start : LSGlobe.JulianDate.fromIso8601('1980-08-01T00:00:00Z'),
    stop : LSGlobe.JulianDate.fromIso8601('1980-08-02T00:00:00Z'),
    isStartIncluded : true,
    isStopIncluded : false,
    data : LSGlobe.Cartesian3.fromDegrees(39.921037, -75.170082)
});
// Create two instances from ISO 8601 intervals with associated numeric data
// then compute their intersection, summing the data they contain.
var left = LSGlobe.TimeInterval.fromIso8601({
    iso8601 : '2000/2010',
    data : 2
});

var right = LSGlobe.TimeInterval.fromIso8601({
    iso8601 : '1995/2005',
    data : 3
});

//The result of the below intersection will be an interval equivalent to
//var intersection = LSGlobe.TimeInterval.fromIso8601({
//  iso8601 : '2000/2005',
//  data : 5
//});
var intersection = new LSGlobe.TimeInterval();
LSGlobe.TimeInterval.intersect(left, right, intersection, function(leftData, rightData) {
    return leftData + rightData;
});
// Check if an interval contains a specific time.
var dateToCheck = LSGlobe.JulianDate.fromIso8601('1982-09-08T11:30:00Z');
var containsDate = LSGlobe.TimeInterval.contains(timeInterval, dateToCheck);

Members

static constant LSGlobe.TimeInterval.EMPTY : TimeInterval

一个不变的空间隔。
获取或设置与此时间间隔关联的数据。

readonly isEmpty : Boolean

获取此时间间隔是否为空。

isStartIncluded : Boolean

获取或设置此时间间隔中是否包括开始时间。
Default Value: true

isStopIncluded : Boolean

获取或设置此时间间隔中是否包括停止时间。
Default Value: true
获取或设置此间隔的开始时间。
获取或设置此间隔的停止时间。

Methods

static LSGlobe.TimeInterval.clone ( timeInterval , result ) → TimeInterval

复制提供的实例。
Name Type Description
timeInterval TimeInterval 可选 要克隆的实例。
result TimeInterval 可选 用于结果的现有实例。
Returns:
修改后的结果参数或新实例(如果未提供)。

static LSGlobe.TimeInterval.contains (timeInterval, julianDate) → Boolean

检查指定的日期是否在提供的间隔内。
Name Type Description
timeInterval TimeInterval 时间间隔。
julianDate JulianDate 检查日期。
Returns:
真正 如果间隔包含指定的日期, 假 除此以外。

static LSGlobe.TimeInterval.equals ( left , right , dataComparer ) → Boolean

比较两个实例,如果相等则返回 true ,否则返回 false 。
Name Type Description
left TimeInterval 可选 一审。
right TimeInterval 可选 第二个实例。
dataComparer TimeInterval.DataComparer 可选 比较两个间隔的数据的功能。如果省略,则使用引用相等。
Returns:
真正 如果日期相等;除此以外, 假 。

static LSGlobe.TimeInterval.equalsEpsilon ( left , right , epsilon , dataComparer ) → Boolean

比较两个实例,如果它们在 epsilon 秒内,则返回 true 彼此。也就是说,为了使日期被认为相等(并且对于此函数返回 true ),它们之间的差的绝对值,在秒,必须小于 epsilon 。
Name Type Default Description
left TimeInterval 可选 一审。
right TimeInterval 可选 第二个实例。
epsilon Number 0 可选 应该将两个实例分开的最大秒数。
dataComparer TimeInterval.DataComparer 可选 比较两个间隔的数据的功能。如果省略,则使用引用相等。
Returns:
真正 如果两个日期都在 ε 彼此的秒数;除此以外 假 。

static LSGlobe.TimeInterval.fromIso8601 (options, result ) → TimeInterval

从 ISO 8601 间隔创建一个新实例。
Name Type Description
options Object 具有以下属性的对象:
名称 类型 默认 说明
iso8601 字符串 一个ISO 8601间隔。
isStartIncluded 布尔值 真 可选 如果间隔中包含 options.start ,则为 true ,否则为 false 。
isStopIncluded 布尔值 真 可选 如果间隔中包含 options.stop ,则为 true ,否则为 false 。
数据 对象 可选 与该时间间隔相关的任意数据。
result TimeInterval 可选 用于结果的现有实例。
Returns:
修改后的结果参数或新实例(如果未提供)。
Throws:
  • 如果options.iso8601与正确的格式不匹配,则发生DeveloperError。

static LSGlobe.TimeInterval.intersect (left, right , result , mergeCallback ) → TimeInterval

计算两个间隔的交点,可以选择合并它们的数据。
Name Type Description
left TimeInterval 第一个间隔。
right TimeInterval 可选 第二个间隔。
result TimeInterval 可选 用于结果的现有实例。
mergeCallback TimeInterval.MergeCallback 可选 合并两个间隔数据的功能。如果省略,将使用左间隔的数据。
Returns:
修改后的结果参数。

static LSGlobe.TimeInterval.toIso8601 (timeInterval, precision ) → String

创建提供的间隔的ISO8601表示形式。
Name Type Description
timeInterval TimeInterval 要转换的间隔。
precision Number 可选 用于表示秒分量的小数位数。默认情况下,使用最精确的表示形式。
Returns:
提供的间隔的ISO8601表示形式。
复制此实例。
Name Type Description
result TimeInterval 可选 用于结果的现有实例。
Returns:
修改后的结果参数或新实例(如果未提供)。

equals ( right , dataComparer ) → Boolean

将此实例与提供的实例进行组件比较,然后返回如果相等,则为 true ,否则为 false 。
Name Type Description
right TimeInterval 可选 右侧间隔。
dataComparer TimeInterval.DataComparer 可选 比较两个间隔的数据的功能。如果省略,则使用引用相等。
Returns:
真正 如果相等, 假 除此以外。

equalsEpsilon ( right , epsilon , dataComparer ) → Boolean

将此实例与提供的实例进行组件比较,然后返回 true (如果它们在提供的epsilon内),否则为 false 。
Name Type Default Description
right TimeInterval 可选 右侧间隔。
epsilon Number 0 可选 用于相等性测试的epsilon。
dataComparer TimeInterval.DataComparer 可选 比较两个间隔的数据的功能。如果省略,则使用引用相等。
Returns:
真正 如果它们在提供的epsilon中, 假 除此以外。

toString () → String

创建一个以ISO8601格式表示此TimeInterval的字符串。
Returns:
以ISO8601格式表示此TimeInterval的字符串。

Type Definitions

LSGlobe.TimeInterval.DataComparer (leftData, rightData) → Boolean

比较间隔数据的功能接口。
Name Type Description
leftData * 第一个数据实例。
rightData * 第二个数据实例。
Returns:
真正 如果提供的实例相等, 假 除此以外。

LSGlobe.TimeInterval.MergeCallback (leftData, rightData) → *

合并间隔数据的功能接口。
Name Type Description
leftData * 第一个数据实例。
rightData * 第二个数据实例。
Returns:
合并两个数据实例的结果。