Skip to content

LinkFly/cesium-czml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Введение в CZML.

CZML - это основанный на JSON формат для описания изменяемых в течении времени графических сцен. Придуман, главным образом, для использования в браузерах выполняющий библиотеку Cesium.

Структура. Состоит из неких "пакетов" (Packets), каждый их которых определяет объект на сцене. На верхнем уровне описывается массив этих пакетов:

[
    // packet one
    {
        "id": "SomeId1",
        // ...
    },
    // packet two
    {
        "id": "SomeId2",
        // ...
    }
]

Возможно также описывать пакеты, таким образом, чтобы можно было загружать объекты сцены в потоковом режиме, в этом случае пакеты объектов могут описываться постепенно, в разных частях данных. Это реализуется с помощью технологии "Server-sent events" ( https://html.spec.whatwg.org/multipage/server-sent-events.html ).

Интервалы. Значения св-в объектов можно описывать через интервалы. При этом указывается время, в течении которого св-во имеет указанное значение, например:

{
    "id": "myObject",
    "someProperty": [
        {
            "interval": "2012-04-30T12:00:00Z/13:00:00Z",
            "number": 5
        },
        {
            "interval": "2012-04-30T13:00:00Z/14:00:00Z",
            "number": 6
        },
    ]
}

Также возможно описывать последовательное изменение значений (допускается разные алгоритмы последовательного изменения, по-умолчанию это - "линейная интерполяция). Например, для сложных значений (Composite Values) типа координат, описание последовательного изменения будет выглядеть следующим образом:

{
    // ...
    "someInterpolatableProperty": {
        "cartesian": [
            "2012-04-30T12:00Z", 1.0, 2.0, 3.0,
            "2012-04-30T12:01Z", 4.0, 5.0, 6.0,
            "2012-04-30T12:02Z", 7.0, 8.0, 9.0
        ]
    }
}

Здесь на каждом тике будут вычисляться промежуточные значения. Например, в 12:00:30 координаты будут [2.5, 3.5, 4.5]

Без описания изменений во времени, для сложных (композитных) значений, их всё равно необходимо их описывать в отдельном наборе полей:

{
    "id": "myObject",
    "someComplexProperty": {
        "cartesian": [1.0, 2.0, 3.0]
    }
}

Особенности формата, связь с другими форматами

  • Файлы gltf могут быть частями формата и задаётся ключами model, gltf, пример:
"model": {
      "gltf": "models/CesiumMilkTruck/CesiumMilkTruck.glb"
}

Свойства объектов

  • id - уникальный, в пределах сцены, идентификатор
  • model - задаёт модель в формате gltf/glb

About

Learn format CZML

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages