Сфера (sphere) в геопространственной визуализации Vega и Vega-Lite
представляет собой специальный геометрический объект, описывающий
идеализированную модель Земли без развертки в плоскость. В спецификациях
используется GeoJSON-подобное представление с типом
"Sphere", которое интерпретируется движком как глобальная
оболочка для построения картографических проекций и фоновых слоёв.
Объект sphere не содержит координатной геометрии в привычном смысле (точек, линий или полигонов). Он задаёт абстрактную поверхность единичной сферы, используемую как опорный слой для:
В терминах Vega sphere выступает как специальный геообъект, обрабатываемый трансформацией проекции до этапа рендеринга.
В Vega sphere задаётся через GeoJSON-объект:
{
"type": "Sphere"
}
Этот объект не содержит coordinates и не требует
дополнительных атрибутов. Он интерпретируется как единая поверхность,
охватывающая весь допустимый диапазон сферических координат.
В Vega-Lite аналогичное поведение достигается через использование
встроенного источника данных sphere, который автоматически
подключается к геошейп-слою.
В Vega sphere чаще всего применяется как отдельный слой
(geoshape), который рисуется до отображения стран и других
географических объектов.
{
"data": {
"values": [
{ "type": "Sphere" }
]
},
"mark": {
"type": "geoshape",
"fill": "#e6f2ff"
},
"projection": {
"type": "orthographic",
"rotate": [0, 0, 0],
"scale": 250
}
}
В этом контексте sphere формирует фон глобуса, обычно интерпретируемый как океан. Цвет заливки определяет визуальную массу Земли вне континентальных объектов.
Одной из ключевых функций sphere является определение границ видимости геометрии. При использовании ортографической проекции все объекты, выходящие за пределы видимой полусферы, автоматически отсекаются.
Механизм работает следующим образом:
Это позволяет добиться эффекта реального глобуса, а не плоской карты с искажениями краёв.
В Vega-Lite sphere интегрирован в географический слой через
mark: geoshape. Он часто используется совместно с
параметром projection.
{
"data": {
"url": "https://vega.github.io/vega-datasets/data/world-110m.json",
"format": {
"type": "topojson",
"feature": "countries"
}
},
"mark": {
"type": "geoshape",
"fill": "lightgray",
"stroke": "white"
},
"projection": {
"type": "orthographic"
}
}
Внутри Vega-Lite автоматически добавляется слой sphere, даже если он не указан явно. Он используется как базовый фон для всей географической сцены.
Поведение sphere зависит от выбранного типа проекции:
В ортографической проекции sphere становится визуально доминирующим элементом, так как задаёт контур всей сцены.
Несмотря на абстрактную природу, sphere поддаётся стилизации через mark-атрибуты:
fill — цвет океана или фона;stroke — граница глобуса (обычно окружность);opacity — прозрачность слоя;clip — контроль обрезки содержимого.Пример стилизованного глобуса:
{
"data": {
"values": [
{ "type": "Sphere" }
]
},
"mark": {
"type": "geoshape",
"fill": "#0b3d91",
"stroke": "#333",
"strokeWidth": 1
},
"projection": {
"type": "orthographic",
"rotate": [-30, -20, 0],
"scale": 280
}
}
Здесь sphere формирует визуальную основу глобуса, а вращение проекции определяет положение наблюдателя относительно поверхности.
Типичная структура сцены включает несколько слоёв:
Порядок отрисовки критичен: sphere всегда располагается ниже остальных слоёв, обеспечивая визуальную целостность.
{
"layer": [
{
"data": { "values": [{ "type": "Sphere" }] },
"mark": { "type": "geoshape", "fill": "#d0e6ff" },
"projection": { "type": "orthographic" }
},
{
"data": {
"url": "https://vega.github.io/vega-datasets/data/world-110m.json",
"format": { "type": "topojson", "feature": "countries" }
},
"mark": { "type": "geoshape", "fill": "#ccc", "stroke": "#fff" },
"projection": { "type": "orthographic" }
}
]
}
Внутри Vega sphere участвует в расчёте геометрического преобразования координат. Каждая точка данных интерпретируется как вектор на сфере, где:
Таким образом sphere служит фундаментом для перехода от географических координат к экранным.
При добавлении интерактивного вращения (drag, zoom) sphere остаётся статическим объектом, а изменяется матрица проекции. Это создаёт эффект вращающегося глобуса, хотя фактически трансформируются координаты всех слоёв относительно фиксированной сферы.
Изменение углов rotate приводит к перерасчёту
отображения:
Несмотря на универсальность, sphere имеет ряд ограничений:
Эти ограничения компенсируются дополнительными слоями данных, накладываемыми поверх базовой сферы.