由開始時間和停止時間定義的間隔;可以選擇將這些時間作為間隔的一部分。可以選擇將任意數據與用于
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
(*)
第二個數據實例。