Справочник атрибутов
Чтобы обеспечить совместимость и простоту использования, все слои в экосистеме Toril GIS имеют стандартизированную структуру атрибутов. Это единообразие позволяет применять согласованные стили, фильтрацию и многоязычные подписи для различных наборов данных.
Источники данных и форматы экспорта
В таблице ниже приведена эталонная структура, представленная в основной базе данных PostGIS. В зависимости от того, как вы используете эти данные, атрибуты могут подвергаться преобразованиям.
Хотя мы в первую очередь поддерживаем GeoPackage (.gpkg), данные могут быть экспортированы во многие другие форматы (такие как GeoJSON (.geojson) и Shapefile (.shp)). Обратите внимание: изменения в структуре данных неизбежны при экспорте из-за различий в спецификациях форматов. Будьте готовы к возможной потере вложенных метаданных или сокращению имён атрибутов в устаревших форматах.
Словарь атрибутов
| Название | Тип | Описание |
|---|---|---|
| Идентификация и классификация | ||
uuid |
UUID | ЭКСТРЕМАЛЬНО ВАЖНО. Это первичный ключ и «клей» всей базы данных. Все реляционные данные — включая переводы на разные языки и связанные описания — соединены через это поле. Никогда не изменяйте и не генерируйте заново UUID для существующих объектов, так как это нарушит целостность базы данных и все связи. |
layer_id |
Text | Внутренний идентификатор, связывающий объект с его конкретным слоем (например, srf_civ_populated_places_pt). |
feature_class |
Text | Классификация типа объекта (например, “City”, “Forest”, “Ruins”). Это основное поле для тематической стилизации. Полный список допустимых значений см. в разделе Работа со слоями и стилями. |
feature_rank |
Integer | Шкала важности, соответствующая уровням масштабирования веб-карт. Toril GIS ориентирован прежде всего на карты глобального и регионального масштаба. В настоящее время диапазон составляет от 0 до 10 (где 0 — глобальное значение), хотя это не жёсткое ограничение. Технически система поддерживает и более высокие значения: например, 20 будет соответствовать локальным объектам уровня отдельного дома. См. Работа со слоями и стилями. |
| Метаданные проекта | ||
source |
Text | Код ссылки на оригинальную карту или книгу-источник. Подробнее в разделе Источники данных. |
dnd_editions |
Array | Редакции игры, в которых присутствует этот объект (например, 2e, 3e, 5e). См. руководство по Совместимости редакций D&D, чтобы узнать, как они соотносятся с хронологией Торила. |
timeframe |
Text | Зарезервировано для высокоточной хронологической фильтрации (например, конкретные годы). Это поле в данный момент является экспериментальным и малоиспользуемым, но станет жизненно важным для будущих темпоральных/исторических версий карты. |
is_visible |
Boolean | Основной переключатель видимости. Если установлено значение FALSE, объект игнорируется стандартными стилями. |
is_labeled |
Boolean | Глобальный переключатель отображения подписей. Позволяет отключать подписи для конкретных объектов, даже если в стиле слоя подписи включены. |
needs_review |
Boolean | Для внутреннего использования разработчиками. Флаг, указывающий на то, что объект требует ручной проверки, корректировки координат или уточнения лора. Конечные пользователи могут игнорировать это поле. |
review_notes |
Text | Для внутреннего использования разработчиками. Конкретные инструкции, проблемы или заметки «to-do» относительно точности данных объекта. |
| Пространственные и системные данные | ||
geog |
Geography | Каноническая геометрия, хранящаяся в Toril GCS. Это основные пространственные данные. Все операции должны в конечном итоге сохраняться обратно в этот столбец. |
geog_extent |
JSONB | Предварительно рассчитанный охват (bounding box) и другие измерения как в имперской, так и в метрической системах. |
location_paths |
JSONB | Многоязычные иерархические пути (например, {"en": ["Mhair Jungles", "Chult", "Faerûn"]}). В проекте QGIS виртуальные атрибуты, такие как location, используют эти данные для рендеринга чистых путей вида “Mhair Jungles → Chult → Faerûn”. |
last_edited |
Date | Дата последнего изменения для упрощения отслеживания версий. |
last_editor |
Text | Имя пользователя или процесс, ответственный за последнее обновление. |
extra |
JSONB | Гибкое хранилище для атрибутов, уникальных для конкретных слоёв. Если в будущем нам понадобятся дополнительные атрибуты, их можно будет добавить сюда без изменения структуры базы данных. |
| Многоязычный контент | ||
name_{lang} |
Text |
Авторитетный контент. Английский язык (name_en) является мастер-языком и первичным источником истины. Для всех объектов гарантируется наличие английских атрибутов. Другие языки (например, name_ru) являются вторичными и должны возвращаться к английскому значению, если поле пусто. |
name_abb_{lang} |
Text | Аббревиатура названия, используемая в условиях ограниченного пространства на карте. Используется в Правилах подписей. |
name_alt_{lang} |
Array | Известные псевдонимы, исторические названия или варианты написания на указанном языке. |
descr_{lang} |
Text | Текстовое описание лора объекта. |
url_{lang} |
Text | Ссылка на соответствующие ресурсы (например, статьи в Wiki) на конкретном языке. |
Технические примечания
Виртуальные атрибуты в QGIS
Проект Toril GIS для QGIS (наша основная среда визуализации) включает несколько виртуальных полей. Они не хранятся в базе данных, а рассчитываются «на лету» на основе перечисленных выше атрибутов. Пример: location — виртуальный атрибут, который форматирует JSON из location_paths в человекочитаемую строку для подсказок и всплывающих окон.
Локализация и масштаб
Каждое текстовое поле следует шаблону {field}_{lang_code}. Хотя в настоящее время основное внимание уделяется английскому (en) и русскому (ru) языкам, схема готова к масштабированию на любой язык. Аналогичным образом, логика feature_rank гарантирует, что даже при добавлении более подробных деталей (вплоть до отдельных зданий), глобальная карта останется чистой и производительной.