TimeInterval

由开始时间和停止时间定义的间隔;可以选择将这些时间作为间隔的一部分。可以选择将任意数据与用于TimeIntervalCollection的每个实例关联。
new TimeInterval(options)
Parameters:
options (Object)
Name Description
options.start
JulianDate
default new JulianDate()
间隔的开始时间。
options.stop
JulianDate
default new JulianDate()
间隔的停止时间。
options.isStartIncluded
Boolean
default true
true如果间隔中包含options.start,则false否则。
options.isStopIncluded
Boolean
default true
true如果间隔中包含options.stop,则false否则。
options.data
Object
与此间隔关联的任意数据。
Examples
// Create an instance that spans August 1st, 1980 and is associated
// with a Cartesian position.
var timeInterval = new bmgl.TimeInterval({
    start : bmgl.JulianDate.fromIso8601('1980-08-01T00:00:00Z'),
    stop : bmgl.JulianDate.fromIso8601('1980-08-02T00:00:00Z'),
    isStartIncluded : true,
    isStopIncluded : false,
    data : bmgl.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 = bmgl.TimeInterval.fromIso8601({
    iso8601 : '2000/2010',
    data : 2
});

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

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

Members

(static, constant) EMPTY : TimeInterval

不可变的空间隔。

data : *

获取或设置与此间隔关联的数据。

(readonly) isEmpty : Boolean

获取此间隔是否为空。

isStartIncluded : Boolean

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

isStopIncluded : Boolean

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

start : JulianDate

获取或设置此间隔的开始时间。

stop : JulianDate

获取或设置此间隔的停止时间。

Methods

(static) clone(timeInterval, result) → {TimeInterval}
复制提供的实例。
Parameters:
timeInterval (TimeInterval) 要克隆的实例。
result (TimeInterval) 要用于结果的现有实例。
(static) contains(timeInterval, julianDate) → {Boolean}
检查指定的日期是否在提供的间隔内。
Parameters:
timeInterval (TimeInterval) 间隔时间。
julianDate (JulianDate) 要检查的日期。
(static) equals(left, right, dataComparer) → {Boolean}
比较两个实例,如果它们相等,则返回true,否则返回false
Parameters:
left (TimeInterval) 第一个实例。
right (TimeInterval) 第二个实例。
dataComparer (TimeInterval~DataComparer) 比较两个间隔的数据的函数。如果省略,则使用引用等式。
(static) equalsEpsilon(left, right, epsilon, dataComparer) → {Boolean}
比较两个实例并返回true如果它们彼此在epsilon秒内。也就是说,为了将日期视为相等(并且此函数返回true),它们之间的差的绝对值(以秒为单位)必须小于epsilon
Parameters:
left (TimeInterval) 第一个实例。
right (TimeInterval) 第二个实例。
epsilon (Number) 分隔两个实例的最大秒数。
dataComparer (TimeInterval~DataComparer) 比较两个间隔的数据的函数。如果省略,则使用引用等式。
(static) fromIso8601(options, result) → {TimeInterval}
ISO 8601间隔创建新实例。
Parameters:
options (Object)
Name Description
options.iso8601
String
ISO 8601间隔。
options.isStartIncluded
Boolean
default true
true如果间隔中包含options.start,则false否则。
options.isStopIncluded
Boolean
default true
true如果间隔中包含options.stop,则false否则。
options.data
Object
与此间隔关联的任意数据。
result (TimeInterval) 要用于结果的现有实例。
Throws
  • developerError if options.iso8601与正确的格式不匹配。
(static) intersect(left, right, result, mergeCallback) → {TimeInterval}
计算两个间隔的交集,可以选择合并它们的数据。
Parameters:
left (TimeInterval) 第一个间隔。
right (TimeInterval) 第二个间隔。
result (TimeInterval) 要用于结果的现有实例。
mergeCallback (TimeInterval~MergeCallback) 合并两个区间的数据的函数。如果省略,将使用左间隔中的数据。
(static) toIso8601(timeInterval, precision) → {String}
创建所提供间隔的ISO8601表示。
Parameters:
timeInterval (TimeInterval) 要转换的间隔。
precision (Number) 用于表示秒分量的小数位数。默认情况下,使用最精确的表示。
clone(result) → {TimeInterval}
复制此实例。
Parameters:
result (TimeInterval) 要用于结果的现有实例。
equals(right, dataComparer) → {Boolean}
将此实例与提供的实例组件进行比较,如果相等,则返回true,否则返回false
Parameters:
right (TimeInterval) 右侧间隔。
dataComparer (TimeInterval~DataComparer) 比较两个间隔的数据的函数。如果省略,则使用引用等式。
equalsEpsilon(right, epsilon, dataComparer) → {Boolean}
将此实例与提供的实例组件进行比较,如果它们在提供的epsilon中,则返回true,否则返回false
Parameters:
right (TimeInterval) 右侧间隔。
epsilon (Number) 用于相等性测试的epsilon。
dataComparer (TimeInterval~DataComparer) 比较两个间隔的数据的函数。如果省略,则使用引用等式。
toString() → {String}
以ISO8601格式创建表示此时间间隔的字符串。

Type Definitions

DataComparer(leftData, rightData) → {Boolean}
用于比较间隔数据的函数接口。
Parameters:
leftData (*) 第一个数据实例。
rightData (*) 第二个数据实例。
MergeCallback(leftData, rightData) → {*}
用于合并间隔数据的函数接口。
Parameters:
leftData (*) 第一个数据实例。
rightData (*) 第二个数据实例。