Method: photoSequence.create

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

photoSequence.create retorna um Operation, com o ID de 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. A forma 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 a Visão geral do OAuth 2.0.

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. Ele 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 marcações de tempo 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. Horário absoluto em que a sequência de fotos começa a ser capturada. Se a sequência de fotos for um vídeo, esse será o momento de início do vídeo. Se esse campo for preenchido na entrada, ele substituirá o horário da captura no arquivo de vídeo ou XDM.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

uploadTime

string (Timestamp format)

Apenas saída. A hora em que esta sequência de fotos foi criada no serviço uSV Store.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

rawGpsTimeline[]

object (Pose)

Somente entrada. Medidas de GPS brutas com marcações de tempo crescentes do dispositivo que não são sincronizadas com cada foto. Essas medidas brutas serão usadas para inferir a posição de cada frame. Obrigatório na entrada quando InputType é VIDEO e as medições brutas de GPS 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 medições brutas de GPS forem fornecidas no RAWGpsTimeline e na Camera Motion Metadata Track (CAMM).

gpsSource

enum (GpsSource)

Somente entrada. Se o RAWGpsTimeline e o Camera Motion Metadata Track (CAMM) tiverem medidas de GPS, indique qual tem precedência.

imu

object (Imu)

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

processingState

enum (ProcessingState)

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

failureReason

enum (ProcessingFailureReason)

Apenas saída. Se essa sequência tiver ProcessingState = FAILED, explicará o motivo da falha. Se o processState for qualquer outro valor, este campo não será definido.

failureDetails

object (ProcessingFailureDetails)

Apenas saída. Se essa sequência tiver failureReason definido, isso 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 nessa 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 de upload. Não inclui o caminho do diretório. Disponível apenas se o upload da sequência foi feito em uma plataforma que fornece o nome do arquivo.

GpsSource

Fonte principal de medições de GPS.

Enums
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, na sigla em inglês) tem precedência, se houver.

Imu

Dados de IMU dos sensores do dispositivo.

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

object (Measurement3d)

O acelerômetro mede em metros/s^2 com marcações de tempo crescentes dos dispositivos.

gyroRps[]

object (Measurement3d)

As medições do giroscópio em radianos/s com marcações de tempo crescentes dos dispositivos.

magUt[]

object (Measurement3d)

As medições do magnetômetro do campo magnético em microtesla (uT) com marcações de tempo crescentes nos dispositivos.

Medição 3d

Uma amostra de medição genérica em 3D.

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.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

x

number

A medida do sensor no eixo X.

y

number

A medida do sensor no eixo Y.

z

number

A medida do sensor no eixo Z.

ProcessingState

O estado de processamento da sequência. Os estados são movidos da seguinte forma:

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

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

Enums
PROCESSING_STATE_UNSPECIFIED O estado não foi especificado, é o valor padrão.
PENDING O processamento da sequência ainda não foi iniciado.
PROCESSING A sequência está em processamento.
PROCESSED O processamento da sequência foi concluído, incluindo o refinamento da posição.
FAILED Falha ao processar a sequência. Consulte FailureReason para mais detalhes.

ProcessingFailureReason

Possíveis motivos para a falha no processamento de PhotoSequence.

Enums
PROCESSING_FAILURE_REASON_UNSPECIFIED O motivo da falha não foi especificado. Esse é o valor padrão.
LOW_RESOLUTION A resolução do frame de vídeo é muito pequena.
DUPLICATE Este vídeo já foi enviado anteriormente.
INSUFFICIENT_GPS Há poucos pontos de GPS.
NO_OVERLAP_GPS Não há sobreposição entre o período da trilha de GPS e o período 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 A sequência de fotos não pôde ser localizada com precisão.
TAKEDOWN A sequência foi removida por motivos relacionados à 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 de vídeo é inválido ou incompatível.
INVALID_VIDEO_DIMENSIONS Foi encontrada uma proporção de imagem inválida.
INVALID_CAPTURE_TIME A hora de captura é inválida. As marcações de tempo eram do futuro.
GPS_DATA_GAP Os dados de GPS apresentam um intervalo maior que 5 segundos de duração.
JUMPY_GPS Os dados de GPS estão muito erráticos para serem processados.
INVALID_IMU Os dados de IMU (acelerômetro, giroscópio etc.) não são válidos. Talvez eles não tenham campos obrigatórios (x, y, z ou horário), não estejam formatados corretamente ou qualquer outro problema que impeça a análise pelos nossos sistemas.
INSUFFICIENT_IMU Poucos pontos de IMU.
INSUFFICIENT_OVERLAP_TIME_SERIES Sobreposição insuficiente no período de tempo entre o GPS, a IMU e outros dados de série temporal.
IMU_DATA_GAP Os dados de IMU (acelerômetro, giroscópio etc.) contêm lacunas maiores que 0, 1 segundo.
UNSUPPORTED_CAMERA A câmera não é compatível.
NOT_OUTDOORS Alguns frames estavam em ambientes fechados, o que não é compatível.
INSUFFICIENT_VIDEO_FRAMES Não há frames de vídeo suficientes.
INSUFFICIENT_MOVEMENT Não há dados em movimento suficientes.

ProcessingFailureDetails

Detalhes adicionais para acompanhar o tipo enumerado ProcessingFailureReason. Espera-se sempre que essa mensagem seja usada em conjunto com ProcessingFailureReason, e o valor oneof definido nesta mensagem deve 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. Somente um conjunto de detalhes vai ser definido e precisa corresponder ao tipo enumerado 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 NoSobreposiçãoGpsFailureDetails.

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 de dados de GPS, somente a que tiver a 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 de GPS.

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 stream de vídeo) em que o intervalo 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 lacunas de dados de IMU, somente aquela com a maior duração será informada aqui.

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

string (Duration format)

A duração da lacuna nos dados de IMU que foi 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 stream de vídeo) em que o intervalo 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 vários frames internos forem encontrados, o primeiro frame 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)

Hora do primeiro ponto do GPS gravado.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

gpsEndTime

string (Timestamp format)

Hora do último ponto do GPS gravado.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

videoStartTime

string (Timestamp format)

Hora de início do vídeo.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

videoEndTime

string (Timestamp format)

Hora de término do vídeo.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

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.

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