Method: photoSequence.create

Depois que o cliente termina de fazer o upload do PhotoSequence com o UploadRef retornado, o photoSequence.create extrai uma sequência de fotos em 360o de um vídeo ou Extensible Device Metadata (XDM, http://www.xdm.org/) para ser publicada no Street View no 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. 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.

Sequência de fotos

Uma sequência de fotos em 360o 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 para a 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)

Apenas 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 quando a sequência de fotos começa a ser capturada. Se a sequência de fotos for um vídeo, este é o horário de início do vídeo. Se esse campo for preenchido na entrada, ele substituirá o tempo de captura no vídeo ou no arquivo XDM.

Um carimbo de data/hora no formato UTC "Zulu" RFC3339, 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 a sequência de fotos foi criada no serviço da uSV Store.

Um carimbo de data/hora no formato UTC "Zulu" RFC3339, 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)

Apenas entrada. Medições brutas de GPS com marcações de tempo cada vez maiores 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 de GPS brutas não estão no Camera Metadata Motion Track (CAMM). O usuário pode indicar qual deles terá prioridade usando gpsSource se as medições de GPS brutas forem fornecidas no brutoGpsTimeline e no Camera Motion Metadata Track (CAMM).

gpsSource

enum (GpsSource)

Apenas entrada. Se brutaGpsTimeline e o rastreamento de movimento da câmera (CAMM, na sigla em inglês) tiverem medições de GPS, indique qual deles tem prioridade.

imu

object (Imu)

Apenas 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 devem ser colocados na faixa 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 desta sequência.

failureReason

enum (ProcessingFailureReason)

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

failureDetails

object (ProcessingFailureDetails)

Apenas saída. Se essa sequência tiver failureReason definido, poderá conter detalhes adicionais 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 do upload. Não inclui o caminho do diretório. Disponível apenas se a sequência tiver sido enviada em uma plataforma que fornece o nome de arquivo.

Origem do Gps

Principal fonte de medições de GPS.

Enums
PHOTO_SEQUENCE O GPS em brutoGpsTimeline tem precedência, se existir.
CAMERA_MOTION_METADATA_TRACK O GPS na câmera (Motion Motion Metadata Track) (CAMM) 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)

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

gyroRps[]

object (Measurement3d)

As medidas do giroscópio em radianos/s com aumento dos carimbos de data/hora dos dispositivos.

magUt[]

object (Measurement3d)

As medidas do magnetômetro do campo magnético em microtesla (uT) com carimbos de data/hora crescentes em dispositivos.

Medição 3D

Uma amostra genérica de medida 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 de IMU.

Um carimbo de data/hora no formato UTC "Zulu" RFC3339, 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.

Estado de processamento

O estado de processamento da sequência. Os estados se movem da seguinte maneira:

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

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

Enums
PROCESSING_STATE_UNSPECIFIED O estado não está especificado, este é o valor padrão.
PENDING O processamento da sequência ainda não foi iniciado.
PROCESSING A sequência está sendo processada.
PROCESSED O processamento da sequência foi concluído, incluindo o refinamento.
FAILED Falha no processamento da sequência. Consulte FailureReason para ver mais detalhes.

Motivo da falha no processamento

Os 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 do vídeo é muito pequena.
DUPLICATE Este vídeo já foi enviado antes.
INSUFFICIENT_GPS 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 de GPS estão em (0,0))
FAILED_TO_REFINE_POSITIONS A sequência de fotos não pôde ser localizada com precisão no mundo.
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 do vídeo é inválido ou incompatível.
INVALID_VIDEO_DIMENSIONS Proporção de imagem inválida encontrada.
INVALID_CAPTURE_TIME Hora de captura inválida. Os carimbos de data/hora eram do futuro.
GPS_DATA_GAP Os dados de GPS têm um intervalo maior que cinco segundos de duração.
JUMPY_GPS Os dados de GPS estão muito instáveis para serem processados.
INVALID_IMU Os dados da IMU (acelerômetro, giroscópio, etc.) não são válidos. Talvez eles não tenham campos obrigatórios (x, y, z ou tempo), não estejam formatados corretamente ou qualquer outro problema que impeça nossos sistemas de analisá-los.
INSUFFICIENT_IMU Pouquíssimos pontos de IMU.
INSUFFICIENT_OVERLAP_TIME_SERIES Sobreposição insuficiente no período entre o GPS, 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 de duração.
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 móveis suficientes.

Detalhes da falha no processamento

Mais detalhes para acompanhar o enum ProcessingFailureReason. Espera-se que esta mensagem seja sempre usada em conjunto com ProcessingFailureReason, e o valor único definido nesta mensagem deve corresponder a 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 precisa corresponder ao enum correspondente em ProcessingFailureReason. details pode ser apenas de um dos tipos a seguir:
insufficientGpsDetails

object (InsufficientGpsFailureDetails)

Consulte UnsupportedGpsFailureDetails.

gpsDataGapDetails

object (GpsDataGapFailureDetails)

Consulte GpsDataGapFailureDetails.

imuDataGapDetails

object (ImuDataGapFailureDetails)

Consulte ImuDataGapFailureDetails.

notOutdoorsDetails

object (NotOutdoorsFailureDetails)

Consulte NotOutdoorsFailureDetails.

noOverlapGpsDetails

object (NoOverlapGpsFailureDetails)

Consulte NoOverlayGpsFailureDetails.

DetalhesdeGpsFailures insuficientes

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.

DadosGpsDataGapFailureDetails

Detalhes relacionados a ProcessingFailureReason#GPS_DATA_GAP. Se houver várias lacunas de dados de GPS, 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 GPS encontrada.

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

gapStartTime

string (Duration format)

Tempo relativo (desde o início do stream de vídeo) quando a lacuna começou.

Uma duração em segundos com até nove dígitos fracionários, terminando com "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 do intervalo nos dados de IMU encontrada.

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

gapStartTime

string (Duration format)

Tempo relativo (desde o início do stream de vídeo) quando a lacuna começou.

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

NotOutdoorsFailureDetails

Detalhes relacionados a ProcessingFailureReason#NOT_OUTDOORS. Se vários frames internos forem encontrados, o primeiro será gravado aqui.

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

string (Duration format)

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

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

NoOverlayGpsFailureDetails

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 GPS registrado.

Um carimbo de data/hora no formato UTC "Zulu" RFC3339, 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 GPS registrado.

Um carimbo de data/hora no formato UTC "Zulu" RFC3339, 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)

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

Um carimbo de data/hora no formato UTC "Zulu" RFC3339, 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)

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

Um carimbo de data/hora no formato UTC "Zulu" RFC3339, 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.

Tipo de entrada

Formas de entrada de PhotoSequence.

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