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 360° de um vídeo ou Extensible Device Metadata (XDM, http://www.xdm.org/) para publicar 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. 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 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 cada vez maiores.

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. 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 horário de início do vídeo. Se esse campo for preenchido na entrada, ele vai substituir o tempo de captura no arquivo de vídeo ou 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 esta sequência de fotos foi criada no serviço 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 de GPS brutas com carimbos de data/hora crescentes do dispositivo que não são sincronizadas com cada foto. Essas medidas brutas serão usadas para inferir a pose de cada frame. Obrigatório quando o InputType for VIDEO e as medições brutas de GPS não estiverem na faixa de metadados de movimento da câmera (CAMM, na sigla em inglês). O usuário pode indicar qual tem precedência usando gpsSource se as medições de GPS brutas forem fornecidas no RawGpsTimeline e na Camera Motion Motion Metadata Track (CAMM).

gpsSource

enum (GpsSource)

Apenas entrada. Se o brutoGpsTimeline e a faixa de metadados de movimento da câmera (CAMM, na sigla em inglês) tiverem medições de GPS, indique qual terá precedência.

imu

object (Imu)

Apenas 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 do CAMM do vídeo. Esses dados sempre têm precedência sobre os dados do CAMM equivalentes, se existirem.

processingState

enum (ProcessingState)

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

failureReason

enum (ProcessingFailureReason)

Apenas saída. Se a sequência tiverprocessingState = FAILED, conterá o motivo da falha. Se ProcessingState for qualquer outro valor, este campo não será definido.

failureDetails

object (ProcessingFailureDetails)

Apenas saída. Se a sequência tiver failureReason definido, ela 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 desta 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 de arquivo do upload. Não inclui o caminho do diretório. Disponível somente se a sequência tiver sido enviada em uma plataforma que forneça o nome do arquivo.

GpsSource

Principal fonte de medições de GPS.

Enums
PHOTO_SEQUENCE O GPS no 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 existir.

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/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 carimbos de data/hora crescentes dos dispositivos.

Medição 3d

Uma amostra genérica de medição de 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 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.

ProcessingState

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

     +-------------------------+
     |                         |
 +---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, esse é 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 no processamento da sequência. Consulte o FailureReason para ver mais detalhes.

ProcessingFailureReason

Os possíveis motivos da 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.
INSUFFICIENT_GPS Pontos de GPS insuficientes.
NO_OVERLAP_GPS Não há sobreposição entre o período da trilha do 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 Não foi possível localizar a sequência das fotos no mundo com precisão.
TAKEDOWN A sequência foi removida por violação da 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 Proporção de imagem inválida encontrada.
INVALID_CAPTURE_TIME A hora da captura é inválida. As marcações de tempo estavam no futuro.
GPS_DATA_GAP Os dados de GPS contêm um intervalo maior que 5 segundos de duração.
JUMPY_GPS Os dados de GPS são muito irregulares para serem processados.
INVALID_IMU Os dados de IMU (acelerômetro, giroscópio etc.) não são válidos. Talvez estejam faltando campos obrigatórios (x, y, z ou hora), eles não estejam formatados corretamente ou qualquer outro problema que impeça nossos sistemas de analisá-los.
INSUFFICIENT_IMU Há poucos pontos de IMU.
INSUFFICIENT_OVERLAP_TIME_SERIES Sobreposição insuficiente 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.) 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 é permitido.
INSUFFICIENT_VIDEO_FRAMES Não há frames de vídeo suficientes.
INSUFFICIENT_MOVEMENT Não há dados móveis suficientes.

ProcessingFailureDetails

Detalhes adicionais para acompanhar o enum ProcessingFailureReason. Espera-se que essa mensagem seja sempre usada em conjunto com ProcessingFailureReason e o valor oneof definido nesta mensagem corresponda 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. Somente um conjunto de detalhes 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 NoOverlayGpsFailureDetails.

InsufficientGpsFailureDetails

Detalhes relacionados a ProcessingFailureReason#INSUFFICIENT_GPS.

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

integer

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

GpsDataGapFailureDetails

Detalhes relacionados ao 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 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 stream 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 ao ProcessingFailureReason#IMU_DATA_GAP. Se houver várias lacunas de dados da IMU, apenas 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 do intervalo encontrado 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 stream 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 forem encontrados vários frames internos, o primeiro frame será registrado aqui.

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

string (Duration format)

Tempo relativo (do 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 ao 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.

InputType

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)