Method: photoSequence.create

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

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

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

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 概览

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 还可用作长时间运行的操作 ID。

photos[]

object (Photo)

仅限输出。时间戳不断增加的照片。

uploadReference

object (UploadRef)

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

captureTimeOverride

string (Timestamp format)

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

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

uploadTime

string (Timestamp format)

仅限输出。在 uSV 商店服务中创建此照片序列的时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

rawGpsTimeline[]

object (Pose)

仅限输入。未与每张照片同步的设备时间戳的原始 GPS 测量值。这些原始测量值将用于推断每一帧的姿态。当 InputType 为 VIDEO 且原始 GPS 测量不在相机运动元数据跟踪 (CAMM) 中时,输入中必需。如果 rawGpsTimeline 和 Camera Motion Metadata Track (CAMM) 中都提供了原始 GPS 测量值,用户可以使用 gpsSource 指定哪个优先级更高。

gpsSource

enum (GpsSource)

仅限输入。如果 rawGpsTimeline 和 Camera Motion Metadata Track (CAMM) 都包含 GPS 测量值,请指明哪一个的优先级更高。

imu

object (Imu)

仅限输入。采集的三轴 IMU 数据。如果这些数据太大而无法在请求中放入,应将其放入视频的 CAMM 轨道中。此类数据始终优先于等效的 CAMM 数据(如果存在)。

processingState

enum (ProcessingState)

仅限输出。此序列的处理状态。

failureReason

enum (ProcessingFailureReason)

仅限输出。如果此序列的 processState = FAILED,则将包含失败的原因。如果 processState 为任何其他值,将取消设置此字段。

failureDetails

object (ProcessingFailureDetails)

仅限输出。如果此序列设置了 failureReason,可能包含有关失败的更多详细信息。

distanceMeters

number

仅限输出。计算出的照片序列距离(以米为单位)。

sequenceBounds

object (LatLngBounds)

仅限输出。用于封装照片序列中所有图片的矩形框。

viewCount

string (int64 format)

仅限输出。此 PhotoSequence 中的所有已发布图片已获得的总浏览次数。

filename

string

仅限输出。上传文件的文件名。不包括目录路径。仅当相应序列是在提供相应文件名的平台上上传时,此字段才可用。

GpsSource

GPS 测量数据的主要来源。

枚举
PHOTO_SEQUENCE 如果 rawGpsTimeline 中的 GPS 存在,该 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) 为单位)随设备的时间戳不断增加。

3D 效果衡量

通用 3D 测量示例。

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

string (Timestamp format)

IMU 测量结果的时间戳。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

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 移动数据不足。

ProcessingFailureDetails

伴随 ProcessingFailureReason 枚举提供的其他详细信息。此消息应始终与 ProcessingFailureReason 结合使用,并且此消息中设置的其中一个值应与 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)

请参阅 InfiniteGpsFailureDetails。

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 点的时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

gpsEndTime

string (Timestamp format)

上次记录 GPS 点的时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

videoStartTime

string (Timestamp format)

视频的开始时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

videoEndTime

string (Timestamp format)

视频的结束时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

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