Skip to content

Export entities to CZML

Example — Builds entities in Python and exports them for any CesiumJS application.

"""CZML export: Build entities in Python and export to CZML format."""

import cesiumkit

viewer = cesiumkit.Viewer(title="CZML Export Demo")

# Add several entities
viewer.add_entity(
    cesiumkit.Entity(
        id="point-philly",
        name="Philadelphia",
        position=cesiumkit.Cartesian3.from_degrees(-75.1652, 39.9526, 0),
        point=cesiumkit.PointGraphics(pixel_size=10, color=cesiumkit.Color.RED),
    )
)

viewer.add_entity(
    cesiumkit.Entity(
        id="point-nyc",
        name="New York City",
        position=cesiumkit.Cartesian3.from_degrees(-74.006, 40.7128, 0),
        point=cesiumkit.PointGraphics(pixel_size=10, color=cesiumkit.Color.BLUE),
    )
)

viewer.add_entity(
    cesiumkit.Entity(
        id="line-philly-nyc",
        name="Philly to NYC",
        polyline=cesiumkit.PolylineGraphics(
            positions=[
                cesiumkit.Cartesian3.from_degrees(-75.1652, 39.9526),
                cesiumkit.Cartesian3.from_degrees(-74.006, 40.7128),
            ],
            width=3,
            material=cesiumkit.Color.YELLOW,
        ),
    )
)

# Export as CZML
czml_string = viewer.to_czml_string(indent=2)
print("CZML output:")
print(czml_string)

# Save CZML to file
viewer.save_czml("examples/output/08_export.czml")
print("\nSaved CZML to examples/output/08_export.czml")

# You can also use CzmlDocument directly for more control
doc = cesiumkit.CzmlDocument(
    name="Custom CZML",
    clock=cesiumkit.ClockConfig(
        start_time=cesiumkit.JulianDate.from_iso8601("2024-01-01T00:00:00Z"),
        stop_time=cesiumkit.JulianDate.from_iso8601("2024-01-02T00:00:00Z"),
        multiplier=3600,
    ),
)
doc.add_entity(
    cesiumkit.Entity(
        id="custom-entity",
        name="Custom",
        position=cesiumkit.Cartesian3.from_degrees(-100, 40, 0),
    )
)
doc.save("examples/output/08_export_custom.czml")
print("Saved custom CZML to examples/output/08_export_custom.czml")

Run it:

python examples/08_czml_export.py
# Opens in browser — Ctrl+C to stop the server