cesium动画实现语言CZML的最小单元中文翻译--packet

25 篇文章 2 订阅

下面记录一下我对packet的翻译笔记:

 

    packet

本页记录了CZML文件或数据流可能包含的内容。如果想了解CZML文件是如何组装在一起的,请阅读CZML结构的介绍。

packet描述了场景中某一个对象的各种属性,例如一架飞机。pocket数据包如下:

 

{
    "id": "Facility/AGI",
    "name": "AGI",
    "availability": "2012-03-15T10:00:00Z/2012-03-16T10:00:00Z",
    "description": "<p>Analytical Graphics, Inc. (AGI) develops commercial modeling and analysis software.</p>",
    "billboard": {
        "eyeOffset": {
            "cartesian": [ 0, 0, 0 ]
        },
        "horizontalOrigin": "CENTER",
        "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACvSURBVDhPrZDRDcMgDAU9GqN0lIzijw6SUbJJygUeNQgSqepJTyHG91LVVpwDdfxM3T9TSl1EXZvDwii471fivK73cBFFQNTT/d2KoGpfGOpSIkhUpgUMxq9DFEsWv4IXhlyCnhBFnZcFEEuYqbiUlNwWgMTdrZ3JbQFoEVG53rd8ztG9aPJMnBUQf/VFraBJeWnLS0RfjbKyLJA8FkT5seDYS1Qwyv8t0B/5C2ZmH2/eTGNNBgMmAAAAAElFTkSuQmCC",
        "pixelOffset": {
            "cartesian2": [ 0, 0 ]
        },
        "scale": 1.5,
        "show": true,
        "verticalOrigin": "CENTER"
    },
    "label": {
        "fillColor": {
            "rgba": [ 0, 255, 255, 255 ]
        },
        "font": "11pt Lucida Console",
        "horizontalOrigin": "LEFT",
        "outlineColor": {
            "rgba": [ 0, 0, 0, 255 ]
        },
        "outlineWidth": 2,
        "pixelOffset": {
            "cartesian2": [ 12, 0 ]
        },
        "show": true,
        "style": "FILL_AND_OUTLINE",
        "text": "AGI",
        "verticalOrigin": "CENTER"
    },
    "position": {
        "cartesian": [ 1216469.9357990976, -4736121.71856379, 4081386.8856866374 ]
    }
}

属性

 

 扩展:可插值的属性(InterpolatableProperty,不可变);基本模式:属性值可以通过对提供时间标记的样本进行插值来确定。

                                   epoch - string

                                    epoch用以表示从一个指定时间增加指定秒数的时间。

                                    interpolationAlgorithm -string (默认值:LINEAR)

                                    插值时使用的插值算法。 有效值为“LINEAR”,“LAGRANGE”和“HERMITE”。

                                     interpolationDegree - number (默认值:1)

                                      插值时使用的插值等级。

                                      forwardExtrapolationType - string(默认值:none)

                                       在任何可用样本之后的某一时间请求该值时采用的外插法,有效值为“NONE”,“HOLD”和“EXTRAPOLATE”。

                                       forwardExtrapolationDuration - number(默认值:0.0)

                                        在属性变成未定义之前向前推断的时间,值0将永远推断。

                                        backwardExtrapolationType - string(默认值:NONE)

                                        在任何可用样本之前的某一时间请求该值时执行的外推类型。 有效值为“NONE”,“HOLD”和“EXTRAPOLATE”。

                                        backwardExtrapolationDuration - number(默认值:0.0)

                     在属性变得未定义之前向后推断的时间量。值0将永远推断。

 

id - string

 

上面的packet数据包中定义了对象的ID,ID无需定义为一个GUID号,但是在同一个CZML源文件以及者同一个场景中加载的所有CZML文件中,必须是唯一的。如果packet数据包中没有定义ID,客户端会自动为该对象产生一个唯一的ID,但是自动添加ID的情况下,不支持对象加载后的引用,例如为对象添加更多数据。

delete - Boolean

按照ID号进行区分,表明客户端是否需要算出该对象现存的所有数据。如果属性值为TRUE,pocket包中的其他属性将会被忽略。

即:该ID对应的对象,在场景中不会显示。

name - string

对象的名称,名称不必是唯一的,并且是为了用户使用而设计。

parent - string

父对象的ID,如果有的话。

description - string

对象的HTML描述。

clock - Clock

整个数据集时钟的设置,只对文档对象有效。

 

{
    "clock": {
        "interval": "2012-03-15T10:00:00Z/2012-03-16T10:00:00Z",
        "currentTime": "2012-03-15T10:00:00Z",
        "multiplier": 60,
        "range": "LOOP_STOP",
        "step": "SYSTEM_CLOCK_MULTIPLIER"
    }
}

 currentTime - Time

    当前时间

 multiplier - number(默认为1.0)

 

    乘数:step设置为TICK_DEPENDENT时,表示每个时钟刻度前进的秒数(使用中验证是每个tick前进的分钟数);

                    step设置为SYSTEM_CLOCK_DEPENDENT,表示乘以时钟刻度之间经过的系统时间(系统时间每个Tick应该是1秒);

             step设置为SYSTEM_CLOCK 时,忽略改值。

    range - ClockRange

            当前时间到达其开始或结束时间的行为。

有三个取值:UNBOUNDED 时钟将继续沿当前方向前进

                  CLAMPED  时钟将停止

                                     LOOP_STOP 当结束时间到达,并且是前进方向时,时钟将跳转到开始时间;

                                                            当结束时间到达,但是后退方向,时钟将停止。

    step - ClockStep(默认 SYSTEM_CLOCK_MULTIPLIER

   规定 当前时间每个刻度前进时间的模式

        三个取值:TICK_DEPENDENT 当前时间每个刻度前进 multiplier 个秒数(实际是分钟数,不知道原因);

                           SYSTEM_CLOCK_MULTIPLIER 当前时间每个刻度前进的时间 = 上一个刻度前进的系统时间量 * multiplier

              SYSTEM_CLOCK 时钟时钟设置为当前系统时间。

version  - string

CZML编写的版本号,仅在文档对象中有效。

availability - TimeIntervalCollection(默认值:0000-00-00T00:00:00Z/9999-12-31T24:00:00Z

一组对象的数据可用的时间间隔。该属性可以是指定单个时间间隔的单个字符串,也可以是代表时间间隔的字符串数组。如果更改或发现错误,稍后的Cesium数据包可以更新此可用性。例如,SGP4传播者最初可能会报告所有时间可用,但稍后传播器抛出异常,可以调整此时的可用性以结束。如果此可选属性未设置,则假定该对象始终可用。可用性范围限定于特定CZML流,因此两个不同的数据流可以为单个对象设置不同的可用性。在单个数据流中,为对象声明的最后一个可用性是有效的,并且之前数据包中的任何可用性都将被忽略。如果一个对象在某个时刻不可用,则客户端将不会绘制该对象。

properties  - CustomProperties

对象的自定义属性集。CustomProperties类型表示键值映射,其中值的类型为CustomProperty。

       CustomProperty类型:自定义属性(可变)

                属性:

                            boolean - BooleanValue

                            指定为布尔值的属性。

                             boundingRectangle - BoundingRectangleValue

                           指定为四个值[X,Y,宽度,高度]的远近标量值,如果数组有四个元素,则该值是常量。如果它具有五个或更多元素,则它们是时

                           间标记的样本,排列为[时间,X,Y,宽度,高度,时间,X,Y,宽度,高度,...],其中时间是ISO 8601格式的日期和时间的字

                           符串或 epoch指定时间以来的秒数。

                            边界矩形 例如:                           

 

            [
                0, 45, 90, 10, 10,
                300, 45, 90, 15, 10,
                600, 45, 90, 10, 14
             ]

                                cartesian - Cartesian3Value

                                该属性指定为三维笛卡尔值[X,Y,Z]。

                            三维笛卡尔值指定为[X,Y,Z]。 如果数组有三个元素,则该值是常量。 如果它具有四个或更多元素,则它们是时间标记 的 样 本,                             排列为[Time,X,Y,Z,Time,X,Y,Z,...],其中Time是ISO 8601标准的日期和时间字符串或自开epoch指定时间以来的秒数 。  

                                cartographicRadians - CartographicValue

                                 该属性指定为WGS84 制图坐标[Longitude, Latitude, Height],其中Longitude 和Latitude是度数。

                                cartesian2 - Cartesian2Value

                该属性被指定为二维笛卡尔值[X,Y]。

                spherical - SphericalValue

                                  该属性指定为球形值[Clock,Cone,Magnitude],角度以弧度表示;幅度以米为单位;时钟角度是在XY平面上从正X轴向正Y轴测                                    量的。 锥角是从正Z轴向负Z轴的角度。

                                    unitSpherical - UnitSphericalValue

                                    该属性指定为单位球形值[Clock,Cone]。测量方式同上。

                                    rgba - RgbaValue

                                    该属性为颜色数组[Red, Green, Blue, Alpha],其中每个成分为0-255的整数。Alpha为透明度。

                  rgbaf - RgbafValue

                                    该属性为颜色数组[Red, Green, Blue, Alpha],其中每个成分为0.0-1.0的双精度值。Alpha为透明度。

                  colorBlendMode - ColorBlendModeValue

                                    指定用于在目标颜色和实体的源颜色之间进行混合的不同模式。

                                            三种取值:HIGHLIGHT 将源颜色与目标颜色相乘

                                                                REPLACE 用目标颜色替换源颜色。

                                                                  MIX 将源颜色和目标颜色混合在一起。

                                    cornerType - CornerTypeValue

                                    拐角样式。

                                            三种取值:ROUNDED 拐角有一个光滑的边缘(圆角)。

                                                                MITERED 拐角是邻边的交点(直角)。

                                                              BEVELED 拐角斜面

                                    heightReference - HeightReferenceValue

                                      对象的高度参考,指示对象的位置是否相对于地形。  

                                            三种取值:NONE 绝对位置

                                                               CLAMP_TO_GROUND 该位置被固定在地形上。

                                                                 RELATIVE_TO_GROUND 位置高度是地形上方的高度

                                        horizontalOrigin - HorizontalOriginValue

                                        原点相对于物体位置的水平位置。

                                                    三种取值:LEFT 原点位于对象左侧

                                                                        CENTER 原点位于对象水平位置的中心

                                     RIGHT 原点位于对象右侧

                                           labelStyle - LabelStyleValue

                      标签格式。

                          三种取值:FILL 文字充满标签,没有边框

                                                                       OUTLINE 文字标签有边框,未充满

                                    ILL_AND_OUTLINE 文字充满标签且有边框

                      number - DoubleValue

                                            浮点数

                                            nearFarScalar - NearFarScalarValue(不知道有何作用)

                                            指定为四个值的近标量值[NearDistance, NearValue, FarDistance, FarValue]

                       unitQuaternion - UnitQuaternionValue

                                             该属性被指定为4维单位量级四元数,用于表示三维空间中的旋转动作的一组4维坐标,表示为[X,Y,Z,W]

                                 

 

[
    0, 0.45652188368372576, -0.049580035995243577, -0.8819344359461565, 0.10640131785324795,
    300, 0.309688526062018, -0.0592870464529779, -0.945283886004075, 0.0837641797515638,
    600, 0.15524757622990795, -0.06613430791377527, -0.9841132393764626, 0.05518673278488507
]

                                                shadowMode - ShadowModeValue

                                                该属性指定阴影模式。当启用阴影时是否投射或接收来自每个光源的阴影。

                                                       四种取值:DISABLED 该对象不会投射或接收阴影。

 

                                                                       ENABLED 该对象投射并且接收阴影。

                                     CAST_ONLY 该对象只能投射阴影。

                                                                           RECEIVE_ONLY 该对象只接收阴影。

                                                string - StringValue

                                                 字符串值

                                                stripeOrientation - StripeOrientationValue    

                                                 指定为条纹材质中条纹方向的属性。

                                                  wsen - CartographicRectangleValue

                                                指定为制图矩形[WestLongitude,SouthLatitude,EastLongitude,NorthLatitude]的属性,值以度为单位。指定一

                                                 个二维区域。

                                                    uri - UriValue

                                                       地址字符串。

                                                    verticalOrigin - VerticalOriginValue

                                                    原点相对于物体位置的垂直位置。

 

                                                            四种取值:BASELINE 如果对象包含文本,则原点位于文本的基线,否则原点位于对象的底部。

                                                                       BOTTOM 原点位于对象的底部。

                                     CENTER 原点是在基线和顶部之间的垂直中心。

                                                                           TOP 原点位于对象的顶部。

position - Position

物体在世界上的位置。 该位置没有直接的视觉表示,但是它用于定位附在该对象上的广告牌,标签和其他图形元素。

 

{
    "id": "InternationalSpaceStation",
    "position": {
        "interpolationAlgorithm": "LAGRANGE",
        "interpolationDegree": 5,
        "referenceFrame": "INERTIAL",
        "epoch": "2012-05-02T12:00:00Z",
        "cartesian": [
            0.0, -6668447.2211117, 1201886.45913705, 146789.427467256,
            60.0, -6711432.84684144, 919677.673492462, -214047.552431458,
            90.0, -6721319.92231553, 776899.784034099, -394198.837519575,
            150.0, -6717826.447064, 488820.628328182, -752924.980158179,
            180.0, -6704450.41462847, 343851.784836767, -931084.800346031,
            240.0, -6654518.44949696, 52891.726433174, -1283967.69137678
        ]
    }
}

     定义一个位置。 该位置可以随时间变化。

            属性:

                        referenceFrame - string(默认值:FIXED

                        指定笛卡尔位置的参考框架。 可能的值是“FIXED”和“INERTIAL”。

                         cartesian - Cartesian3Value

                          指定以三维笛卡尔值[X,Y,Z]表示的位置,相对于referenceFrame以米为单位。

                            

            [
                0, 4650397.56551457, -3390535.52275848, -4087729.48877329,
                300, 3169722.12564676, -2787480.80604407, -5661647.74541255,
                600, 1369743.14695017, -1903662.23809705, -6663952.07552171
            ]

 

                        cartographicRadians - CartographicValue

 

       WGS84制图坐标[Longitude, Latitude, Height]表示的位置,其中经度和纬度以弧度表示,高度单位为米。

      

        {
            "position": {
                "cartographicRadians": [ -1.3439035240356338, 0.6457718232379019, 100000 ]
                 }
        }

 

 

                    cartographicDegrees - CartographicValue

      WGS84制图坐标[Longitude, Latitude, Height]表示的位置,其中经度和纬度以度为单位,高度以米为单位。

 

        {
            "position": {
            "cartographicDegrees": [ -77, 37, 100000 ]
            }
        }

       cartesianVelocity - Cartesian3VelocityValue

       相对于参考框架的三维笛卡尔值及其导数[X,Y,Z,dX,dY,dZ]表示的位置和速度,单位为米。

       reference - ReferenceValue

                        指定为另一个属性的引用的位置。表示对另一个属性的引用。可以使用引用来指定不同对象上的两个属性实际                          上是同一个属性。                        

 

            "object1#billboard.scale"

 

orientation - Orientation

 

物体在世界中的方向。 方向没有直接的视觉表示,但它用于定位模型,锥体,金字塔和附加到该对象上的其他图形元素。方向是一个旋转,它将一个向量表达在对象的“主体”轴上,并将其转换为地球固定轴。

 

{
    "orientation": {
        "interpolationAlgorithm": "LINEAR",
        "interpolationDegree": 1,
        "epoch": "2012-03-15T10:00:00Z",
        "unitQuaternion": [
            0, 0.45652188368372576, -0.049580035995243577, -0.8819344359461565, 0.10640131785324795,
            300, 0.309688526062018, -0.0592870464529779, -0.945283886004075, 0.0837641797515638,
            600, 0.15524757622990795, -0.06613430791377527, -0.9841132393764626, 0.05518673278488507
        ]
    }
}

    属性:

      unitQuaternion - UnitQuaternionValue  

      指定为4维单位量值四元数的方向,表示为[X,Y,Z,W]。表示三维空间中物体的旋转。        

 

            [
                0, 0.45652188368372576, -0.049580035995243577, -0.8819344359461565, 0.10640131785324795,
                300, 0.309688526062018, -0.0592870464529779, -0.945283886004075, 0.0837641797515638,
                600, 0.15524757622990795, -0.06613430791377527, -0.9841132393764626, 0.05518673278488507
            ]

      reference - ReferenceValue

      指定为另一个属性的引用的位置。表示对另一个属性的引用。  

                    velocityReference - ReferenceValue

                     指定为位置属性的归一化速度矢量的方向。 参考必须是位置属性。        

viewFrom - ViewFrom

查看此对象时建议的相机位置。 该属性表示为相对于对象位置的East(x),North(y),Up(z)参考框架中的笛卡尔位置。

 

{
    "viewFrom": {
        "cartesian": [ 4.3, 0.1, 2.6 ]
    }
}

        属性:

                 cartesian - Cartesian3Value   

                  reference - ReferenceValue

billboard - Billboard

广告牌或视口对齐的图像,有时称为标记。 广告牌由position 属性定位在场景中。

box - Box

一个盒子,它是一个封闭的长方体。 该框使用position orientation 属性进行定位和定向。

corridor - Corridor

走廊,是由中心线和宽度定义的形状。

cylinder - Cylinder

由长度,顶部半径和底部半径限定的圆柱体,截头圆锥体或圆锥体。 柱体使用position orientation 属性进行定位和定位。

ellipse - Ellipse

椭圆是地球表面的闭合曲线。 椭圆定位使用position 属性。

ellipsoid - Ellipsoid

椭球体是一个闭合的二次曲面,是一个椭圆的三维模拟。 使用position orientation 属性来定位和定向。

label - Label

一串文字。 标签由position 属性定位在场景中。

model - Model

3D模型。 该模型使用position orientation 属性进行定位和定向。

path - Path

路径,它是由物体随时间的运动定义的折线。 路径的拐点由position 属性指定。

point - Point

点或视口对齐的圆。 该点由position 属性定位在场景中。

polygon - Polygon

多边形,它是地球表面上的封闭图形。

polyline - Polyline

多段线,它是由多个线段组成的场景中的一条线。

rectangle - Rectangle

一个地图矩形,符合地球的曲率,可以沿着地表或海拔高度放置。

wall - Wall

与地球的曲率一致的二维壁,可沿表面或高度放置。

agi_conicSensor - ConicSensor

圆锥形传感器体积考虑了椭圆体(即球体)的遮挡。 传感器使用position orientation 属性进行定位和定向。

注意:该属性是扩展属性,不是所有浏览器都支持。

agi_customPatternSensor - CustomPatternSensor

圆锥形传感器体积考虑了椭圆体(即球体)的遮挡。 传感器使用position orientation 属性进行定位和定向。

agi_rectangularSensor - RectangularSensor

矩形金字塔传感器体积考虑了椭圆体(即球体)的遮挡。

agi_fan - Fan

agi_vector - Vector

定义一个图形矢量,该矢量始于位置属性,并在所提供方向上延伸指定长度。 该矢量使用position 属性进行定位。

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CZML是一种用于描述时间动态数据的语言。在Cesium中,可以使用CZML实现动画效果。下面是一个简单的例子: ```javascript // 定义一个CZML文档 var czml = [ { "id": "document", "name": "CZML Animations" }, { "id": "animation1", "name": "Animation 1", "position": { "cartographicDegrees": [-75, 40, 0] }, "model": { "gltf": "path/to/model.gltf", "scale": 10 }, "path": { "resolution": 120, "material": { "solidColor": { "color": { "rgba": [255, 0, 0, 128] } } }, "width": 5, "leadTime": 10, "trailTime": 10, "show": true } } ]; // 加载CZML文档 var dataSource = new Cesium.CzmlDataSource(); dataSource.load(czml); // 将CZML数据添加到场景中 viewer.dataSources.add(dataSource); // 创建一个时间轴 var clock = viewer.clock; clock.shouldAnimate = true; clock.currentTime = Cesium.JulianDate.fromIso8601('2021-01-01T00:00:00.00Z'); clock.multiplier = 60; // 开始动画 clock.onTick.addEventListener(function(clock) { var time = clock.currentTime; dataSource.entities.getById('animation1').position.cartographicDegrees = [-75 + Cesium.Math.toDegrees(Math.cos(time.secondsOfDay / 60)), 40 + Cesium.Math.toDegrees(Math.sin(time.secondsOfDay / 60)), 0]; }); ``` 在上面的例子中,我们定义了一个CZML文档,其中包含一个模型和一个路径。模型用于显示在地球表面的一个三维模型,路径则用于显示模型的运动轨迹。我们将CZML文档加载到了Cesium的数据源中,然后将数据源添加到场景中。接着,我们创建了一个时间轴,并通过监听时间轴的事件来实现动画效果。在每一帧中,我们更新模型的位置,使其在地球表面上运动。 需要注意的是,上面的例子中只实现了一个简单的动画效果,如果需要实现更加复杂的动画效果,需要使用更加复杂的CZML文档和更加复杂的代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值