Skip to content

Cities as points with billboards and labels

Example — Plots several cities and styles each with a billboard and label.

"""Multiple cities: Plot several cities as points with billboards and labels."""

import cesiumkit

viewer = cesiumkit.Viewer(
    title="World Cities",
    animation=False,
    timeline=False,
    home_button=True,
)

cities = [
    ("New York", -74.006, 40.7128, cesiumkit.Color.RED),
    ("London", -0.1278, 51.5074, cesiumkit.Color.BLUE),
    ("Tokyo", 139.6917, 35.6895, cesiumkit.Color.HOTPINK),
    ("Sydney", 151.2093, -33.8688, cesiumkit.Color.GREEN),
    ("Cairo", 31.2357, 30.0444, cesiumkit.Color.GOLD),
    ("Rio de Janeiro", -43.1729, -22.9068, cesiumkit.Color.ORANGE),
    ("Mumbai", 72.8777, 19.0760, cesiumkit.Color.PURPLE),
    ("Los Angeles", -118.2437, 34.0522, cesiumkit.Color.CYAN),
    ("Moscow", 37.6173, 55.7558, cesiumkit.Color.SALMON),
    ("Cape Town", 18.4241, -33.9249, cesiumkit.Color.LIME),
]

for name, lon, lat, color in cities:
    viewer.add_entity(
        cesiumkit.Entity(
            name=name,
            description=f"<h2>{name}</h2><p>Lon: {lon}, Lat: {lat}</p>",
            position=cesiumkit.Cartesian3.from_degrees(lon, lat, 0),
            point=cesiumkit.PointGraphics(
                pixel_size=10,
                color=color,
                outline_color=cesiumkit.Color.WHITE,
                outline_width=2,
                height_reference=cesiumkit.HeightReference.CLAMP_TO_GROUND,
            ),
            label=cesiumkit.LabelGraphics(
                text=name,
                font="14px sans-serif",
                fill_color=cesiumkit.Color.WHITE,
                outline_color=cesiumkit.Color.BLACK,
                outline_width=2,
                style=cesiumkit.LabelStyle.FILL_AND_OUTLINE,
                pixel_offset=cesiumkit.Cartesian2(x=0, y=-18),
                distance_display_condition=cesiumkit.DistanceDisplayCondition(near=0, far=8000000),
                height_reference=cesiumkit.HeightReference.CLAMP_TO_GROUND,
            ),
        )
    )

viewer.show()  # Opens in browser via local HTTP server (Ctrl+C to stop)

Run it:

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