Method: photoSequence.create

Depois que o cliente termina de fazer upload do PhotoSequence com o UploadRef retornado, o photoSequence.create extrai uma sequência de fotos em 360 graus de um vídeo ou metadados de dispositivos extensíveis (XDM, http://www.xdm.org/) para publicação no Street View do Google Maps.

photoSequence.create retorna um Operation, com o ID PhotoSequence definido no campo Operation.name.

Esse método retorna os seguintes códigos de erro:

Solicitação HTTP

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

O URL usa a sintaxe de transcodificação gRPC.

Parâmetros de consulta

Parâmetros
inputType

enum (InputType)

Obrigatório. O formulário de entrada de PhotoSequence.

Corpo da solicitação

O corpo da solicitação contém uma instância de PhotoSequence.

Corpo da resposta

Se a solicitação for bem-sucedida, o corpo da resposta incluirá uma instância de Operation.

Escopos de autorização

Requer o seguinte escopo OAuth:

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

Para mais informações, consulte OAuth 2.0 Overview.

PhotoSequence

Uma sequência de fotos em 360° com metadados.

Representação 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
}
Campos
id

string

Apenas saída. Identificador exclusivo da sequência de fotos. Isso também funciona como um ID de operação de longa duração se o upload for realizado de forma assíncrona.

photos[]

object (Photo)

Apenas saída. Fotos com carimbos de data/hora crescentes.

uploadReference

object (UploadRef)

Somente entrada. Obrigatório ao criar uma sequência de fotos. O nome do recurso em que os bytes da sequência de fotos (na forma de vídeo) são enviados.

captureTimeOverride

string (Timestamp format)

Opcional. Tempo absoluto em que a sequência de fotos começa a ser capturada. Se a sequência de fotos for um vídeo, este será o horário de início dele. Se esse campo for preenchido na entrada, ele vai substituir o horário de captura no vídeo ou no arquivo XDM.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de "Z", outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

uploadTime

string (Timestamp format)

Apenas saída. O horário em que essa sequência de fotos foi criada no serviço uSV Store.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de "Z", outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

rawGpsTimeline[]

object (Pose)

Somente entrada. Medições brutas de GPS com carimbos de data/hora crescentes do dispositivo que não estão sincronizados com cada foto. Essas medições brutas serão usadas para inferir a postura de cada frame. Obrigatório na entrada quando InputType é VIDEO e as medições GPS brutas não estão na faixa de metadados de movimento da câmera (CAMM). O usuário pode indicar qual tem precedência usando gpsSource se as medições brutas de GPS forem fornecidas em rawGpsTimeline e na faixa de metadados de movimento da câmera (CAMM).

gpsSource

enum (GpsSource)

Somente entrada. Se rawGpsTimeline e a faixa de metadados de movimento da câmera (CAMM) contiverem medições de GPS, indique qual tem precedência.

imu

object (Imu)

Somente entrada. Dados da IMU de três eixos para a coleta. Se esses dados forem muito grandes para serem incluídos na solicitação, eles deverão ser colocados na faixa CAMM do vídeo. Esses dados sempre têm precedência sobre os dados equivalentes da CAMM, se existirem.

processingState

enum (ProcessingState)

Apenas saída. O estado de processamento desta sequência.

failureReason

enum (ProcessingFailureReason)

Apenas saída. Se essa sequência tiver "processingState = FAILED", ela vai conter o motivo da falha. Se o "processingState" for qualquer outro valor, esse campo não será definido.

failureDetails

object (ProcessingFailureDetails)

Apenas saída. Se essa sequência tiver failureReason definido, ela poderá conter mais detalhes sobre a falha.

distanceMeters

number

Apenas saída. A distância calculada da sequência de fotos em metros.

sequenceBounds

object (LatLngBounds)

Apenas saída. Uma caixa retangular que encapsula todas as imagens nesta sequência de fotos.

viewCount

string (int64 format)

Apenas saída. O número total de visualizações que todas as imagens publicadas nesta PhotoSequence receberam.

filename

string

Apenas saída. O nome do arquivo do upload. Não inclui o caminho do diretório. Disponível apenas se a sequência foi enviada em uma plataforma que fornece o nome do arquivo.

GpsSource

Principal fonte de medições de GPS.

Tipos enumerados
PHOTO_SEQUENCE O GPS em rawGpsTimeline tem precedência se existir.
CAMERA_MOTION_METADATA_TRACK O GPS na faixa de metadados de movimento da câmera (CAMM) tem precedência se existir.

Imu

Dados da unidade de medição inercial dos sensores do dispositivo.

Representação JSON
{
  "accelMpsps": [
    {
      object (Measurement3d)
    }
  ],
  "gyroRps": [
    {
      object (Measurement3d)
    }
  ],
  "magUt": [
    {
      object (Measurement3d)
    }
  ]
}
Campos
accelMpsps[]

object (Measurement3d)

As medições do acelerômetro em metros/seg^2 com carimbos de data/hora crescentes dos dispositivos.

gyroRps[]

object (Measurement3d)

As medições do giroscópio em radianos/segundo com carimbos de data/hora crescentes dos dispositivos.

magUt[]

object (Measurement3d)

As medições do magnetômetro do campo magnético em microtesla (uT) com carimbos de data/hora crescentes dos dispositivos.

Measurement3d

Um exemplo de medição 3D genérica.

Representação JSON
{
  "captureTime": string,
  "x": number,
  "y": number,
  "z": number
}
Campos
captureTime

string (Timestamp format)

O carimbo de data/hora da medição da IMU.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de "Z", outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

x

number

A medição do sensor no eixo x.

y

number

A medição do sensor no eixo y.

z

number

A medição do sensor no eixo z.

ProcessingState

O estado de processamento da sequência. Os estados mudam da seguinte forma:

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

A sequência pode mudar para FAILED de qualquer estado. Além disso, uma sequência processada pode ser reprocessada a qualquer momento.

Tipos enumerados
PROCESSING_STATE_UNSPECIFIED O estado não foi especificado. Esse é o valor padrão.
PENDING A sequência ainda não começou a ser processada.
PROCESSING A sequência está sendo processada.
PROCESSED A sequência terminou de ser processada, incluindo o refinamento da posição.
FAILED A sequência não foi processada. Consulte "FailureReason" para mais detalhes.

ProcessingFailureReason

Os possíveis motivos para a falha no processamento do PhotoSequence.

Tipos enumerados
PROCESSING_FAILURE_REASON_UNSPECIFIED O motivo da falha não foi especificado. Esse é o valor padrão.
LOW_RESOLUTION A resolução do frame do vídeo é muito baixa.
DUPLICATE Este vídeo já foi enviado.
INSUFFICIENT_GPS Não há pontos suficientes do GPS.
NO_OVERLAP_GPS Não há sobreposição entre o período do Monitoramento por GPS e o do vídeo.
INVALID_GPS O GPS é inválido (por exemplo, todos os pontos do GPS estão em (0,0))
FAILED_TO_REFINE_POSITIONS Não foi possível localizar com precisão a sequência de fotos no mundo.
TAKEDOWN A sequência foi removida por motivos de política.
CORRUPT_VIDEO O arquivo de vídeo estava corrompido ou não pôde ser decodificado.
INTERNAL Ocorreu uma falha permanente no sistema subjacente.
INVALID_VIDEO_FORMAT O formato do vídeo é inválido ou incompatível.
INVALID_VIDEO_DIMENSIONS Encontramos uma proporção inválida na imagem.
INVALID_CAPTURE_TIME A hora da captura é inválida. A data e a hora estavam no futuro.
GPS_DATA_GAP Os dados de GPS têm uma lacuna maior que 5 segundos.
JUMPY_GPS Os dados de GPS estão instáveis demais para serem processados.
INVALID_IMU Os dados da IMU (acelerômetro, giroscópio etc.) não são válidos. Eles podem não ter campos obrigatórios (x, y, z ou tempo), não estar formatados corretamente ou ter qualquer outro problema que impeça nossos sistemas de analisar.
INSUFFICIENT_IMU Há poucos pontos de IMU.
INSUFFICIENT_OVERLAP_TIME_SERIES Não há sobreposição suficiente no período entre os dados de GPS, IMU e outras séries temporais.
IMU_DATA_GAP Os dados da IMU (acelerômetro, giroscópio etc.) têm lacunas maiores que 0, 1 segundo.
UNSUPPORTED_CAMERA A câmera não é compatível.
NOT_OUTDOORS Alguns frames estavam em ambientes internos, o que não é permitido.
INSUFFICIENT_VIDEO_FRAMES Não há frames de vídeo suficientes.
INSUFFICIENT_MOVEMENT Não há dados de movimentação suficientes.
MAST_DOWN O mastro está abaixado.
CAMERA_COVERED A câmera está coberta.

ProcessingFailureDetails

Detalhes adicionais para acompanhar a enumeração ProcessingFailureReason. Essa mensagem sempre deve ser usada em conjunto com ProcessingFailureReason, e o valor oneof definido nessa mensagem precisa corresponder ao FailureReason.

Representação 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.
}
Campos
Campo de união details. Apenas um conjunto de detalhes será definido e precisará corresponder à enumeração correspondente em "ProcessingFailureReason". details pode ser apenas de um dos tipos a seguir:
insufficientGpsDetails

object (InsufficientGpsFailureDetails)

Consulte InsufficientGpsFailureDetails.

gpsDataGapDetails

object (GpsDataGapFailureDetails)

Consulte GpsDataGapFailureDetails.

imuDataGapDetails

object (ImuDataGapFailureDetails)

Consulte ImuDataGapFailureDetails.

notOutdoorsDetails

object (NotOutdoorsFailureDetails)

Consulte NotOutdoorsFailureDetails.

noOverlapGpsDetails

object (NoOverlapGpsFailureDetails)

Consulte NoOverlapGpsFailureDetails.

InsufficientGpsFailureDetails

Detalhes relacionados a ProcessingFailureReason#INSUFFICIENT_GPS.

Representação JSON
{
  "gpsPointsFound": integer
}
Campos
gpsPointsFound

integer

O número de pontos de GPS encontrados no vídeo.

GpsDataGapFailureDetails

Detalhes relacionados a "ProcessingFailureReason#GPS_DATA_GAP". Se houver várias lacunas nos dados de GPS, apenas a de maior duração será informada aqui.

Representação JSON
{
  "gapDuration": string,
  "gapStartTime": string
}
Campos
gapDuration

string (Duration format)

A duração da falha nos dados de GPS encontrada.

Duração em segundos com até nove dígitos fracionários, terminando em "s". Exemplo: "3.5s".

gapStartTime

string (Duration format)

Tempo relativo (desde o início do fluxo de vídeo) em que a lacuna começou.

Duração em segundos com até nove dígitos fracionários, terminando em "s". Exemplo: "3.5s".

ImuDataGapFailureDetails

Detalhes relacionados a ProcessingFailureReason#IMU_DATA_GAP. Se houver várias falhas nos dados da IMU, apenas a de maior duração será informada aqui.

Representação JSON
{
  "gapDuration": string,
  "gapStartTime": string
}
Campos
gapDuration

string (Duration format)

A duração da lacuna encontrada nos dados da IMU.

Duração em segundos com até nove dígitos fracionários, terminando em "s". Exemplo: "3.5s".

gapStartTime

string (Duration format)

Tempo relativo (desde o início do fluxo de vídeo) em que a lacuna começou.

Duração em segundos com até nove dígitos fracionários, terminando em "s". Exemplo: "3.5s".

NotOutdoorsFailureDetails

Detalhes relacionados a "ProcessingFailureReason#NOT_OUTDOORS". Se houver vários frames internos, o primeiro será registrado aqui.

Representação JSON
{
  "startTime": string
}
Campos
startTime

string (Duration format)

Tempo relativo (desde o início do stream de vídeo) em que um frame interno foi encontrado.

Duração em segundos com até nove dígitos fracionários, terminando em "s". Exemplo: "3.5s".

NoOverlapGpsFailureDetails

Detalhes relacionados a PhotoSequenceProcessingFailureReason#NO_OVERLAP_GPS.

Representação JSON
{
  "gpsStartTime": string,
  "gpsEndTime": string,
  "videoStartTime": string,
  "videoEndTime": string
}
Campos
gpsStartTime

string (Timestamp format)

Horário do primeiro ponto de GPS registrado.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de "Z", outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

gpsEndTime

string (Timestamp format)

Horário do último ponto de GPS registrado.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de "Z", outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

videoStartTime

string (Timestamp format)

Horário de início do vídeo.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de "Z", outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

videoEndTime

string (Timestamp format)

Horário de término do vídeo.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de "Z", outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

LatLngBounds

Um retângulo em coordenadas geográficas.

Representação JSON
{
  "southwest": {
    object (LatLng)
  },
  "northeast": {
    object (LatLng)
  }
}
Campos
southwest

object (LatLng)

O canto sudoeste desses limites.

northeast

object (LatLng)

O canto nordeste desses limites.

InputType

Formas de entrada de PhotoSequence.

Tipos enumerados
INPUT_TYPE_UNSPECIFIED Não especificado. O servidor vai retornar google.rpc.Code.INVALID_ARGUMENT.
VIDEO Vídeo em 360°.
XDM Extensible Device Metadata, http://www.xdm.org (em inglês)