Method: photoSequence.create

客户端使用返回的 UploadRef 完成 PhotoSequence 的上传后,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。

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 和相机运动元数据轨道 (CAMM) 中同时提供了原始 GPS 测量结果,用户可以使用 gpsSource 指示哪个优先。

gpsSource

enum (GpsSource)

仅限输入。如果 rawGpsTimeline 和相机运动元数据轨迹 (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 优先(如果存在)。
CAMERA_MOTION_METADATA_TRACK 相机运动元数据轨道 (CAMM) 中的 GPS 优先(如果存在)。

伊姆

来自设备传感器的 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)

请参阅 InfullGpsFailureDetails。

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