XGRIDSДокументация
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • Lixel CyberColor

    • Руководство пользователя LCC Studio

      • Начало работы
      • Версия и обновления
      • Загрузка и установка
      • Обзор интерфейса и навигация
      • Перед реконструкцией
      • Реконструкция модели
      • Реконструкция одиночной модели
      • Объединение карт
      • Воздушно-наземное объединение
      • Воздушная реконструкция
      • Мои модели
      • Другие функции
      • Настройки и учётная запись
      • Конвертер
      • Реконструкция по видео
      • Часто задаваемые вопросы
    • LCC Scene Editor

      • Версия и обновления
      • Учётная запись и вход
      • Обзор продукта и главная страница
      • Интерфейс редактора
      • Режимы навигации по сцене
      • Файл
      • Настройки
      • Операции редактирования
      • Окно
      • Глобальная панель инструментов
      • Ресурсы и свойства
      • Левая панель инструментов
      • Точки обзора
      • Портал
      • Skybox
      • Аннотации
      • Измерение
      • Flythrough
      • Отчёт по сцене
      • 3D Layout
      • Мини-карта
      • Preview Mode (Viewer)
      • Справка
      • Часто задаваемые вопросы
      • Точка появления
    • LCC Model Editor

      • Версия и обновления
      • Руководство пользователя
      • Обзор и интерфейс
      • Операции с файлами
      • Инструменты выбора
      • Редактирование моделей
      • Измерение
      • Цветокоррекция
      • Управление ресурсами
      • Настройки и справка
      • Часто задаваемые вопросы
    • Рекомендации по применению

      • Объединение нескольких крупных моделей 3DGS
  • Plugin & SDK

    • Unreal

      • Введение
      • Быстрый старт — Windows
      • Быстрый старт — Linux
      • Быстрый старт — Quest3
      • Редакции и лицензирование
      • Рендеринг
      • Растеризация Tiled (экспериментально)
      • Визуальные настройки
      • Нормали и освещение
      • Редактирование сцены
      • Параметры производительности
      • Руководство по оптимизации производительности
      • Интеграция со сторонними и движковыми плагинами
      • Прокси-меш
      • Анимация загрузки
      • Коллизии
      • Поддержка системы навигации
      • Поддержка однослойной воды
      • Локализация
      • Частые вопросы
      • Устранение неполадок
      • Журналы и диагностика
      • Свяжитесь с нами
      • Рекомендуемые практики

        • Переосвещение 3DGS с помощью меша LixelStudio
        • Независимый рендеринг для каждой камеры
      • Справочник API

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • Actor SOG / SPZ / PLY
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enums
        • Structs
      • Журнал изменений

        • v3.5.0
        • v3.4.0
        • v3.3.1
        • v3.0.0
        • v2.2.1
        • v1.0.0
        • v0.9.0
        • v0.8.0
        • v0.7.1
        • v0.6.1
        • v0.5.2
        • v0.4.1
        • v0.4.0
        • v0.3.0
        • v0.0.5
        • v0.0.4
        • v0.0.3
        • v0.0.2
        • v0.0.1
    • Unity

      • Введение в Unity SDK
      • Технические возможности
      • Требования к среде разработки
      • Руководство по быстрому старту для PC
      • Руководство по оптимизации настроек проекта
      • Руководство по разработке для Pico 4 Ultra
      • Руководство по стримингу Pico 4 Ultra с PC
      • Руководство по разработке для Quest 3
      • Руководство по стримингу Quest 3 с PC
      • Руководство по разработке OpenXR
      • Руководство по бизнес-стримингу Pico 4 Ultra
      • Глоссарий
      • FAQ
      • Свяжитесь с нами
      • Руководство по разработке функций

        • Руководство по разработке смешанного рендеринга нескольких сцен
        • Руководство по разработке приёма теней
        • Руководство по разработке освещения в реальном времени
        • Руководство по разработке многокамерного рендеринга
        • Руководство по разработке рендеринга изображений высокого разрешения
        • Руководство по разработке совместимости форматов данных LCC и LCC2
        • Руководство по разработке эффекта загрузки
        • Руководство по разработке переключения режима рендеринга Mip
        • Руководство по разработке привязки к рёбрам и углам
        • Руководство по разработке проецируемых декалей
        • Руководство по разработке видеопроецируемой декали
        • Руководство по разработке подсветки
        • Руководство по разработке обрезки в реальном времени
        • Руководство по разработке коррекции цвета
        • Руководство по разработке получения данных Mesh сцены
        • Руководство по разработке в режиме редактора
        • Руководство по настройке параметров производительности рендеринга
        • Руководство по разработке совместной упаковки приложения и данных
        • Руководство по разработке системы коллизий
        • Руководство по проблемам с разрешениями при разработке на macOS
        • Руководство по разработке компиляции и упаковки для устройств iOS
      • Справочник по API

        • LCCManager
        • Renderer
        • Типы данных
      • Журнал изменений

        • v2.3.0
        • v2.2.10
        • v2.2.0
        • v2.1.19
        • v2.0.14
  • API

    • Структурированное пространственное моделирование

      • Руководство по подключению
      • Процесс моделирования
      • Справочник по API
      • Временные учётные данные для загрузки
      • Коды ошибок

Справочник по API

Все API на этой странице используют метод POST и тело запроса в формате JSON. В каждом запросе передаются Общие заголовки запроса; для отдельных API они не повторяются. Внешняя структура ответа описана в разделе Единая структура ответа; в разделе «Ответ» каждого API перечислены только бизнес-поля внутри data.

Домены

РегионДомен
Материковый Китайhttps://open-api-gw.xgrids.cloud/
За пределами материкового Китая (включая Гонконг, Макао и Тайвань)https://open-api-gw.xgrids.com/

Общие заголовки запроса

Каждый API требует следующих параметров заголовка.

ПараметрЗначениеПравилоОбязательныйПо умолчанию
APP-IDID приложенияВыдаётся при подаче заявки на приложениеДаНет
X-TimestampВременная метка запросаВременная метка в секундахДаНет
X-NonceСлучайная строкаТолько буквы и цифры, от 16 до 32 символов. Регулярное выражение ^[A-Za-z0-9]{16,32}$. Рекомендуется UUID.randomUUID() с удалёнными -ДаНет
X-SignПодпись запросаПодтверждает, что запрос не был изменён, и защищает от повторной отправки. См. Механизм подписиДаНет
Content-TypeТип содержимогоВсегда application/jsonДаНет
languageЯзык сообщений ответаzh-CN или en-USНетzh-CN

Единая структура ответа

Все API возвращают одинаковую внешнюю структуру. Внешний code отражает только результат на уровне API; бизнес-результат смотрите в data.bizCode.

ИмяЗначениеПравило
codeКод результата API0 — успех, 401 — ошибка аутентификации, 429 — слишком много запросов
msgОписание результата API—
dataБизнес-данные—
data.bizCodeКод бизнес-результата0 означает успех; остальные значения см. в разделе Коды ошибок
data.bizMsgСообщение о бизнес-ошибке—

Примечание: вызов считается успешным, только если одновременно code == 0 и data.bizCode == 0.

Создание задачи и получение учётных данных для загрузки

Создаёт задачу моделирования и выдаёт временные учётные данные облачного хранилища для загрузки входных данных.

Endpoint

POST /open-apis/spatial-model/v1/model/create

Ограничения

ПараметрОграничение
Параллельные запросы10 запросов / с
Срок действия временных учётных данных12 часов
Регион хранения данныхПривязывается при подаче заявки на приложение; передавать не нужно

Параметры запроса

ПараметрЗначениеПравилоОбязательныйПо умолчанию
modelNameНазвание задачи моделированияМенее 50 символовДаНет
modelDesОписание задачиМенее 200 символовНетПусто
qualityКачество моделирования"1" — быстро, "2" — стандартно, "3" — медленноНет"2"
autoRebuildАвтоматически запускать моделирование после загрузки0 — только загрузка, 1 — автоматическое моделирование после загрузкиНет1
tagsТеги задачиList<String>, менее 20 элементовНетПусто

Ответ

ИмяТипЗначение
data.modelIdLongID задачи моделирования, сгенерированный сервером
data.paramsObjectПараметры временных учётных данных для загрузки данных
data.params.cloudServiceStringОблачный провайдер, принимающий загрузку. OSS — Alibaba Cloud, AWS — Amazon, KS3 — Kingsoft Cloud. Обычно каждая интегрирующая сторона работает только с одним фиксированным провайдером, поэтому поддерживать их все не нужно
data.params.endpointStringEndpoint загрузки провайдера облачного хранилища
data.params.regionStringРегион хранения провайдера облачного хранилища
data.params.bucketStringBucket для загрузки у провайдера облачного хранилища
data.params.savePathStringKey целевого каталога для загружаемых файлов. Это префикс каталога input; добавьте к нему относительный путь каждого файла, чтобы получить его фактический Key
data.params.accessKeyIdStringВременный AccessKeyId
data.params.accessKeySecretStringВременный AccessKeySecret
data.params.securityTokenStringSecurityToken для загрузки
data.params.requestIdStringID этого запроса

Пример запроса

POST /open-apis/spatial-model/v1/model/create HTTP/1.1
Host: open-api-gw.xgrids.com
APP-ID: your_app_id
X-Timestamp: 1791763200
X-Nonce: a3f91c2d8e7b4a6590fd12cb77ae40d1
X-Sign: 9mQk7xL2vTbR4pNw8sYcA1dHfZ3eJgU6oIyK0rVnBsM=
Content-Type: application/json

{
  "modelName": "Design Commune C Facade",
  "modelDes": "Nanshan, Shenzhen, LCC2 scene package",
  "quality": "2",
  "autoRebuild": 1,
  "tags": ["facade", "nanshan"]
}

Пример ответа

{
  "code": 0,
  "msg": "success",
  "data": {
    "bizCode": 0,
    "bizMsg": "",
    "modelId": 100231987,
    "params": {
      "cloudService": "AWS",
      "endpoint": "s3.ap-southeast-1.amazonaws.com",
      "region": "ap-southeast-1",
      "bucket": "your-bucket-name",
      "savePath": "prd/spatial-model/{accountId}/{taskCode}/input/",
      "accessKeyId": "ASIA****************",
      "accessKeySecret": "wJalrXUtnFEMI/K7MDENG/bPxRfiCY****",
      "securityToken": "IQoJb3JpZ2luX2VjE****",
      "requestId": "b7f1e2a9-5c43-4d8e-9a10-6f2c3b84d517"
    }
  }
}

Запуск задачи

Запускает моделирование вручную.

Endpoint

POST /open-apis/spatial-model/v1/model/start

Ограничения

ПараметрОграничение
Когда использоватьТолько если задача создана с autoRebuild = 0:
① Запустить можно только задачу в статусе «Загрузка завершена» (3); иначе возвращается 100041018;
② Каталог input должен содержать хотя бы один файл .lcc2 / .ply / .las; иначе возвращается 100041019;
③ При запуске кредиты замораживаются; если баланса недостаточно, возвращается код ошибки кредитов
Ограничение частотыОдин вызов в 3 секунды на каждый modelId
Параллельные запросы10 запросов / с

Параметры запроса

ПараметрЗначениеПравилоОбязательныйПо умолчанию
modelIdID задачи моделированияВозвращается при создании задачиДаНет

Ответ

Возвращается только Единая структура ответа.

Пример запроса

{
  "modelId": 100231987
}

Повторное получение учётных данных для загрузки

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

Endpoint

POST /open-apis/spatial-model/v1/model/sts

Ограничения

ПараметрОграничение
Срок действия временных учётных данных12 часов
Ограничение частотыОдин вызов в 3 секунды на каждый modelId; при слишком частых вызовах возвращается 10000003
Параллельные запросы10 запросов / с

Параметры запроса

ПараметрЗначениеПравилоОбязательныйПо умолчанию
modelIdID задачи моделирования—ДаНет

Ответ

Совпадает с ответом API Создание задачи и получение учётных данных для загрузки (data.modelId и data.params.*).

Пример запроса

{
  "modelId": 100231987
}

Обновление статуса загрузки

Сообщает статус загрузки входных данных. После завершения загрузки этот API нужно вызвать обязательно, иначе моделирование не начнётся.

Endpoint

POST /open-apis/spatial-model/v1/model/upload_status/update

Ограничения

ПараметрОграничение
Параллельные запросы10 запросов / с

Параметры запроса

ПараметрЗначениеПравилоОбязательныйПо умолчанию
modelIdID задачи моделирования—ДаНет
statusСтатус загрузки1 — загрузка, 2 — пауза, 3 — успешно, 4 — ошибкаДаНет
uploadTimeДлительность загрузкиВ миллисекундах; рекомендуется передавать при успешной загрузкеНетПусто
failedReasonПричина ошибкиРекомендуется передавать при ошибке загрузкиНетПусто

Ответ

Возвращается только Единая структура ответа.

Пример запроса

{
  "modelId": 100231987,
  "status": 3,
  "uploadTime": 184620
}

Отмена моделирования

Можно вызывать только для задач, которые находятся в процессе моделирования.

  • Отменить можно только задачи в статусе «Моделирование». После отмены задача переходит в статус «Ошибка моделирования».
  • При отмене списываются кредиты за уже израсходованный объём; излишне замороженные кредиты возвращаются на баланс.
  • Расчёт кредитов обычно занимает несколько минут, но не более примерно 10 минут.

Endpoint

POST /open-apis/spatial-model/v1/model/cancel

Ограничения

ПараметрОграничение
Ограничение по статусуОтменить можно только задачи в статусе «Моделирование» (7); для других статусов возвращается 100041017
Параллельные запросы10 запросов / с; один вызов в 3 секунды на каждый modelId, при слишком частых вызовах возвращается 10000003

Параметры запроса

ПараметрЗначениеПравилоОбязательныйПо умолчанию
modelIdID задачи моделирования—ДаНет

Ответ

Возвращается только Единая структура ответа.

Пример запроса

{
  "modelId": 100231987
}

Постраничный список задач

Запрашивает задачи моделирования постранично с фильтрами.

Endpoint

POST /open-apis/spatial-model/v1/model/list

Ограничения

ПараметрОграничение
Область данныхВозвращаются только задачи учётной записи, связанной с текущим appId
ОпросИнтервал не менее 5 секунд
Параллельные запросы10 запросов / с

Параметры запроса

ПараметрЗначениеПравилоОбязательныйПо умолчанию
modelNameНазвание задачиМенее 50 символов, нечёткий поискНетЛюбое
statusListСтатусы задачиЗначения см. в разделе Конечный автомат статусов задачиНетЛюбые
startTimeВремя началаВременная метка в миллисекундах; отбираются записи, созданные не раньше startTimeНетЛюбое
endTimeВремя окончанияВременная метка в миллисекундах; отбираются записи, созданные не позже endTimeНетЛюбое
page.pageНомер страницы—Нет1
page.limitРазмер страницы—НетОпределяется сервером
page.orderПорядок сортировкиASC — по возрастанию, DESC — по убыванию, по времени созданияНетDESC

Ответ

ИмяТипЗначение
data.pageIntegerНомер страницы
data.limitIntegerРазмер страницы
data.totalLongОбщее количество
data.dataListСписок данных
data.data[].modelIdLongID задачи моделирования
data.data[].modelNameStringНазвание задачи
data.data[].modelDesStringОписание задачи
data.data[].coverStringURL обложки; после завершения моделирования — общий рендер модели для предпросмотра. Подписанная временная ссылка, не сохраняйте её
data.data[].percentDoubleХод моделирования
data.data[].tagsListТеги
data.data[].statusIntegerСтатус задачи; значения см. в разделе Конечный автомат статусов задачи
data.data[].errorCodeStringКод ошибки
data.data[].failedReasonStringПричина ошибки
data.data[].createTimeLongВремя создания, временная метка в миллисекундах
data.data[].taskSuccessAtLongВремя завершения моделирования, временная метка в миллисекундах

Пример запроса

{
  "modelName": "Design Commune",
  "statusList": [7, 8],
  "startTime": 1790899200000,
  "endTime": 1791763200000,
  "page": {
    "page": 1,
    "limit": 20,
    "order": "DESC"
  }
}

Сведения о задачах

Пакетно запрашивает сведения о задачах моделирования, включая статистику, например длительность моделирования.

Endpoint

POST /open-apis/spatial-model/v1/model/detail

Ограничения

ПараметрОграничение
Пакетный запросНе более 50 modelId в одном запросе
Параллельные запросы10 запросов / с

Параметры запроса

ПараметрЗначениеПравилоОбязательныйПо умолчанию
modelIdListID задач моделированияList<Long>, не более 50 за разДаНет

Ответ

ИмяТипЗначение
data.dataListListСведения о задачах
data.dataList[].modelIdLongID задачи моделирования
data.dataList[].modelNameStringНазвание задачи
data.dataList[].modelDesStringОписание задачи
data.dataList[].coverStringURL обложки. Подписанная временная ссылка, не сохраняйте её
data.dataList[].percentDoubleХод моделирования
data.dataList[].tagsListТеги
data.dataList[].statusIntegerСтатус задачи; значения см. в разделе Конечный автомат статусов задачи
data.dataList[].errorCodeStringКод ошибки
data.dataList[].failedReasonStringПричина ошибки
data.dataList[].createTimeLongВремя создания, временная метка в миллисекундах
data.dataList[].rebuildInfoObjectСведения о моделировании
data.dataList[].rebuildInfo.qualityStringКачество моделирования. 1 — быстро, 2 — стандартно, 3 — медленно
data.dataList[].rebuildInfo.autoRebuildIntegerФлаг автоматического моделирования. 0 — только загрузка, 1 — автоматическое моделирование после загрузки
data.dataList[].rebuildInfo.inputTotalSizeLongРазмер входных данных, в байтах
data.dataList[].rebuildInfo.outputTotalSizeLongРазмер результатов моделирования, в байтах
data.dataList[].rebuildInfo.uploadTimeLongДлительность загрузки, в миллисекундах
data.dataList[].rebuildInfo.buildTimeLongДлительность моделирования, в миллисекундах
data.dataList[].rebuildInfo.taskStartAtLongВремя начала моделирования, временная метка в миллисекундах
data.dataList[].rebuildInfo.taskSuccessAtLongВремя успешного завершения моделирования, временная метка в миллисекундах
data.dataList[].rebuildInfo.creditObjectСведения о списании кредитов (только чтение), позволяют проверить списание за этот запуск моделирования. Объект возвращается всегда; пока данных о списании нет, его поля равны null
data.dataList[].rebuildInfo.credit.freezeNoStringНомер заморозки кредитов в формате SPATIAL_MODELING_{modelId}_{attempt}. Заполняется только после успешной заморозки кредитов при запуске задачи; до этого равен null
data.dataList[].rebuildInfo.credit.frozenCreditLongКредиты, замороженные в этом раунде. При запуске моделирования замораживается оценочная сумма; если алгоритм позже определит площадь, для которой нужно больше кредитов, замораживаются дополнительные кредиты, и в поле отображается итоговая сумма после увеличения
data.dataList[].rebuildInfo.credit.actualCreditLongФактически списанные кредиты. До расчёта равно null; после успешного моделирования или отмены содержит списание по фактическому объёму; 0, если кредиты разморожены после ошибки моделирования
data.dataList[].rebuildInfo.credit.settleStatusStringСтатус расчёта. FROZEN — заморожено, ожидает расчёта; SETTLED — рассчитано и списано (моделирование успешно или отменено); RELEASED — разморожено, кредиты полностью возвращены (ошибка моделирования и т. п.). Равно null, если заморозки не было
data.dataList[].rebuildInfo.credit.attemptIntegerРаунд моделирования, начиная с 1. Увеличивается на 1 только при повторном вызове API «Запуск задачи»; внутреннее перераспределение на платформе его не меняет. У каждого раунда свой freezeNo
data.dataList[].rebuildInfo.credit.areaM2DoubleПлощадь моделирования, оценённая алгоритмом, в квадратных метрах; основание для дополнительной заморозки. Равно null, пока алгоритм не передаст значение

Пример запроса

{
  "modelIdList": [100231987, 100231988]
}

Кредиты учётной записи

Запрашивает баланс кредитов учётной записи, связанной с appId.

Endpoint

POST /open-apis/spatial-model/v1/credit/info

Ограничения

ПараметрОграничение
Объект запросаКредитный счёт учётной записи, связанной с appId; идентификатор пользователя не нужен
Счёт не открытЕсли кредиты ещё ни разу не начислялись, все балансы равны 0; это не считается ошибкой
АктуальностьВозвращается баланс в реальном времени на момент запроса, без кеширования
Параллельные запросы10 запросов / с

Параметры запроса

Бизнес-параметров нет. Передайте пустой объект {}.

Ответ

ИмяТипЗначение
data.availableCreditLongДоступные кредиты, которые можно использовать сейчас
data.frozenCreditLongЗамороженные кредиты: зарезервированы, но ещё не рассчитаны
data.totalCreditLongВсего кредитов, равно availableCredit плюс frozenCredit

Пример ответа

{
  "code": 0,
  "msg": "success",
  "data": {
    "bizCode": 0,
    "bizMsg": "",
    "availableCredit": 8500,
    "frozenCredit": 1500,
    "totalCredit": 10000
  }
}

Примечание: этот API только запрашивает баланс кредитов учётной записи. Правила списания кредитов за задачи моделирования (момент списания и основание расчёта) будут определены и описаны в следующей версии. В текущей версии значения, которые возвращает этот API, не влияют на вызовы API моделирования.

Скачивание результатов моделирования

Выдаёт временные ссылки для скачивания результатов моделирования. Их состав описан в разделе Результаты моделирования.

Endpoint

POST /open-apis/spatial-model/v1/model/data/download

Ограничения

ПараметрОграничение
Предварительное условиеЗадача должна быть в статусе «Моделирование завершено» (8)
Срок действия ссылокПодписанные временные ссылки; скачивайте файлы сразу после получения ссылок и не сохраняйте их
Параллельные запросы10 запросов / с

Параметры запроса

ПараметрЗначениеПравилоОбязательныйПо умолчанию
modelIdID задачи моделирования—ДаНет
typeТип результатаDXF, GLB, BLEND, RVTНетЕсли не указан, возвращаются все созданные результаты: DXF / GLB / BLEND, а также RVT, если он есть

Ответ

ИмяТипЗначение
data.dataListList<String>Ссылки для скачивания результатов моделирования. Подписанные временные ссылки, не сохраняйте их

Пример запроса

{
  "modelId": 100231987,
  "type": "GLB"
}

Удаление задачи

Удаляет задачу моделирования и связанные с ней данные.

Endpoint

POST /open-apis/spatial-model/v1/model/del

Ограничения

ПараметрОграничение
Ограничение по статусуЗадачи в статусе «Моделирование» (7) удалить нельзя
ПоследствияТакже удаляются загруженные входные данные и результаты моделирования; действие необратимо
Параллельные запросы10 запросов / с

Параметры запроса

ПараметрЗначениеПравилоОбязательныйПо умолчанию
modelIdID задачи моделирования—ДаНет

Ответ

Возвращается только Единая структура ответа.

Пример запроса

{
  "modelId": 100231987
}

Примечание: удаление необратимо; входные данные и результаты моделирования удаляются вместе с задачей. Добавьте на своей стороне повторное подтверждение.