CesiumJS использует абстракцию провайдеров изображений для подключения внешних источников тайлов и растровых данных. Для работы с сервисами типа ArcGIS ImageServer применяется специализированный провайдер, ориентированный на REST API модели динамических изображений.
ArcGIS ImageServer предоставляет доступ к растровым данным через HTTP-интерфейс, поддерживая:
CesiumJS интегрируется с этим типом сервиса через
ArcGisImageServerImageryProvider, который интерпретирует
ответы REST API и преобразует их в текстуры для глобуса.
Основной класс для работы:
const imageryLayer = new Cesium.ImageryLayer(
new Cesium.ArcGisImageServerImageryProvider({
url: "https://sampleserver.domain.com/arcgis/rest/services/Landsat/ImageServer"
})
);
viewer.imageryLayers.add(imageryLayer);
Провайдер автоматически выполняет:
/exportImage;Базовый REST endpoint ImageServer:
url: "https://server/arcgis/rest/services/serviceName/ImageServer"
Этот адрес должен указывать именно на ImageServer, а не MapServer.
Ограничение области отображения:
rectangle: Cesium.Rectangle.fromDegrees(-180, -90, 180, 90)
Используется для оптимизации загрузки и ограничения покрытия слоя.
Для защищённых сервисов ArcGIS используется токен авторизации:
token: "YOUR_ARCGIS_TOKEN"
Токен передаётся в каждый REST-запрос.
Cesium поддерживает разные схемы тайлинга:
tilingScheme: new Cesium.WebMercatorTilingScheme()
Несовпадение схемы приводит к смещению изображений.
Контроль детализации:
maximumLevel: 18
Ограничивает количество уровней приближения и влияет на нагрузку сети.
Атрибуция данных:
credit: "Esri ImageServer"
Используется для отображения источника данных в интерфейсе Cesium.
ImageServer основан на REST архитектуре и поддерживает несколько ключевых операций.
Основной запрос для получения растрового фрагмента.
Пример запроса:
.../ImageServer/exportImage?
bbox=...
&size=256,256
&format=png
&f=image
Cesium формирует эти запросы автоматически для каждого тайла.
Возвращает метаданные сервиса:
Cesium использует эти данные для конфигурации слоя.
Одно из ключевых преимуществ ImageServer — возможность серверной обработки изображений.
Примеры функций:
Cesium может передавать параметры через
renderingRule.
Позволяет изменять визуализацию данных без изменения исходного растра.
const provider = new Cesium.ArcGisImageServerImageryProvider({
url: "https://server/arcgis/rest/services/Land/ImageServer",
renderingRule: {
rasterFunction: "NDVI_Colorized"
}
});
Рендеринг выполняется на стороне сервера, что снижает нагрузку на клиент.
ImageServer часто возвращает многоспектральные данные:
Cesium отображает такие данные через серверную композицию каналов.
Пример настройки каналов:
renderingRule: {
rasterFunction: "CompositeBand",
variableName: "Raster",
arguments: {
Raster: {
rasterFunction: "BandArithmetic",
arguments: {
Method: 0
}
}
}
}
ArcGIS ImageServer может использовать различные CRS:
CesiumJS требует согласования с глобусной моделью, поэтому при несоответствии выполняется reprojection.
Проблемные случаи:
ImageServer не является классическим тайловым сервисом, но Cesium адаптирует его под тайловую модель.
Особенности:
/exportImage;Оптимизация:
maximumLevel;cacheControl;tileWidth и tileHeight
(если поддерживается сервером).ImageServer поддерживает временные данные (time-aware imagery).
Cesium может передавать временные параметры:
time: Cesium.JulianDate.now()
Сервер возвращает изображение, соответствующее временной выборке.
Используется для:
Причины:
Причины:
tilingScheme;Причины:
maximumLevel.Причины:
Cesium не использует native ArcGIS SDK, а работает через REST слой абстракции.
Это означает:
Архитектурно взаимодействие выглядит так:
/exportImage запрос;Cesium поддерживает многослойную композицию:
viewer.imageryLayers.add(new Cesium.ImageryLayer(
new Cesium.ArcGisImageServerImageryProvider({
url: "https://server/ImageServer1"
})
));
viewer.imageryLayers.add(new Cesium.ImageryLayer(
new Cesium.ArcGisImageServerImageryProvider({
url: "https://server/ImageServer2"
})
));
Порядок слоёв влияет на визуальное наложение:
Cesium использует встроенный механизм request scheduler и cache:
При корректной настройке сервера ImageServer может отдавать заголовки:
Esri предоставляет экосистему сервисов ArcGIS, включая ImageServer, MapServer и FeatureServer.
CesiumJS интегрируется с ними на уровне REST протокола, что позволяет:
Cesium динамически адаптирует:
При сильном zoom-out сервер может возвращать агрегированные изображения, при zoom-in — детализированные растры.
Для анализа взаимодействия Cesium и ImageServer используются:
/exportImage запросов;Ключевые параметры запроса:
Разные версии ArcGIS Server могут отличаться:
CesiumJS адаптируется через универсальный REST парсер, но сложные функции зависят от серверной реализации.