如何在 CesiumJS 中的两个实体之间创建一条移动线?
How can I create a moving line between two entities in CesiumJS?
我的页面上有两个实体;一颗卫星及其 "ground position",两者都在铯中随着时间的推移而移动。我想用一条直线将两者连接起来。
如果您使用的是 CZML 文件,CZML Showcase 似乎展示了类似的功能,但我想知道如何在代码中执行此操作。他们的演示包含卫星和地面位置之间的几条线,事实上他们更进一步,只显示不与地球相交的线(如果两个实体之间存在视线)。我不需要那么花哨的东西。
有没有这方面的好例子,或者有人可以指点我的文档?谢谢!
这是通过添加 PolylineGraphics to one of your entities. Make sure to set "followSurface": false
for this, since you don't want the line to bend with the curvature of the Earth. The options here are similar to what you see in simple.czml 来完成的,除非您不需要可见性间隔列表,并且可以在此处简单地设置 "show": true
。
弄清楚了:@emackey 通过将我指向 this section of simple.czml 让我走上了正确的轨道。我在从 CZML 翻译成 javascript 时遇到困难的部分是动态指定行的开始和结束位置的部分:
"positions":{
"references":[
"Facility/AGI#position","Satellite/ISS#position"
]
}
原来我需要的 类 是 PositionPropertyArray and ReferenceProperty。有了这两个,我可以像这样向我的任何一个实体添加一条动态线:
var groundTrackEntity = cesiumViewer.entities.add({
id: "groundTrackEntity",
position: groundTrackPosition,
point: /* ... */,
path: /* ... */,
polyline: {
followSurface: false,
positions: new Cesium.PositionPropertyArray([
new Cesium.ReferenceProperty(
cesiumViewer.entities,
'orbitEntity',
[ 'position' ]
),
new Cesium.ReferenceProperty(
cesiumViewer.entities,
'groundTrackEntity',
[ 'position' ]
)
]),
material: new Cesium.ColorMaterialProperty(
Cesium.Color.YELLOW.withAlpha( 0.25 )
)
}
});
我的页面上有两个实体;一颗卫星及其 "ground position",两者都在铯中随着时间的推移而移动。我想用一条直线将两者连接起来。
如果您使用的是 CZML 文件,CZML Showcase 似乎展示了类似的功能,但我想知道如何在代码中执行此操作。他们的演示包含卫星和地面位置之间的几条线,事实上他们更进一步,只显示不与地球相交的线(如果两个实体之间存在视线)。我不需要那么花哨的东西。
有没有这方面的好例子,或者有人可以指点我的文档?谢谢!
这是通过添加 PolylineGraphics to one of your entities. Make sure to set "followSurface": false
for this, since you don't want the line to bend with the curvature of the Earth. The options here are similar to what you see in simple.czml 来完成的,除非您不需要可见性间隔列表,并且可以在此处简单地设置 "show": true
。
弄清楚了:@emackey 通过将我指向 this section of simple.czml 让我走上了正确的轨道。我在从 CZML 翻译成 javascript 时遇到困难的部分是动态指定行的开始和结束位置的部分:
"positions":{
"references":[
"Facility/AGI#position","Satellite/ISS#position"
]
}
原来我需要的 类 是 PositionPropertyArray and ReferenceProperty。有了这两个,我可以像这样向我的任何一个实体添加一条动态线:
var groundTrackEntity = cesiumViewer.entities.add({
id: "groundTrackEntity",
position: groundTrackPosition,
point: /* ... */,
path: /* ... */,
polyline: {
followSurface: false,
positions: new Cesium.PositionPropertyArray([
new Cesium.ReferenceProperty(
cesiumViewer.entities,
'orbitEntity',
[ 'position' ]
),
new Cesium.ReferenceProperty(
cesiumViewer.entities,
'groundTrackEntity',
[ 'position' ]
)
]),
material: new Cesium.ColorMaterialProperty(
Cesium.Color.YELLOW.withAlpha( 0.25 )
)
}
});