Поле sphere: глобус

Сфера (sphere) в геопространственной визуализации Vega и Vega-Lite представляет собой специальный геометрический объект, описывающий идеализированную модель Земли без развертки в плоскость. В спецификациях используется GeoJSON-подобное представление с типом "Sphere", которое интерпретируется движком как глобальная оболочка для построения картографических проекций и фоновых слоёв.

Объект sphere не содержит координатной геометрии в привычном смысле (точек, линий или полигонов). Он задаёт абстрактную поверхность единичной сферы, используемую как опорный слой для:

  • отрисовки океанического фона;
  • формирования корректной области отсечения (clipping);
  • визуализации глобуса в ортографических и азимутальных проекциях;
  • согласования координат долготы и широты в 3D-подобной интерпретации.

В терминах Vega sphere выступает как специальный геообъект, обрабатываемый трансформацией проекции до этапа рендеринга.

Представление sphere в данных

В Vega sphere задаётся через GeoJSON-объект:

{
  "type": "Sphere"
}

Этот объект не содержит coordinates и не требует дополнительных атрибутов. Он интерпретируется как единая поверхность, охватывающая весь допустимый диапазон сферических координат.

В Vega-Lite аналогичное поведение достигается через использование встроенного источника данных sphere, который автоматически подключается к геошейп-слою.

Использование sphere в Vega

В Vega sphere чаще всего применяется как отдельный слой (geoshape), который рисуется до отображения стран и других географических объектов.

{
  "data": {
    "values": [
      { "type": "Sphere" }
    ]
  },
  "mark": {
    "type": "geoshape",
    "fill": "#e6f2ff"
  },
  "projection": {
    "type": "orthographic",
    "rotate": [0, 0, 0],
    "scale": 250
  }
}

В этом контексте sphere формирует фон глобуса, обычно интерпретируемый как океан. Цвет заливки определяет визуальную массу Земли вне континентальных объектов.

Sphere как слой отсечения

Одной из ключевых функций sphere является определение границ видимости геометрии. При использовании ортографической проекции все объекты, выходящие за пределы видимой полусферы, автоматически отсекаются.

Механизм работает следующим образом:

  • sphere задаёт полную поверхность глобуса;
  • проекция преобразует координаты долготы и широты в плоскость;
  • все геообъекты пересчитываются относительно поверхности сферы;
  • части геометрии за горизонтом исключаются из рендеринга.

Это позволяет добиться эффекта реального глобуса, а не плоской карты с искажениями краёв.

Использование sphere в Vega-Lite

В 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 зависит от выбранного типа проекции:

  • orthographic — sphere отображается как круг, имитирующий вид Земли из космоса;
  • gnomonic — sphere используется для проецирования больших кругов, но видимость ограничена полусферой;
  • mercator — sphere не отображается явно, но участвует в математическом преобразовании координат;
  • naturalEarth1 — 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 с географическими слоями

Типичная структура сцены включает несколько слоёв:

  1. sphere — базовый фон;
  2. страны (TopJSON/GeoJSON);
  3. границы регионов;
  4. точки и маркеры наблюдений.

Порядок отрисовки критичен: 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" }
    }
  ]
}

Роль sphere в вычислительной модели

Внутри Vega sphere участвует в расчёте геометрического преобразования координат. Каждая точка данных интерпретируется как вектор на сфере, где:

  • долгота задаёт угол вращения вокруг вертикальной оси;
  • широта задаёт угол отклонения от экватора;
  • радиус фиксирован и нормирован.

Таким образом sphere служит фундаментом для перехода от географических координат к экранным.

Особенности поведения при интерактивности

При добавлении интерактивного вращения (drag, zoom) sphere остаётся статическим объектом, а изменяется матрица проекции. Это создаёт эффект вращающегося глобуса, хотя фактически трансформируются координаты всех слоёв относительно фиксированной сферы.

Изменение углов rotate приводит к перерасчёту отображения:

  • вращение по долготе смещает меридианы;
  • наклон по широте изменяет видимость полярных областей;
  • третий параметр влияет на поворот плоскости экрана.

Ограничения sphere

Несмотря на универсальность, sphere имеет ряд ограничений:

  • не содержит реальной геометрической детализации;
  • не поддерживает локальные деформации поверхности;
  • не моделирует рельеф или высоту;
  • всегда предполагает идеальную сферу без эллипсоидальности.

Эти ограничения компенсируются дополнительными слоями данных, накладываемыми поверх базовой сферы.