- HTTP 请求
- 查询参数
- 请求正文
- 响应正文
- 授权范围
- PhotoSequence
- GpsSource
- Imu
- Measurement3d
- ProcessingState
- ProcessingFailureReason
- ProcessingFailureDetails
- InsufficientGpsFailureDetails
- GpsDataGapFailureDetails
- ImuDataGapFailureDetails
- NotOutdoorsFailureDetails
- NoOverlapGpsFailureDetails
- LatLngBounds
- InputType
- 试试看!
当客户端完成上传包含返回的 UploadRef 的 PhotoSequence 后,photoSequence.create 会从视频或可扩展设备元数据 (XDM,http://www.xdm.org/) 中提取一系列 360 度照片,以便发布到 Google 地图上的街景中。
photoSequence.create 会返回一个 Operation,其中 PhotoSequence ID 设置在 Operation.name 字段中。
此方法会返回以下错误代码:
- 如果请求格式不正确,则为
google.rpc.Code.INVALID_ARGUMENT。 - 如果上传引用不存在,则返回
google.rpc.Code.NOT_FOUND。
HTTP 请求
POST https://streetviewpublish.googleapis.com/v1/photoSequence
网址采用 gRPC 转码语法。
查询参数
| 参数 | |
|---|---|
inputType |
必需。 |
请求正文
请求正文包含一个 PhotoSequence 实例。
响应正文
如果成功,响应正文将包含一个新创建的 Operation 实例。
授权范围
需要以下 OAuth 范围:
https://www.googleapis.com/auth/streetviewpublish
如需了解详情,请参阅 OAuth 2.0 Overview。
PhotoSequence
一系列 360 度全景照片以及元数据。
| JSON 表示法 |
|---|
{ "id": string, "photos": [ { object ( |
| 字段 | |
|---|---|
id |
仅限输出。照片序列的唯一标识符。如果上传是异步执行的,此参数也会充当长时间运行的操作 ID。 |
photos[] |
仅限输出。时间戳递增的照片。 |
uploadReference |
仅限输入。创建照片序列时必须指定。上传照片序列(以视频形式)的字节的资源名称。 |
captureTimeOverride |
可选。开始拍摄照片序列的绝对时间。如果照片序列是视频,则这是视频的开始时间。如果输入中填充了此字段,则会替换视频或 XDM 文件中的拍摄时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
uploadTime |
仅限输出。相应照片序列在 uSV Store 服务中创建的时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
rawGpsTimeline[] |
仅限输入。来自设备的原始 GPS 测量数据,时间戳不断增加,但未与每张照片的时间同步。这些原始测量数据将用于推断每个帧的姿势。如果 InputType 为 VIDEO 且原始 GPS 测量数据不在相机运动元数据轨道 (CAMM) 中,则在输入中是必需的。如果原始 GPS 测量数据同时在 rawGpsTimeline 和相机运动元数据轨道 (CAMM) 中提供,用户可以使用 gpsSource 指示哪个优先。 |
gpsSource |
仅限输入。如果原始 GPS 时间轴和相机运动元数据轨道 (CAMM) 都包含 GPS 测量数据,请指明哪个优先。 |
imu |
仅限输入。集合的三轴 IMU 数据。如果此数据过大,无法放入请求中,则应将其放入视频的 CAMM 轨道中。此数据始终优先于等效的 CAMM 数据(如果存在)。 |
processingState |
仅限输出。相应序列的处理状态。 |
failureReason |
仅限输出。如果此序列的 processingState 为 FAILED,则此属性将包含失败原因。如果 processingState 为任何其他值,则此字段将处于未设置状态。 |
failureDetails |
仅限输出。如果此序列设置了 |
distanceMeters |
仅限输出。照片序列的计算距离(以米为单位)。 |
sequenceBounds |
仅限输出。一个矩形框,用于封装此照片序列中的每张图片。 |
viewCount |
仅限输出。相应 PhotoSequence 中所有已发布图片获得的观看总次数。 |
filename |
仅限输出。上传文件的文件名。不包含目录路径。仅当序列上传到提供文件名的平台时才可用。 |
GpsSource
GPS 测量的主要来源。
| 枚举 | |
|---|---|
PHOTO_SEQUENCE |
如果存在,则优先使用 rawGpsTimeline 中的 GPS。 |
CAMERA_MOTION_METADATA_TRACK |
如果存在,则以相机运动元数据轨道 (CAMM) 中的 GPS 为准。 |
Imu
来自设备传感器的 IMU 数据。
| JSON 表示法 |
|---|
{ "accelMpsps": [ { object ( |
| 字段 | |
|---|---|
accelMpsps[] |
设备中以米/秒^2 为单位的加速度计测量值,时间戳不断增加。 |
gyroRps[] |
来自设备的陀螺仪测量结果(以弧度/秒为单位),时间戳不断增加。 |
magUt[] |
磁强计测量结果,以微特斯拉 (uT) 为单位,时间戳从设备开始递增。 |
Measurement3d
一个通用的 3D 测量示例。
| JSON 表示法 |
|---|
{ "captureTime": string, "x": number, "y": number, "z": number } |
| 字段 | |
|---|---|
captureTime |
IMU 测量的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
x |
X 轴上的传感器测量值。 |
y |
Y 轴上的传感器测量值。 |
z |
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。系统只会设置一组详细信息,并且这些信息必须与 ProcessingFailureReason 中的相应枚举匹配。details 只能是下列其中一项: |
|
insufficientGpsDetails |
请参阅 InsufficientGpsFailureDetails。 |
gpsDataGapDetails |
请参阅 GpsDataGapFailureDetails。 |
imuDataGapDetails |
请参阅 ImuDataGapFailureDetails。 |
notOutdoorsDetails |
请参阅 NotOutdoorsFailureDetails。 |
noOverlapGpsDetails |
请参阅 NoOverlapGpsFailureDetails。 |
InsufficientGpsFailureDetails
与 ProcessingFailureReason#INSUFFICIENT_GPS 相关的详细信息。
| JSON 表示法 |
|---|
{ "gpsPointsFound": integer } |
| 字段 | |
|---|---|
gpsPointsFound |
视频中找到的 GPS 点数。 |
GpsDataGapFailureDetails
与 ProcessingFailureReason#GPS_DATA_GAP 相关的详细信息。如果存在多个 GPS 数据间隙,则此处仅报告持续时间最长的间隙。
| JSON 表示法 |
|---|
{ "gapDuration": string, "gapStartTime": string } |
| 字段 | |
|---|---|
gapDuration |
发现的 GPS 数据缺口的时长。 该时长以秒为单位,最多包含九个小数位,以“ |
gapStartTime |
间隙开始时的相对时间(从视频流开始时算起)。 该时长以秒为单位,最多包含九个小数位,以“ |
ImuDataGapFailureDetails
与 ProcessingFailureReason#IMU_DATA_GAP 相关的详细信息。如果存在多个 IMU 数据缺口,此处仅报告持续时间最长的缺口。
| JSON 表示法 |
|---|
{ "gapDuration": string, "gapStartTime": string } |
| 字段 | |
|---|---|
gapDuration |
检测到的 IMU 数据中的缺口时长。 该时长以秒为单位,最多包含九个小数位,以“ |
gapStartTime |
间隙开始时的相对时间(从视频流开始时算起)。 该时长以秒为单位,最多包含九个小数位,以“ |
NotOutdoorsFailureDetails
与 ProcessingFailureReason#NOT_OUTDOORS 相关的详细信息。如果找到多个室内帧,则在此处记录第一个帧。
| JSON 表示法 |
|---|
{ "startTime": string } |
| 字段 | |
|---|---|
startTime |
发现室内帧时的相对时间(从视频流开始时算起)。 该时长以秒为单位,最多包含九个小数位,以“ |
NoOverlapGpsFailureDetails
与 PhotoSequenceProcessingFailureReason#NO_OVERLAP_GPS 相关的详细信息。
| JSON 表示法 |
|---|
{ "gpsStartTime": string, "gpsEndTime": string, "videoStartTime": string, "videoEndTime": string } |
| 字段 | |
|---|---|
gpsStartTime |
首次记录的 GPS 点的时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
gpsEndTime |
上次记录的 GPS 点的时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
videoStartTime |
视频的开始时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
videoEndTime |
视频的结束时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
LatLngBounds
地理坐标中的矩形。
| JSON 表示法 |
|---|
{ "southwest": { object ( |
| 字段 | |
|---|---|
southwest |
相应边界的西南角。 |
northeast |
相应边界的东北角。 |
InputType
PhotoSequence 的输入形式。
| 枚举 | |
|---|---|
INPUT_TYPE_UNSPECIFIED |
未指定。服务器将返回 google.rpc.Code.INVALID_ARGUMENT。 |
VIDEO |
360 度视频。 |
XDM |
可扩展设备元数据,http://www.xdm.org |