轨迹线图层
Name | Type | Default | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
{}
|
optional
参数选项:
|
Examples:
let data = [
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[114.20089, 30.77664, 15], [114.20089, 30.77664, 289.56], [114.19276, 30.76836, 480.06]
]
},
"properties": {
OID: 1, //必填
color: "rgb(0, 255, 255)", //可缺省
duration: 5545, //可缺省
startTime: 1593950758000 //可缺省
}
},
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[114.21236, 30.78822, 22.86], [114.21451, 30.79028, 243.84], [114.21451, 30.79028, 281.94]
]
},
"properties": {
OID: 2,
color: "rgb(0, 255, 0)",
duration: 3899,
startTime: 1603866190000
}
},
...
];
let geoLineTripEffectLayer = new Cesium.GeoLineTripEffectLayer({
effectType: 'glow',
width: 10,
startTimeMapField: 'startTime',
durationMapField: 'duration',
colorMapField: 'color'
uniqueIdentifierMapField: 'OID'
});
geoLineTripEffectLayer.setData(data);
// 贴地轨迹
// 构造数据
let data = [
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[114.21236, 30.78822, 22.86], [114.21451, 30.79028, 243.84], [114.21451, 30.79028, 281.94]
]
},
"properties": {
OID: 1, //必填
color: "rgb(0, 255, 0)",
startTime: 1603866190000
}
}
];
// 添加汽车模型
let entity = viewer.entities.add({
model: {
uri: '/geomap-api/JsCesuimDemo/resource/models/CesiumMilkTruck/CesiumMilkTruck.glb',
minimumPixelSize: 64,
}
});
let geoLineTripEffectLayer = new Cesium.GeoLineTripEffectLayer({
effectType: 'solid',
width: 2,
uniqueIdentifierMapField: 'OID',
color: new Cesium.Color(0.0, 1.0, 1.0), // 线数据里面的属性优先级更高
samplePositionEnabled: true, // 开启采样
objectsToExclude: entity, // 采样时不采样汽车
});
Demo:
Extends
Members
轨迹线运行结束回调,每条轨迹线结束时都会触发回调,参数是对应的轨迹的要素
Example:
function appendDataFunc(feature) {
let data = [
{
type: "Feature",
geometry: {
type: "LineString",
coordinates: [
[114.30322150526807, 30.545919790841396],[114.32871070512215, 30.555526174411533]
]
},
properties: {
OID: 0
}
}
];
// 在OID为0的轨迹线后面追加数据
geoLineTripEffectLayer.appendData({data: data});
// 移除事件监听
geoLineTripEffectLayer.onTripCompleted.removeEventListener(appendDataFunc);
}
geoLineTripEffectLayer.onTripCompleted.addEventListener(appendDataFunc);
轨迹运行到节点时触发的回调,参数为1.当前节点在轨迹中的索引2.当前时间3.当前轨迹的要素
Example:
geoLineTripEffectLayer.onTripNodeChanged.addEventListener((nodeIndex, currentTime, feature) => {
});
轨迹运动中事件。回调函数有形参四个,第一个参数是当前轨迹的feature,第二个参数为轨迹运动中的坐标,第三个是轨迹运动中的方位角,第四个参数是轨迹运动的当前时间。
Methods
绑定到三维地图
Name | Type | Description |
---|---|---|
map |
viewer |
- Inherited From:
追加数据。在追加的数据中如果与现有数据中存在OID相同的数据,则在此轨迹线后面添加数据(可以是点数据或线数据);
如果不存在OID相同的数据,则新增轨迹线。
Name | Type | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
追加的数据说明:
|
Example:
let duration = 10;
let data = [
{
type: 'Feature',
geometry: {
type: 'LineString', //可以在已有轨迹后面追加一条线
coordinates: []
},
properties: {
'OID': 1,
'duration': 10 // 可不设置,如果不设置则程序自动计算时间。如果该条轨迹线已经存在,则更新该轨迹线,此时需要更新duration,需计算追加数据的最后一个节点到当前轨迹的第一个节点之间的时间间隔。
}
},
{
type: 'Feature',
geometry: {
type: 'Point', //可以在已有轨迹后面追加一个点
coordinates: []
},
properties: {
'OID': 2,
}
},
{
type: 'Feature',
geometry: {
type: 'LineString', //可以新增轨迹线
coordinates: []
},
properties: {
'OID': 3,
'duration': 20 // 可不设置,如果不设置则程序自动计算时间。如果该条轨迹线不存在,则依据此要素添加一条轨迹线。
}
}
];
geoLineTripEffectLayer.appendData({
data: data,
duration: duration //可以不设置,如果不设置,则程序自动计算。其中duration的优先级是属性里面durationMapField对应的值优先级最高。
});
继续飞行,可指定轨迹id,若不指定,则对所有轨迹起作用
Name | Type | Description |
---|---|---|
id |
String | Number | 轨迹id |
销毁图层对象
- Inherited From:
获取图层数据
- Inherited From:
根据id获取对应的数据
Name | Type | Description |
---|---|---|
id |
String | Number | 轨迹id |
Returns:
线要素或者点要素数组
获取数据源
- Inherited From:
获得指定轨迹的速度。
Name | Type | Description |
---|---|---|
id |
String | Number | 轨迹线id(唯一标识)。 |
Returns:
speed 指定轨迹线的速度。
隐藏轨迹,可以指定轨迹id,若不指定,则对所有轨迹起作用
Name | Type | Description |
---|---|---|
id |
String | Number | 轨迹id |
暂停飞行,可指定轨迹id,若不指定,则对所有轨迹起作用
Name | Type | Description |
---|---|---|
id |
String | Number | 轨迹id |
拾取图层中的要素
Name | Type | Description |
---|---|---|
pickedFeatures |
Array | 场景中被拾取的对象集合,需要在图层自己内部判断识别出属于自己的,并挂接上图层的属性信息 |
windowPosition |
Cartesian2 | 画布的二维坐标 |
geographicPosition |
Object | 地理位置,{ lng: lng, lat: lat, height: height } |
eventType |
ScreenSpaceEventType | 事件类型 |
Returns:
返回固定形态的结构数据
- Inherited From:
Example:
//返回结构参考样例
{
houseCode: fwCode,
floorCode: floor,
eventType: ScreenSpaceEventType.LEFT_CLICK,
originalLayer: geoSingleBuildingLayer
param:{
info: pickedFeature,
pickedInfos: pickedFeatureList
}
}
开始飞行,可以指定轨迹的id,可以指定飞行的起止节点。若不指定id,则所有轨迹开始飞行;若不指定起止点,则默认从头飞到尾。
Name | Type | Description |
---|---|---|
id |
String | Number | 轨迹id |
startIndex |
Number | 指定飞行的起始节点 |
endIndex |
Number | 指定飞行的终止节点 |
Example:
geoLineTripEffectLayer.play(0, 2, 5);
清空图层中图元
- Inherited From:
移除数据源
- Inherited From:
渲染
- Inherited From:
设置图层数据
Name | Type | Description |
---|---|---|
data |
Array | geojson线要素数组 或 geojson点要素数组的数组,每个点要素的数组代表一条轨迹 |
Examples:
// 线要素数组,实现轨迹的概略显示
let data = [
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[114.20089, 30.77664, 15], [114.20089, 30.77664, 289.56], [114.19276, 30.76836, 480.06]
]
},
"properties": {
OID: 1, //必填
color: "rgb(0, 255, 255)", //可缺省
duration: 5545, //可缺省
startTime: 1593950758000 //可缺省
}
},
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[114.21236, 30.78822, 22.86], [114.21451, 30.79028, 243.84], [114.21451, 30.79028, 281.94]
]
},
"properties": {
OID: 2,
color: "rgb(0, 255, 0)",
duration: 3899,
startTime: 1603866190000
}
},
...
];
// 点要素的数组的数组,实现轨迹的精确控制
let data = [
[
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [116.59553, 40.0846, 45.72]
},
"properties": {
"OID": 1, //必填
"updateTime": 1606098257000 //若该属性缺省,则本质上与线要素数组类型的数据等同
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [116.59479, 40.08902, 213.36]
},
"properties": {
"OID": 1,
"updateTime": 1606098272000,
}
},
...
],
[
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [114.21618, 30.79143, 160.02]
},
"properties": {
"OID": 2,
"updateTime": 1603786626000
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [114.21618, 30.79143, 259.08]
},
"properties": {
"OID": 2,
"updateTime": 1603786636000
}
},
...
],
...
];
设置数据源
Name | Type | Description |
---|---|---|
dataSource |
GeoDataSource |
- Inherited From:
设置轨迹线的速度。如果指定了id,则对指定id的轨迹线设置速度;如果不指定id,则对所有轨迹线设置速度。
Name | Type | Description |
---|---|---|
id |
String | Number | 轨迹线id(唯一标识)。 |
speed |
Number | 轨迹对应的速度值,单位(m/s)。 |
Examples:
geoLineTripEffectLayer.setSpeed(0, 300); //对id为0的轨迹线设置速度,设置为300m/s。
geoLineTripEffectLayer.setSpeed(null, 300); //对所有轨迹线设置速度,设置为300m/s。
显示轨迹,可以指定轨迹id,若不指定,则对所有轨迹起作用
Name | Type | Description |
---|---|---|
id |
String | Number | 轨迹id |
停止飞行,可指定轨迹id,若不指定,则对所有轨迹起作用
Name | Type | Description |
---|---|---|
id |
String | Number | 轨迹id |