如何在铯中创建尾随路径?

时间:2017-11-10 16:17:42

标签: cesium

我想在广告牌实体的移动背后留下一条橙色的尾随路径。我在语法上控制它的运动(它来自一个实时远程传感器)。符号的实际SVG / Canvas来自:https://github.com/spatialillusions/milsymbol

但关键是我在如何设置实体的PATH属性方面明显出错。我没有看到尾随或领先的路径。我做错了什么?

    makeGlyph(sprite) {
    let milSym = milSymbols[sprite.type]
    if (milSym === undefined) milSym = milSymbols["UFO"]
    sprite.mps = 0
    sprite.symbol = milSym
    let sym2 = new ms.Symbol(milSym, { size: 26, type: sprite.marking, speed: sprite.mps + ' mps', direction: sprite.heading, infoColor: "red" })
    let glyph = new Cesium.Entity({
        name: sprite.marking,
        id: sprite.id,
        position: Cesium.Cartesian3.fromDegrees(sprite.lon, sprite.lat, sprite.altitude),
        billboard: {
            image: sym2.asCanvas(), //Get the canvas for the billboard
            // heightReference : Cesium.HeightReference.CLAMP_TO_GROUND,
            pixelOffset: new Cesium.Cartesian2(-sym2.markerAnchor.x, -sym2.markerAnchor.y), // Symbol offset
            eyeOffset: new Cesium.Cartesian3(0.0, 0.0, 0.0), // default
            horizontalOrigin: Cesium.HorizontalOrigin.LEFT, // default
            verticalOrigin: Cesium.VerticalOrigin.TOP
        },
        path: {
            leadTime: 100,
            trailTime: 100,
            width: 1,
            material: new Cesium.ColorMaterialProperty({
                color : Cesium.Color.ORANGE,
            })
        },
        label: {
            text: sprite.marking,
            font: '14pt monospace',
            style: Cesium.LabelStyle.FILL_AND_OUTLINE,
            outlineWidth: 1,
            verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
            pixelOffset: new Cesium.Cartesian2(0, -20)
        }
    })
    sprite.glyph = glyph
    this.infoBox(sprite)
    this.viewer.entities.add(glyph)
}
updateGlyph(sprite) {
    this.viewer.entities.suspendEvents()
    let loc = Cesium.Cartesian3.fromDegrees(sprite.lon, sprite.lat, sprite.altitude)
    sprite.mps = sprite.speed[0] + sprite.speed[1] + sprite.speed[2]
    sprite.glyph.position = loc;
    this.infoBox(sprite)
    this.viewer.entities.resumeEvents()
}

0 个答案:

没有答案