【问题标题】:How can I create a moving line between two entities in CesiumJS?如何在 CesiumJS 中的两个实体之间创建一条移动线?
【发布时间】:2015-11-10 19:19:12
【问题描述】:

我的页面上有两个实体;一颗卫星及其“地面位置”,两者都随着时间的推移在铯中移动。我想用一条随它们移动的直线将两者连接起来。

如果您使用的是 CZML 文件,CZML Showcase 似乎展示了类似的功能,但我想知道如何在代码中执行此操作。他们的演示包含卫星和地面位置之间的几条线,实际上他们更进一步,只显示不与地球相交的线(如果两个实体之间存在视线)。我不需要那么花哨的东西。

有什么好的例子,或者有人可以指出我的文档吗?谢谢!

【问题讨论】:

    标签: cesium czml


    【解决方案1】:

    想通了:@emackey 通过将我指向this section of simple.czml 让我走上了正轨。我在从 CZML 转换为 javascript 时遇到问题的部分是动态指定行的开始和结束位置的部分:

    "positions":{
      "references":[
        "Facility/AGI#position","Satellite/ISS#position"
      ]
    }
    

    原来我需要的课程是PositionPropertyArrayReferenceProperty。有了这两个,我可以像这样向我的任何一个实体添加一条动态线:

    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 )
            )
        }
    });
    

    【讨论】:

    • 干得好!我想你可以在这里接受你自己的答案。
    • 我必须再等一天才能接受我自己的答案。不过,您的绝对是让我朝着正确方向前进的关键,非常感谢!
    【解决方案2】:

    这是通过将PolylineGraphics 添加到您的一个实体来完成的。确保为此设置"followSurface": false,因为您不希望线条随着地球的曲率而弯曲。此处的选项与您在simple.czml 中看到的类似,不同之处在于您不需要可见区间列表,只需在此处设置"show": true

    【讨论】:

    • 我一直在修修补补,我坚持的是如何翻译 "positions": { "references": [ ... ] } here。我最好的猜测是它以某种方式涉及ReferenceProperty,但这似乎跟踪单个属性,我需要跟踪 2(两个实体的位置属性)
    猜你喜欢
    • 1970-01-01
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 1970-01-01
    相关资源
    最近更新 更多