Method: photoSequence.create

当客户端完成上传包含返回的 UploadRefPhotoSequence 后,photoSequence.create 会从视频或可扩展设备元数据 (XDM,http://www.xdm.org/) 中提取一系列 360 度照片,以便发布到 Google 地图上的街景中。

photoSequence.create 会返回一个 Operation,其中 PhotoSequence ID 设置在 Operation.name 字段中。

此方法会返回以下错误代码:

HTTP 请求

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

网址采用 gRPC 转码语法。

查询参数

参数
inputType

enum (InputType)

必需。PhotoSequence 的输入形式。

请求正文

请求正文包含一个 PhotoSequence 实例。

响应正文

如果成功,响应正文将包含一个新创建的 Operation 实例。

授权范围

需要以下 OAuth 范围:

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

如需了解详情,请参阅 OAuth 2.0 Overview

PhotoSequence

一系列 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

仅限输出。照片序列的唯一标识符。如果上传是异步执行的,此参数也会充当长时间运行的操作 ID。

photos[]

object (Photo)

仅限输出。时间戳递增的照片。

uploadReference

object (UploadRef)

仅限输入。创建照片序列时必须指定。上传照片序列(以视频形式)的字节的资源名称。

captureTimeOverride

string (Timestamp format)

可选。开始拍摄照片序列的绝对时间。如果照片序列是视频,则这是视频的开始时间。如果输入中填充了此字段,则会替换视频或 XDM 文件中的拍摄时间。

采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 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 规范化(即转换为 UTC 零时区格式并在末尾附加 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) 中,则在输入中是必需的。如果原始 GPS 测量数据同时在 rawGpsTimeline 和相机运动元数据轨道 (CAMM) 中提供,用户可以使用 gpsSource 指示哪个优先。

gpsSource

enum (GpsSource)

仅限输入。如果原始 GPS 时间轴和相机运动元数据轨道 (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)

仅限输出。相应 PhotoSequence 中所有已发布图片获得的观看总次数。

filename

string

仅限输出。上传文件的文件名。不包含目录路径。仅当序列上传到提供文件名的平台时才可用。

GpsSource

GPS 测量的主要来源。

枚举
PHOTO_SEQUENCE 如果存在,则优先使用 rawGpsTimeline 中的 GPS。
CAMERA_MOTION_METADATA_TRACK 如果存在,则以相机运动元数据轨道 (CAMM) 中的 GPS 为准。

Imu

来自设备传感器的 IMU 数据。

JSON 表示法
{
  "accelMpsps": [
    {
      object (Measurement3d)
    }
  ],
  "gyroRps": [
    {
      object (Measurement3d)
    }
  ],
  "magUt": [
    {
      object (Measurement3d)
    }
  ]
}
字段
accelMpsps[]

object (Measurement3d)

设备中以米/秒^2 为单位的加速度计测量值,时间戳不断增加。

gyroRps[]

object (Measurement3d)

来自设备的陀螺仪测量结果(以弧度/秒为单位),时间戳不断增加。

magUt[]

object (Measurement3d)

磁强计测量结果,以微特斯拉 (uT) 为单位,时间戳从设备开始递增。

Measurement3d

一个通用的 3D 测量示例。

JSON 表示法
{
  "captureTime": string,
  "x": number,
  "y": number,
  "z": number
}
字段
captureTime

string (Timestamp format)

IMU 测量的时间戳。

采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 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。

ProcessingFailureReason

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 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 摄像头被遮挡。

ProcessingFailureDetails

与 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。

InsufficientGpsFailureDetails

与 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)

检测到的 IMU 数据中的缺口时长。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

gapStartTime

string (Duration format)

间隙开始时的相对时间(从视频流开始时算起)。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

NotOutdoorsFailureDetails

与 ProcessingFailureReason#NOT_OUTDOORS 相关的详细信息。如果找到多个室内帧,则在此处记录第一个帧。

JSON 表示法
{
  "startTime": string
}
字段
startTime

string (Duration format)

发现室内帧时的相对时间(从视频流开始时算起)。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

NoOverlapGpsFailureDetails

与 PhotoSequenceProcessingFailureReason#NO_OVERLAP_GPS 相关的详细信息。

JSON 表示法
{
  "gpsStartTime": string,
  "gpsEndTime": string,
  "videoStartTime": string,
  "videoEndTime": string
}
字段
gpsStartTime

string (Timestamp format)

首次记录的 GPS 点的时间。

采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 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 规范化(即转换为 UTC 零时区格式并在末尾附加 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 规范化(即转换为 UTC 零时区格式并在末尾附加 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 规范化(即转换为 UTC 零时区格式并在末尾附加 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)

相应边界的东北角。

InputType

PhotoSequence 的输入形式。

枚举
INPUT_TYPE_UNSPECIFIED 未指定。服务器将返回 google.rpc.Code.INVALID_ARGUMENT
VIDEO 360 度视频。
XDM 可扩展设备元数据,http://www.xdm.org