В CesiumJS основная модель представления мира опирается на географическую систему координат WGS84 и эллипсоидальную модель Земли, где поверхность описывается не плоской проекцией, а геодезической формой. Это принципиально отличает подход от традиционных 2D-картографических библиотек: вместо перехода к плоской проекции используется работа с географическими координатами напрямую, а визуализация строится через 3D-движок.
Базовая система координат в CesiumJS — это WGS84 (World Geodetic System 1984). Она определяет:
В отличие от плоских проекций (Mercator, Lambert и др.), WGS84 не выполняет математического «разворачивания» поверхности. Вместо этого каждая точка задаётся на эллипсоиде:
Cesium хранит такие координаты в структуре Cartographic.
Внутреннее представление географических координат в Cesium использует радианы, а не градусы.
Основной тип:
Cesium.Cartographic(longitude, latitude, height)
Где:
Перевод между градусами и радианами выполняется явно:
const lonRad = Cesium.Math.toRadians(90.0);
const latRad = Cesium.Math.toRadians(50.0);
const carto = new Cesium.Cartographic(lonRad, latRad, 0);
Использование радианной системы позволяет унифицировать вычисления тригонометрических преобразований и уменьшить накопление ошибок при трансформациях.
Несмотря на работу в географических координатах, рендеринг сцены происходит в декартовой системе координат:
Эта система называется Earth-Centered, Earth-Fixed (ECEF).
В Cesium она представлена типом Cartesian3.
Преобразование из географических координат:
const cartographic = Cesium.Cartographic.fromDegrees(30, 50, 100);
const position = Cesium.Cartesian3.fromRadians(
cartographic.longitude,
cartographic.latitude,
cartographic.height
);
И обратное преобразование:
const carto = Cesium.Cartographic.fromCartesian(position);
Таким образом, географическая проекция в Cesium — это не 2D-проекция, а двунаправленный переход между эллипсоидальной и декартовой моделями.
Ключевая особенность географической системы в Cesium заключается в том, что карта не «проецируется» в привычном смысле.
Вместо этого:
Это означает, что понятие «проекция» заменяется понятием «геодезического отображения».
В традиционных GIS-системах используется:
Cesium же работает как глобальный 3D-глобус, где плоская проекция — лишь промежуточный этап подготовки тайлов.
При рендеринге сцены происходит следующая цепочка:
Финальная экранная координата не является географической проекцией в классическом смысле, а результатом перспективного преобразования камеры.
В основе лежит эллипсоид WGS84:
Cesium использует класс Ellipsoid:
Cesium.Ellipsoid.WGS84
Преобразование географических координат учитывает форму эллипсоида, а не идеальной сферы. Это влияет на:
Высота в Cesium задаётся как эллипсоидальная, а не ортометрическая.
Это означает:
При использовании terrain происходит:
Камера в Cesium работает в мировых координатах:
viewer.camera.setView({
destination: Cesium.Cartesian3.fromDegrees(30, 50, 1000000)
});
Здесь географическая проекция проявляется косвенно: камера задаётся в географических координатах, но интерпретируется через Cartesian3.
При этом:
Cesium предоставляет полный набор преобразований:
Cesium.Cartographic.fromDegrees(lon, lat, height)
Cesium.Cartesian3.fromRadians(longitude, latitude, height)
Cesium.Cartographic.fromCartesian(cartesian)
Cesium.Cartesian3.fromDegrees(lon, lat, height)
Эти функции являются основой всей географической модели.
При работе с глобальной системой координат возникает проблема точности:
Cesium решает это через:
Визуализация поверхности Земли строится на тайлах, чаще всего:
Каждый тайл:
Таким образом географическая проекция — это процесс обратного отображения 2D-тайлов в 3D пространство.
В отличие от плоских движков, расстояния в Cesium считаются по поверхности эллипсоида:
const geodesic = new Cesium.EllipsoidGeodesic(
Cesium.Cartographic.fromDegrees(0, 0),
Cesium.Cartographic.fromDegrees(10, 10)
);
const distance = geodesic.surfaceDistance;
Это важно для:
Географическая проекция влияет на:
Чем ближе к поверхности, тем сильнее проявляется кривизна эллипсоида, и тем больше вычислений требуется для корректного отображения.
В Cesium географическая проекция представляет собой не преобразование в 2D, а систему взаимосвязанных пространств:
Именно взаимодействие этих уровней формирует визуализацию глобуса, где географические координаты остаются фундаментальным слоем всей системы координат.