Method: photoSequence.create

Gdy klient zakończy przesyłanie obiektu PhotoSequence ze zwróconym przez klienta UploadRef, photoSequence.create wyodrębnia sekwencję zdjęć sferycznych z filmu lub metadanych urządzenia Extensible Device Metadata (XDM, http://www.xdm.org/), aby opublikować je w Street View w Mapach Google.

Funkcja photoSequence.create zwraca wartość Operation z identyfikatorem PhotoSequence określonym w polu Operation.name.

Ta metoda zwraca następujące kody błędów:

Żądanie HTTP

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

Adres URL używa składni transkodowania gRPC.

Parametry zapytania

Parametry
inputType

enum (InputType)

To pole jest wymagane. Forma wejściowa PhotoSequence.

Treść żądania

Treść żądania zawiera wystąpienie elementu PhotoSequence.

Treść odpowiedzi

Jeśli operacja się uda, treść odpowiedzi będzie zawierała nowo utworzoną instancję Operation.

Zakresy autoryzacji

Wymaga następującego zakresu OAuth:

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

Więcej informacji znajdziesz w artykule Omówienie protokołu OAuth 2.0.

PhotoSequence

Sekwencja zdjęć sferycznych wraz z metadanymi.

Zapis 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
}
Pola
id

string

Tylko dane wyjściowe. Unikalny identyfikator sekwencji zdjęć. Jest to też identyfikator długo trwającej operacji, jeśli przesyłanie odbywa się asynchronicznie.

photos[]

object (Photo)

Tylko dane wyjściowe. Zdjęcia z coraz większą liczbą sygnatur czasowych.

uploadReference

object (UploadRef)

Tylko dane wejściowe. Wymagany przy tworzeniu sekwencji zdjęć. Nazwa zasobu, do którego przesyłane są bajty sekwencji zdjęć (w formie filmu).

captureTimeOverride

string (Timestamp format)

Opcjonalnie. Bezwzględny czas, w którym zaczyna się nagrywanie sekwencji zdjęć. Jeśli sekwencja zdjęć to film, jest to czas rozpoczęcia filmu. Jeśli to pole jest wypełnione danymi wejściowymi, zastępuje ono czas przechwytywania w filmie lub pliku XDM.

Sygnatura czasowa w formacie RFC3339 UTC „Zulu”, z rozdzielczością nanosekundy i maksymalnie 9 cyframi po przecinku. Przykłady: "2014-10-02T15:01:23Z" i "2014-10-02T15:01:23.045123456Z".

uploadTime

string (Timestamp format)

Tylko dane wyjściowe. Czas utworzenia tej sekwencji zdjęć w usłudze sklepu uSV.

Sygnatura czasowa w formacie RFC3339 UTC „Zulu”, z rozdzielczością nanosekundy i maksymalnie 9 cyframi po przecinku. Przykłady: "2014-10-02T15:01:23Z" i "2014-10-02T15:01:23.045123456Z".

rawGpsTimeline[]

object (Pose)

Tylko dane wejściowe. Nieprzetworzone dane GPS z rosnącymi sygnaturami czasowymi z urządzenia, które nie są synchronizowane z każdym zdjęciem. Te nieprzetworzone dane posłużą do ustalenia pozycji każdej klatki. Wymagane, gdy wartość wejściowa ma wartość VIDEO, a pomiary nieprzetworzone GPS nie mają wartości CAMM do śledzenia metadanych ruchu w aparacie. Za pomocą parametru gpsSource użytkownik może wskazać, który z nich ma pierwszeństwo, jeśli dane nieprzetworzone GPS są udostępniane zarówno w formacie rawGpsTimeline, jak i w CAMM.

gpsSource

enum (GpsSource)

Tylko dane wejściowe. Jeśli zarówno plik rawGpsTimeline, jak i model CAMM (Aparat Motion Metadata Track) zawierają pomiary GPS, wskaż, która z nich ma pierwszeństwo.

imu

object (Imu)

Tylko dane wejściowe. 3-osiowe dane IMU do zbierania danych. Jeśli dane są za duże, aby je umieścić w żądaniu, uwzględnij je w ścieżce CAMM filmu. Te dane mają zawsze pierwszeństwo przed równoważnymi danymi CAMM, jeśli istnieją.

processingState

enum (ProcessingState)

Tylko dane wyjściowe. Stan przetwarzania tej sekwencji.

failureReason

enum (ProcessingFailureReason)

Tylko dane wyjściowe. Jeśli sekwencja ma wartość conversionState = FAILED, będzie zawierać przyczynę niepowodzenia. Jeśli parametr conversionState ma wartość jakąkolwiek inną, to pole nie jest aktywne.

failureDetails

object (ProcessingFailureDetails)

Tylko dane wyjściowe. Jeśli ta sekwencja ma ustawiony parametr failureReason, może zawierać dodatkowe informacje o błędzie.

distanceMeters

number

Tylko dane wyjściowe. Obliczona odległość sekwencji zdjęć w metrach.

sequenceBounds

object (LatLngBounds)

Tylko dane wyjściowe. Prostokątne pole, w którym znajdują się wszystkie obrazy z tej serii zdjęć.

viewCount

string (int64 format)

Tylko dane wyjściowe. Łączna liczba wyświetleń wszystkich zdjęć opublikowanych w tej sekwencji zdjęć.

filename

string

Tylko dane wyjściowe. Nazwa przesyłanego pliku. Nie zawiera ścieżki katalogu. Dostępna tylko wtedy, gdy sekwencja została przesłana na platformę, która podaje nazwę pliku.

GpsSource

Główne źródło pomiarów GPS.

Wartości w polu enum
PHOTO_SEQUENCE GPS w rawGpsTimeline ma pierwszeństwo, jeśli istnieje.
CAMERA_MOTION_METADATA_TRACK GPS w ścieżce metadanych ruchu w kamerze (CAMM) ma pierwszeństwo, jeśli istnieje.

Imu

Dane IMU z czujników urządzenia.

Zapis JSON
{
  "accelMpsps": [
    {
      object (Measurement3d)
    }
  ],
  "gyroRps": [
    {
      object (Measurement3d)
    }
  ],
  "magUt": [
    {
      object (Measurement3d)
    }
  ]
}
Pola
accelMpsps[]

object (Measurement3d)

Pomiary akcelerometru w metrach/s^2 z coraz większą liczbą sygnatur czasowych z urządzeń.

gyroRps[]

object (Measurement3d)

Pomiary żyroskopu w radianach/s z coraz większą sygnaturą czasową z urządzeń.

magUt[]

object (Measurement3d)

Pomiary pola magnetycznego przez magnetometr w mikrotesla (uT) z rosnącymi sygnaturami czasowymi z urządzeń.

Pomiary 3D

Ogólna próbka pomiaru 3D.

Zapis JSON
{
  "captureTime": string,
  "x": number,
  "y": number,
  "z": number
}
Pola
captureTime

string (Timestamp format)

Sygnatura czasowa pomiaru IMU.

Sygnatura czasowa w formacie RFC3339 UTC „Zulu”, z rozdzielczością nanosekundy i maksymalnie 9 cyframi po przecinku. Przykłady: "2014-10-02T15:01:23Z" i "2014-10-02T15:01:23.045123456Z".

x

number

Pomiar czujnika na osi x.

y

number

Pomiar czujnika na osi Y.

z

number

Pomiar czujnika na osi Z.

ProcessingState

Stan przetwarzania sekwencji. Stany zmieniają się w ten sposób:

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

Sekwencja może przejść do pozycji FAILED z dowolnego stanu. Poza tym przetworzona sekwencja może w każdej chwili zostać przetworzona ponownie.

Wartości w polu enum
PROCESSING_STATE_UNSPECIFIED Stan nie jest określony. Jest to wartość domyślna.
PENDING Przetwarzanie sekwencji nie zostało jeszcze rozpoczęte.
PROCESSING Sekwencja jest obecnie przetwarzana.
PROCESSED Zakończono przetwarzanie sekwencji, w tym zawężenie pozycji.
FAILED Nie udało się przetworzyć sekwencji. Więcej informacji znajdziesz w sekcji FailureReason.

ProcessingFailureReason

Możliwe przyczyny, dla których nie udało się przetworzyć tego elementu (PhotoSequence).

Wartości w polu enum
PROCESSING_FAILURE_REASON_UNSPECIFIED Przyczyna niepowodzenia nie jest podana. Jest to wartość domyślna.
LOW_RESOLUTION Rozdzielczość ramki wideo jest za mała.
DUPLICATE Ten film został już przesłany.
INSUFFICIENT_GPS Za mało punktów GPS.
NO_OVERLAP_GPS Zakres dat ścieżki GPS i ramek filmu nie mogą się pokrywać.
INVALID_GPS GPS jest nieprawidłowy (np. wszystkie punkty GPS znajdują się w miejscu (0,0))
FAILED_TO_REFINE_POSITIONS Nie udało się precyzyjnie ustalić położenia serii zdjęć.
TAKEDOWN Sekwencja została usunięta ze względu na zasady.
CORRUPT_VIDEO Plik wideo jest uszkodzony lub nie można go zdekodować.
INTERNAL W systemie bazowym wystąpiła trwała awaria.
INVALID_VIDEO_FORMAT Nieprawidłowy lub nieobsługiwany format filmu.
INVALID_VIDEO_DIMENSIONS Znaleziono nieprawidłowy format obrazu.
INVALID_CAPTURE_TIME Nieprawidłowy czas przechwytywania. Sygnatury czasowe pochodzą z przyszłości.
GPS_DATA_GAP Dane GPS zawierają przerwę o długości przekraczającej 5 sekund.
JUMPY_GPS Dane GPS są zbyt nieregularne, aby można je było przetworzyć.
INVALID_IMU Dane IMU (akcelerometr, żyroskop itp.) są nieprawidłowe. Mogą one nie zawierać wymaganych pól (x, y, z lub time), być nieprawidłowo sformatowane albo mieć inny problem, który uniemożliwia naszym systemom przeanalizowanie tych informacji.
INSUFFICIENT_IMU Za mało punktów IMU.
INSUFFICIENT_OVERLAP_TIME_SERIES Niewystarczające nakładanie się w przedziale czasu między GPS, IMU i innymi danymi ciągów czasowych.
IMU_DATA_GAP Dane z jednostki IMU (akcelerometr, żyroskop itp.) zawierają przerwy dłuższe niż 0, 1 sekundy.
UNSUPPORTED_CAMERA Aparat nie jest obsługiwany.
NOT_OUTDOORS Niektóre ramki były umieszczone wewnątrz budynku, co nie jest obsługiwane.
INSUFFICIENT_VIDEO_FRAMES Za mało klatek wideo.
INSUFFICIENT_MOVEMENT Za mało danych do przeniesienia.

ProcessingFailureDetails

Dodatkowe informacje dołączone do wyliczenia ProcessingFailureReason. Ten komunikat powinien być zawsze używany razem z zasadą ProcessingFailureReason, a wartość „oneof” ustawiona w tym komunikacie powinna być zgodna z zasadą FailureReason.

Zapis 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.
}
Pola
Pole sumy details. Zostanie ustawiony tylko 1 zestaw szczegółów, który musi być zgodny z odpowiednią wartością wyliczeniową w ProcessingFailureReason. details może mieć tylko jedną z tych wartości:
insufficientGpsDetails

object (InsufficientGpsFailureDetails)

Zapoznaj się z informacjami o błędach niezadowalających GpsFailureDetails.

gpsDataGapDetails

object (GpsDataGapFailureDetails)

Zobacz szczegóły GpsDataGapFailureDetails.

imuDataGapDetails

object (ImuDataGapFailureDetails)

Zobacz ImuDataGapFailureDetails.

notOutdoorsDetails

object (NotOutdoorsFailureDetails)

Zobacz NotOutdoorsFailureDetails.

noOverlapGpsDetails

object (NoOverlapGpsFailureDetails)

Zobacz NoOverlapGpsFailureDetails.

InsufficientGpsFailureDetails

Szczegółowe informacje związane z zasadą ProcessingFailureReason#INSUFFICIENT_GPS.

Zapis JSON
{
  "gpsPointsFound": integer
}
Pola
gpsPointsFound

integer

Liczba punktów GPS znalezionych w filmie.

GpsDataGapFailureDetails

Szczegóły związane z atrybutem ProcessingFailureReason#GPS_DATA_GAP. Jeśli występuje wiele luk w danych GPS, w raporcie uwzględniany jest tylko ten o najdłuższym czasie trwania.

Zapis JSON
{
  "gapDuration": string,
  "gapStartTime": string
}
Pola
gapDuration

string (Duration format)

Czas trwania przerwy w znalezionych danych GPS.

Czas trwania w sekundach z maksymalnie 9 cyframi po przecinku, kończącym się cyframi „s”. Przykład: "3.5s".

gapStartTime

string (Duration format)

Czas względny (od początku strumienia wideo), w którym rozpoczęła się przerwa.

Czas trwania w sekundach z maksymalnie 9 cyframi po przecinku, kończącym się cyframi „s”. Przykład: "3.5s".

ImuDataGapFailureDetails

Szczegóły związane z atrybutem ProcessingFailureReason#IMU_DATA_GAP. Jeśli występuje wiele luk w danych IMU, w tym miejscu raportowany jest tylko ten o najdłuższym czasie trwania.

Zapis JSON
{
  "gapDuration": string,
  "gapStartTime": string
}
Pola
gapDuration

string (Duration format)

Czas trwania luki w znalezionych danych IMU.

Czas trwania w sekundach z maksymalnie 9 cyframi po przecinku, kończącym się cyframi „s”. Przykład: "3.5s".

gapStartTime

string (Duration format)

Czas względny (od początku strumienia wideo), w którym rozpoczęła się przerwa.

Czas trwania w sekundach z maksymalnie 9 cyframi po przecinku, kończącym się cyframi „s”. Przykład: "3.5s".

NotOutdoorsFailureDetails

Szczegóły dotyczące atrybutu ProcessingFailureReason#NOT_OUTDOORS. Jeśli znaleziono wiele klatek wewnętrznych, w tym miejscu zostanie zarejestrowana pierwsza klatka.

Zapis JSON
{
  "startTime": string
}
Pola
startTime

string (Duration format)

Czas względny (od początku strumienia wideo), w którym znaleziono klatkę wewnątrz.

Czas trwania w sekundach z maksymalnie 9 cyframi po przecinku, kończącym się cyframi „s”. Przykład: "3.5s".

NoOverlapGpsFailureDetails

Szczegółowe informacje związane z zasadą PhotoSequenceProcessingFailureReason#NO_OVERLAP_GPS.

Zapis JSON
{
  "gpsStartTime": string,
  "gpsEndTime": string,
  "videoStartTime": string,
  "videoEndTime": string
}
Pola
gpsStartTime

string (Timestamp format)

Godzina pierwszego zarejestrowania punktu GPS.

Sygnatura czasowa w formacie RFC3339 UTC „Zulu”, z rozdzielczością nanosekundy i maksymalnie 9 cyframi po przecinku. Przykłady: "2014-10-02T15:01:23Z" i "2014-10-02T15:01:23.045123456Z".

gpsEndTime

string (Timestamp format)

Czas ostatniego zapisu punktu GPS.

Sygnatura czasowa w formacie RFC3339 UTC „Zulu”, z rozdzielczością nanosekundy i maksymalnie 9 cyframi po przecinku. Przykłady: "2014-10-02T15:01:23Z" i "2014-10-02T15:01:23.045123456Z".

videoStartTime

string (Timestamp format)

Czas rozpoczęcia filmu.

Sygnatura czasowa w formacie RFC3339 UTC „Zulu”, z rozdzielczością nanosekundy i maksymalnie 9 cyframi po przecinku. Przykłady: "2014-10-02T15:01:23Z" i "2014-10-02T15:01:23.045123456Z".

videoEndTime

string (Timestamp format)

Czas zakończenia filmu.

Sygnatura czasowa w formacie RFC3339 UTC „Zulu”, z rozdzielczością nanosekundy i maksymalnie 9 cyframi po przecinku. Przykłady: "2014-10-02T15:01:23Z" i "2014-10-02T15:01:23.045123456Z".

LatLngBounds

Prostokąt we współrzędnych geograficznych.

Zapis JSON
{
  "southwest": {
    object (LatLng)
  },
  "northeast": {
    object (LatLng)
  }
}
Pola
southwest

object (LatLng)

Południowo-zachodni róg tych granic.

northeast

object (LatLng)

Północno-wschodni róg tych granic.

InputType

Formy wprowadzania tekstu PhotoSequence.

Wartości w polu enum
INPUT_TYPE_UNSPECIFIED Nie określono. Serwer zwróci wartość google.rpc.Code.INVALID_ARGUMENT.
VIDEO Film sferyczny.
XDM Extensible Device Metadata, http://www.xdm.org