Method: photoSequence.create

После того как клиент завершает загрузку PhotoSequence с возвращенным UploadRef , photoSequence.create извлекает последовательность 360 фотографий из видео или расширяемых метаданных устройства (XDM, http://www.xdm.org/ ) для публикации в Street View на Google Maps.

photoSequence.create возвращает Operation с идентификатором PhotoSequence , заданным в поле Operation.name .

Этот метод возвращает следующие коды ошибок:

HTTP-запрос

POST https://streetviewpublish.googleapis.com/v1/photoSequence

URL использует синтаксис перекодировки gRPC .

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

Параметры
inputType

enum ( InputType )

Обязательно. Форма ввода PhotoSequence .

Текст запроса

Тело запроса содержит экземпляр PhotoSequence .

Тело ответа

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

Области авторизации

Требуется следующая область OAuth:

  • https://www.googleapis.com/auth/streetviewpublish

Для получения более подробной информации см.OAuth 2.0 Overview .

Фотопоследовательность

Последовательность из 360 фотографий вместе с метаданными.

JSON-представление
{
  "id": string,
  "photos": [
    {
      object (Photo)
    }
  ],
  "uploadReference": {
    object (UploadRef)
  },
  "captureTimeOverride": string,
  "uploadTime": string,
  "rawGpsTimeline": [
    {
      object (Pose)
    }
  ],
  "gpsSource": enum (GpsSource),
  "imu": {
    object (Imu)
  },
  "processingState": enum (ProcessingState),
  "failureReason": enum (ProcessingFailureReason),
  "failureDetails": {
    object (ProcessingFailureDetails)
  },
  "distanceMeters": number,
  "sequenceBounds": {
    object (LatLngBounds)
  },
  "viewCount": string,
  "filename": string
}
Поля
id

string

Только вывод. Уникальный идентификатор последовательности фотографий. Он также служит идентификатором длительной операции, если загрузка выполняется асинхронно.

photos[]

object ( Photo )

Только вывод. Фотографии с увеличивающимися временными метками.

uploadReference

object ( UploadRef )

Только ввод. Требуется при создании фотопоследовательности. Имя ресурса, куда загружаются байты фотопоследовательности (в виде видео).

captureTimeOverride

string ( Timestamp format)

Необязательно. Абсолютное время начала съёмки последовательности фотографий. Если последовательность фотографий — это видео, это время начала видео. Если это поле заполнено, оно переопределяет время съёмки в видео или XDM-файле.

Использует RFC 3339, согласно которому сгенерированный вывод всегда будет нормализован по оси Z и содержать 0, 3, 6 или 9 знаков после запятой. Также допускаются смещения, отличные от «Z». Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

uploadTime

string ( Timestamp format)

Только вывод. Время создания этой последовательности фотографий в сервисе uSV Store.

Использует RFC 3339, согласно которому сгенерированный вывод всегда будет нормализован по оси Z и содержать 0, 3, 6 или 9 знаков после запятой. Также допускаются смещения, отличные от «Z». Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

rawGpsTimeline[]

object ( Pose )

Только входные данные. Необработанные измерения GPS с увеличивающимися временными метками с устройства, которые не синхронизированы по времени с каждой фотографией. Эти необработанные измерения будут использоваться для определения позы каждого кадра. Требуется для входных данных, если InputType — VIDEO, а необработанные измерения GPS не находятся в дорожке метаданных движения камеры (CAMM). Пользователь может указать приоритет с помощью gpsSource, если необработанные измерения GPS доступны как в rawGpsTimeline, так и в дорожке метаданных движения камеры (CAMM).

gpsSource

enum ( GpsSource )

Только ввод. Если и rawGpsTimeline, и трек метаданных движения камеры (CAMM) содержат измерения GPS, укажите, какой из них имеет приоритет.

imu

object ( Imu )

Только входные данные. Данные трёхкоординатного инерциального блока (IMU) для сбора данных. Если эти данные слишком велики для размещения в запросе, их следует поместить на дорожку CAMM для видео. Эти данные всегда имеют приоритет над эквивалентными данными CAMM, если таковые имеются.

processingState

enum ( ProcessingState )

Только вывод. Состояние обработки этой последовательности.

failureReason

enum ( ProcessingFailureReason )

Только выходные данные. Если в этой последовательности processingState = FAILED, здесь будет указана причина сбоя. Если processingState имеет любое другое значение, это поле будет сброшено.

failureDetails

object ( ProcessingFailureDetails )

Только вывод. Если для этой последовательности задан параметр failureReason , она может содержать дополнительную информацию об ошибке.

distanceMeters

number

Только вывод. Расчётное расстояние последовательности фотографий в метрах.

sequenceBounds

object ( LatLngBounds )

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

viewCount

string ( int64 format)

Только вывод. Общее количество просмотров всех опубликованных изображений в этой фотопоследовательности.

filename

string

Только вывод. Имя файла загрузки. Не включает путь к каталогу. Доступно только в том случае, если последовательность была загружена на платформу, предоставляющую имя файла.

GpsSource

Основной источник измерений GPS.

Перечисления
PHOTO_SEQUENCE GPS в rawGpsTimeline имеет приоритет, если он существует.
CAMERA_MOTION_METADATA_TRACK Приоритет имеет GPS в треке метаданных движения камеры (CAMM), если он существует.

Иму

Данные ИМУ с датчиков устройства.

JSON-представление
{
  "accelMpsps": [
    {
      object (Measurement3d)
    }
  ],
  "gyroRps": [
    {
      object (Measurement3d)
    }
  ],
  "magUt": [
    {
      object (Measurement3d)
    }
  ]
}
Поля
accelMpsps[]

object ( Measurement3d )

Показания акселерометра в метрах/сек^2 с увеличивающимися временными метками с устройств.

gyroRps[]

object ( Measurement3d )

Измерения гироскопа в радианах/сек с увеличением временных меток с устройств.

magUt[]

object ( Measurement3d )

Измерения магнитного поля магнитометром в микротеслах (мкТл) с увеличением временных меток с устройств.

Измерение3D

Стандартный пример 3D-измерений.

JSON-представление
{
  "captureTime": string,
  "x": number,
  "y": number,
  "z": number
}
Поля
captureTime

string ( Timestamp format)

Временная метка измерения IMU.

Использует RFC 3339, согласно которому сгенерированный вывод всегда будет нормализован по оси Z и содержать 0, 3, 6 или 9 знаков после запятой. Также допускаются смещения, отличные от «Z». Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

x

number

Измерение датчика по оси x.

y

number

Измерение датчика по оси Y.

z

number

Измерение датчика по оси z.

ProcessingState

Состояние обработки последовательности. Состояния изменяются следующим образом:

     +-------------------------+
     |                         |
 +---v---+  +----------+  +----+----+
 |PENDING+-->PROCESSING+-->PROCESSED|
 +---+---+  +----+-----+  +----+----+
     |           |             |
     |        +--v---+         |
     +-------->FAILED<---------+
              +------+

Последовательность может перейти в состояние FAILED из любого состояния. Кроме того, обработанная последовательность может быть обработана повторно в любой момент.

Перечисления
PROCESSING_STATE_UNSPECIFIED Состояние не указано, это значение по умолчанию.
PENDING Обработка последовательности еще не началась.
PROCESSING В настоящее время последовательность находится в обработке.
PROCESSED Последовательность завершена, включая уточнение позиции.
FAILED Последовательность не была обработана. Подробнее см. FailureReason.

ПричинаОшибкиОбработки

Возможные причины, по которым эта PhotoSequence не была обработана.

Перечисления
PROCESSING_FAILURE_REASON_UNSPECIFIED Причина сбоя не указана, это значение по умолчанию.
LOW_RESOLUTION Разрешение видеокадра слишком маленькое.
DUPLICATE Это видео уже было загружено ранее.
INSUFFICIENT_GPS Слишком мало точек GPS.
NO_OVERLAP_GPS Нет перекрытия между временными рамками GPS-трека и временными рамками видео.
INVALID_GPS GPS недействителен (например, все точки GPS находятся в точке (0,0))
FAILED_TO_REFINE_POSITIONS Последовательность фотографий не удалось точно локализовать в мире.
TAKEDOWN Последовательность была удалена по политическим причинам.
CORRUPT_VIDEO Видеофайл был поврежден или не поддается декодированию.
INTERNAL Произошел постоянный сбой в базовой системе.
INVALID_VIDEO_FORMAT Формат видео недействителен или не поддерживается.
INVALID_VIDEO_DIMENSIONS Найдено недопустимое соотношение сторон изображения.
INVALID_CAPTURE_TIME Неверное время съёмки. Временные метки были из будущего.
GPS_DATA_GAP Данные GPS содержат пробел длительностью более 5 секунд.
JUMPY_GPS Данные GPS слишком нестабильны для обработки.
INVALID_IMU Данные IMU (акселерометра, гироскопа и т. д.) недействительны. Возможно, в них отсутствуют обязательные поля (x, y, z или время), они не отформатированы или имеют другую проблему, препятствующую их анализу нашими системами.
INSUFFICIENT_IMU Слишком мало очков ИДУ.
INSUFFICIENT_OVERLAP_TIME_SERIES Недостаточное перекрытие временных интервалов между данными GPS, IMU и другими временными рядами.
IMU_DATA_GAP Данные IMU (акселерометра, гироскопа и т. д.) содержат пробелы длительностью более 0,1 секунды.
UNSUPPORTED_CAMERA Камера не поддерживается.
NOT_OUTDOORS Некоторые рамы находились внутри помещения, что не имело опоры.
INSUFFICIENT_VIDEO_FRAMES Недостаточно видеокадров.
INSUFFICIENT_MOVEMENT Недостаточно данных о перемещении.
MAST_DOWN Мачта опущена.
CAMERA_COVERED Камера закрыта.

ПодробностиОбработкиОшибки

Дополнительные сведения, сопровождающие перечисление ProcessingFailureReason. Это сообщение всегда должно использоваться вместе с ProcessingFailureReason, а значение oneof, заданное в этом сообщении, должно совпадать с FailureReason.

JSON-представление
{

  // Union field details can be only one of the following:
  "insufficientGpsDetails": {
    object (InsufficientGpsFailureDetails)
  },
  "gpsDataGapDetails": {
    object (GpsDataGapFailureDetails)
  },
  "imuDataGapDetails": {
    object (ImuDataGapFailureDetails)
  },
  "notOutdoorsDetails": {
    object (NotOutdoorsFailureDetails)
  },
  "noOverlapGpsDetails": {
    object (NoOverlapGpsFailureDetails)
  }
  // End of list of possible types for union field details.
}
Поля
details о поле объединения. Будет установлен только один набор сведений, который должен соответствовать соответствующему перечислению в ProcessingFailureReason. details могут быть только одним из следующих:
insufficientGpsDetails

object ( InsufficientGpsFailureDetails )

См. InsufficientGpsFailureDetails.

gpsDataGapDetails

object ( GpsDataGapFailureDetails )

См. GpsDataGapFailureDetails.

imuDataGapDetails

object ( ImuDataGapFailureDetails )

См. ImuDataGapFailureDetails.

notOutdoorsDetails

object ( NotOutdoorsFailureDetails )

См. NotOutdoorsFailureDetails.

noOverlapGpsDetails

object ( NoOverlapGpsFailureDetails )

См. NoOverlapGpsFailureDetails.

НедостаточноGpsFailureDetails

Подробная информация о ProcessingFailureReason#INSUFFICIENT_GPS.

JSON-представление
{
  "gpsPointsFound": integer
}
Поля
gpsPointsFound

integer

Количество точек GPS, найденных на видео.

GpsDataGapFailureDetails

Подробная информация по ProcessingFailureReason#GPS_DATA_GAP. При наличии нескольких пропусков данных GPS здесь отображается только тот, который имеет наибольшую продолжительность.

JSON-представление
{
  "gapDuration": string,
  "gapStartTime": string
}
Поля
gapDuration

string ( Duration format)

Продолжительность обнаруженного пробела в данных GPS.

Длительность в секундах, содержащая до девяти знаков после запятой, заканчивается на « s ». Пример: "3.5s" .

gapStartTime

string ( Duration format)

Относительное время (от начала видеопотока), когда начался разрыв.

Длительность в секундах, содержащая до девяти знаков после запятой, заканчивается на « s ». Пример: "3.5s" .

ImuDataGapFailureDetails

Подробная информация по ProcessingFailureReason#IMU_DATA_GAP. При наличии нескольких пропусков данных IMU здесь отображается только тот, который имеет наибольшую продолжительность.

JSON-представление
{
  "gapDuration": string,
  "gapStartTime": string
}
Поля
gapDuration

string ( Duration format)

Длительность обнаруженного пробела в данных ИМУ.

Длительность в секундах, содержащая до девяти знаков после запятой, заканчивается на « s ». Пример: "3.5s" .

gapStartTime

string ( Duration format)

Относительное время (от начала видеопотока), когда начался разрыв.

Длительность в секундах, содержащая до девяти знаков после запятой, заканчивается на « s ». Пример: "3.5s" .

НеНа открытом воздухеНеисправностьПодробности

Подробности по ProcessingFailureReason#NOT_OUTDOORS. Если обнаружено несколько внутренних кадров, здесь записывается первый кадр.

JSON-представление
{
  "startTime": string
}
Поля
startTime

string ( Duration format)

Относительное время (от начала видеопотока), когда был обнаружен кадр внутри помещения.

Длительность в секундах, содержащая до девяти знаков после запятой, заканчивается на « s ». Пример: "3.5s" .

НетПерекрытияGpsНеисправностьПодробности

Подробная информация, относящаяся к PhotoSequenceProcessingFailureReason#NO_OVERLAP_GPS.

JSON-представление
{
  "gpsStartTime": string,
  "gpsEndTime": string,
  "videoStartTime": string,
  "videoEndTime": string
}
Поля
gpsStartTime

string ( Timestamp format)

Время первой зафиксированной точки GPS.

Использует RFC 3339, согласно которому сгенерированный вывод всегда будет нормализован по оси Z и содержать 0, 3, 6 или 9 знаков после запятой. Также допускаются смещения, отличные от «Z». Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

gpsEndTime

string ( Timestamp format)

Время последней зафиксированной точки GPS.

Использует RFC 3339, согласно которому сгенерированный вывод всегда будет нормализован по оси Z и содержать 0, 3, 6 или 9 знаков после запятой. Также допускаются смещения, отличные от «Z». Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

videoStartTime

string ( Timestamp format)

Время начала видео.

Использует RFC 3339, согласно которому сгенерированный вывод всегда будет нормализован по оси Z и содержать 0, 3, 6 или 9 знаков после запятой. Также допускаются смещения, отличные от «Z». Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

videoEndTime

string ( Timestamp format)

Время окончания видео.

Использует RFC 3339, согласно которому сгенерированный вывод всегда будет нормализован по оси Z и содержать 0, 3, 6 или 9 знаков после запятой. Также допускаются смещения, отличные от «Z». Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

LatLngBounds

Прямоугольник в географических координатах.

JSON-представление
{
  "southwest": {
    object (LatLng)
  },
  "northeast": {
    object (LatLng)
  }
}
Поля
southwest

object ( LatLng )

Юго-западный угол этих границ.

northeast

object ( LatLng )

Северо-восточный угол этих границ.

Тип ввода

Формы ввода PhotoSequence .

Перечисления
INPUT_TYPE_UNSPECIFIED Не указано. Сервер вернёт google.rpc.Code.INVALID_ARGUMENT .
VIDEO Видео 360.
XDM Расширяемые метаданные устройства, http://www.xdm.org