CDN (Content Delivery Network) — наиболее простой способ подключения CesiumJS к веб-приложению без установки пакетов через npm и без настройки системы сборки. Все необходимые файлы загружаются напрямую с удалённого сервера, что позволяет быстро развернуть прототип, учебный проект или демонстрационный стенд.
Использование CDN особенно удобно при изучении библиотеки, тестировании новых возможностей и создании небольших приложений, где отсутствует необходимость в сложной инфраструктуре сборки.
Для корректной работы движка требуется подключение двух основных ресурсов:
Cesium использует собственные элементы управления, виджеты, панели и контейнеры, поэтому подключение CSS является обязательным.
Базовая структура страницы выглядит следующим образом:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Cesium CDN Example</title>
<link
href="https://cesium.com/downloads/cesiumjs/releases/1.133/Build/Cesium/Widgets/widgets.css"
rel="stylesheet"
/>
<style>
html,
body,
#cesiumContainer {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
overflow: hidden;
}
</style>
</head>
<body>
<div id="cesiumContainer"></div>
<script src="https://cesium.com/downloads/cesiumjs/releases/1.133/Build/Cesium/Cesium.js"></script>
<script>
const viewer = new Cesium.Viewer("cesiumContainer");
</script>
</body>
</html>
После открытия страницы в браузере появится трёхмерный глобус с базовым набором инструментов навигации.
Обычно ссылка на релиз Cesium имеет следующий формат:
https://cesium.com/downloads/cesiumjs/releases/VERSION/Build/Cesium/
Где:
VERSION
заменяется на номер версии.
Например:
1.133
Тогда пути будут выглядеть так:
<script src="https://cesium.com/downloads/cesiumjs/releases/1.133/Build/Cesium/Cesium.js"></script>
<link
href="https://cesium.com/downloads/cesiumjs/releases/1.133/Build/Cesium/Widgets/widgets.css"
rel="stylesheet"
/>
Фиксация версии считается хорошей практикой, поскольку предотвращает неожиданное изменение поведения приложения после выхода новых релизов.
Cesium отображает карту внутри HTML-элемента.
Пример:
<div id="map"></div>
Контейнер должен иметь заданные размеры.
Наиболее распространённый вариант:
html,
body,
#map {
width: 100%;
height: 100%;
margin: 0;
}
Инициализация:
const viewer = new Cesium.Viewer("map");
Аргументом передаётся идентификатор DOM-элемента.
По умолчанию Viewer создаёт множество элементов интерфейса:
Для минималистичного интерфейса можно отключить ненужные компоненты:
const viewer = new Cesium.Viewer("map", {
animation: false,
timeline: false,
baseLayerPicker: false,
geocoder: false,
navigationHelpButton: false,
sceneModePicker: false,
homeButton: false,
fullscreenButton: false
});
Такой подход уменьшает количество создаваемых DOM-элементов и упрощает интерфейс.
Современные браузеры поддерживают подключение JavaScript-модулей напрямую.
Пример:
<script type="module">
import * as Cesium from "https://cesium.com/downloads/cesiumjs/releases/1.133/Build/Cesium/index.js";
const viewer = new Cesium.Viewer("map");
</script>
Преимущества:
Cesium;Недостатком является зависимость от поддержки ES Modules браузером.
После загрузки библиотеки глобальный объект становится доступен через
пространство имён Cesium.
Проверка:
console.log(Cesium);
Либо:
console.log(Cesium.VERSION);
Результат:
1.133
Это позволяет убедиться, что нужная версия была загружена корректно.
Большая часть современных возможностей Cesium использует сервис Cesium Ion.
Перед созданием Viewer обычно задаётся токен доступа:
Cesium.Ion.defaultAccessToken =
"ВАШ_ТОКЕН";
После этого создаётся экземпляр Viewer:
const viewer = new Cesium.Viewer("map");
Полный порядок действий:
Cesium.Ion.defaultAccessToken = "TOKEN";
const viewer = new Cesium.Viewer("map");
Если токен отсутствует, часть сервисов может работать с ограничениями или выдавать предупреждения в консоли.
Помимо официального сервера доступны сторонние CDN-провайдеры.
Пример через jsDelivr:
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/cesium@1.133/Build/Cesium/Widgets/widgets.css"
/>
<script src="https://cdn.jsdelivr.net/npm/cesium@1.133/Build/Cesium/Cesium.js"></script>
Преимущества:
Для ускорения рендеринга страницы можно использовать атрибуты загрузки.
Вариант с defer:
<script
defer
src="https://cesium.com/downloads/cesiumjs/releases/1.133/Build/Cesium/Cesium.js">
</script>
После загрузки документа:
<script>
document.addEventListener("DOMContentLoaded", () => {
const viewer = new Cesium.Viewer("map");
});
</script>
Использование defer позволяет браузеру не блокировать
построение DOM во время загрузки библиотеки.
После успешного подключения можно выполнить простую настройку камеры.
const viewer = new Cesium.Viewer("map");
viewer.camera.flyTo({
destination: Cesium.Cartesian3.fromDegrees(
37.6173,
55.7558,
15000
)
});
Камера плавно переместится к координатам Москвы.
После подключения через CDN весь API доступен без дополнительных настроек.
Добавление точки:
viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(
37.6173,
55.7558
),
point: {
pixelSize: 10
}
});
Добавление подписи:
viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(
37.6173,
55.7558
),
label: {
text: "Москва"
}
});
CDN-подключение позволяет создавать приложения в одном HTML-файле.
Структура может состоять всего из:
index.html
Внутри располагаются:
Такой подход часто используется для:
Несмотря на простоту использования, CDN имеет ряд ограничений.
Cesium содержит значительный объём кода:
Из-за этого время загрузки может быть заметным при медленном соединении.
При CDN-подключении загружается весь пакет.
Даже если используется только часть функциональности, браузер получает полный набор модулей.
Невозможно:
Для крупных проектов обычно используются npm, Vite, Webpack или другие современные инструменты сборки.
Для обучения и первых проектов
Использовать официальный CDN и фиксированную версию:
<script src="https://cesium.com/downloads/cesiumjs/releases/1.133/Build/Cesium/Cesium.js"></script>
Для демонстрационных страниц
Подключать библиотеку через jsDelivr или официальный CDN с кешированием браузера.
Для производственных систем
Предпочтительно переходить на пакетную установку через npm с использованием системы сборки.
Для стабильности
Не использовать ссылки вида:
latest
Лучше явно указывать номер версии:
1.133
Это обеспечивает воспроизводимость приложения и исключает проблемы после обновления библиотеки.