由开始时间和停止时间定义的间隔;可以选择将这些时间作为间隔的一部分。可以选择将任意数据与用于
new TimeInterval(options)
TimeIntervalCollection
的每个实例关联。
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:
检查指定的日期是否在提供的间隔内。
Parameters:
比较两个实例,如果它们相等,则返回
true
,否则返回false
。
Parameters:
比较两个实例并返回
true
如果它们彼此在epsilon
秒内。也就是说,为了将日期视为相等(并且此函数返回true
),它们之间的差的绝对值(以秒为单位)必须小于epsilon
。
Parameters:
epsilon
(Number)
分隔两个实例的最大秒数。
从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
|
与此间隔关联的任意数据。 |
Throws
-
developerError if options.iso8601与正确的格式不匹配。
计算两个间隔的交集,可以选择合并它们的数据。
Parameters:
创建所提供间隔的ISO8601表示。
Parameters:
precision
(Number)
用于表示秒分量的小数位数。默认情况下,使用最精确的表示。
复制此实例。
Parameters:
将此实例与提供的实例组件进行比较,如果相等,则返回
true
,否则返回false
。
Parameters:
将此实例与提供的实例组件进行比较,如果它们在提供的epsilon中,则返回
true
,否则返回false
。
Parameters:
epsilon
(Number)
用于相等性测试的epsilon。
以ISO8601格式创建表示此时间间隔的字符串。
Type Definitions
DataComparer(leftData, rightData) → {Boolean}
用于比较间隔数据的函数接口。
Parameters:
leftData
(*)
第一个数据实例。
rightData
(*)
第二个数据实例。
用于合并间隔数据的函数接口。
Parameters:
leftData
(*)
第一个数据实例。
rightData
(*)
第二个数据实例。