Method: photoSequence.create

Gdy klient zakończy przesyłanie PhotoSequence z otrzymanym UploadRef, photoSequence.create wyodrębnia sekwencję zdjęć 360° z filmu lub rozszerzalnych metadanych urządzenia (XDM, http://www.xdm.org/), które mają zostać opublikowane w Widoku Street View w Mapach Google.

photoSequence.create zwraca Operation z ustawionym identyfikatorem PhotoSequence w polu Operation.name.

Ta metoda zwraca te 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)

Wymagane. Formularz wprowadzania danych 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 sekcji OAuth 2.0 Overview.

PhotoSequence

Seria 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ęć. Jeśli przesyłanie jest wykonywane asynchronicznie, jest to również identyfikator długo trwającej operacji.

photos[]

object (Photo)

Tylko dane wyjściowe. Zdjęcia z rosnącymi sygnaturami czasowymi.

uploadReference

object (UploadRef)

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

captureTimeOverride

string (Timestamp format)

Opcjonalnie: Bezwzględny czas rozpoczęcia rejestrowania sekwencji zdjęć. Jeśli sekwencja zdjęć jest filmem, jest to czas rozpoczęcia filmu. Jeśli to pole jest wypełnione w danych wejściowych, zastępuje czas rejestracji w pliku wideo lub XDM.

Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" lub "2014-10-02T15:01:23+05:30".

uploadTime

string (Timestamp format)

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

Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" lub "2014-10-02T15:01:23+05:30".

rawGpsTimeline[]

object (Pose)

Tylko dane wejściowe. Surowe pomiary GPS z rosnącymi sygnaturami czasowymi z urządzenia, które nie są zsynchronizowane z czasem wykonania poszczególnych zdjęć. Te surowe pomiary będą używane do określania pozycji w każdej klatce. Wymagane w danych wejściowych, gdy InputType to VIDEO, a surowe pomiary GPS nie znajdują się w śladzie metadanych ruchu kamery (CAMM). Użytkownik może wskazać, które dane mają pierwszeństwo, za pomocą parametru gpsSource, jeśli surowe pomiary GPS są podane zarówno w rawGpsTimeline, jak i w śladzie metadanych ruchu kamery (CAMM).

gpsSource

enum (GpsSource)

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

imu

object (Imu)

Tylko dane wejściowe. Dane z 3-osiowego IMU dotyczące kolekcji. Jeśli te dane są zbyt duże, aby umieścić je w żądaniu, należy je umieścić na ścieżce CAMM filmu. Te dane mają zawsze pierwszeństwo przed odpowiednimi danymi CAMM, jeśli takie istnieją.

processingState

enum (ProcessingState)

Tylko dane wyjściowe. Stan przetwarzania tej sekwencji.

failureReason

enum (ProcessingFailureReason)

Tylko dane wyjściowe. Jeśli sekwencja ma wartość processingState = FAILED, ten element będzie zawierać przyczynę niepowodzenia. Jeśli processingState ma inną wartość, to pole nie będzie ustawione.

failureDetails

object (ProcessingFailureDetails)

Tylko dane wyjściowe. Jeśli w tej sekwencji jest ustawiona wartość failureReason, może ona 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 obejmujące wszystkie obrazy w tej sekwencji zdjęć.

viewCount

string (int64 format)

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

filename

string

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

GpsSource

Podstawowe źródło pomiarów GPS.

Wartości w polu enum
PHOTO_SEQUENCE Jeśli dane GPS w rawGpsTimeline istnieją, mają pierwszeństwo.
CAMERA_MOTION_METADATA_TRACK Jeśli istnieją dane GPS w śladzie metadanych ruchu kamery (CAMM), mają one pierwszeństwo.

Imu

dane z czujników urządzenia IMU.

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

object (Measurement3d)

Pomiary akcelerometru w m/s² z rosnącymi sygnaturami czasowymi z urządzeń.

gyroRps[]

object (Measurement3d)

Pomiary żyroskopu w radianach na sekundę z rosnącymi sygnaturami czasowymi z urządzeń.

magUt[]

object (Measurement3d)

Pomiary pola magnetycznego w mikroteslach (uT) z magnetometru na urządzeniach z rosnącymi sygnaturami czasowymi.

Measurement3d

Przykładowy pomiar 3D.

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

string (Timestamp format)

Sygnatura czasowa pomiaru IMU.

Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" lub "2014-10-02T15:01:23+05:30".

x

number

Pomiar z czujnika na osi X.

y

number

Pomiar z 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 stanu NIEPOWODZENIE z dowolnego stanu. Przetworzoną sekwencję można też ponownie przetworzyć w dowolnym momencie.

Wartości w polu enum
PROCESSING_STATE_UNSPECIFIED Stan nie jest określony. Jest to wartość domyślna.
PENDING Sekwencja nie rozpoczęła jeszcze przetwarzania.
PROCESSING Sekwencja jest obecnie przetwarzana.
PROCESSED Sekwencja została przetworzona, w tym dopracowano pozycję.
FAILED Nie udało się przetworzyć sekwencji. Więcej informacji znajdziesz w sekcji FailureReason.

ProcessingFailureReason

Możliwe przyczyny niepowodzenia przetwarzania PhotoSequence.

Wartości w polu enum
PROCESSING_FAILURE_REASON_UNSPECIFIED Nie podano przyczyny błędu. Jest to wartość domyślna.
LOW_RESOLUTION Rozdzielczość klatki filmu jest za mała.
DUPLICATE Ten film został już przesłany.
INSUFFICIENT_GPS Za mało punktów GPS.
NO_OVERLAP_GPS Brak pokrywania się przedziału czasowego ścieżki GPS z przedziałem czasowym filmu.
INVALID_GPS GPS jest nieprawidłowy (np. wszystkie punkty GPS mają współrzędne (0,0))
FAILED_TO_REFINE_POSITIONS Nie udało się dokładnie określić lokalizacji sekwencji zdjęć.
TAKEDOWN Sekwencja została usunięta z powodu naruszenia zasad.
CORRUPT_VIDEO Plik wideo był uszkodzony lub nie można go było zdekodować.
INTERNAL Wystąpiła trwała awaria systemu bazowego.
INVALID_VIDEO_FORMAT Nieprawidłowy lub nieobsługiwany format filmu.
INVALID_VIDEO_DIMENSIONS Znaleziono nieprawidłowy współczynnik proporcji obrazu.
INVALID_CAPTURE_TIME Nieprawidłowy czas nagrania. Sygnatury czasowe były w przyszłości.
GPS_DATA_GAP Dane GPS zawierają przerwę dłuższą niż 5 sekund.
JUMPY_GPS Dane GPS są zbyt nieregularne, aby można je było przetworzyć.
INVALID_IMU Dane z IMU (akcelerometru, żyroskopu itp.) są nieprawidłowe. Mogą one nie zawierać wymaganych pól (x, y, z lub czasu), mogą być nieprawidłowo sformatowane lub mogą występować inne problemy, które uniemożliwiają naszym systemom ich przeanalizowanie.
INSUFFICIENT_IMU Za mało punktów IMU.
INSUFFICIENT_OVERLAP_TIME_SERIES Niewystarczające pokrywanie się zakresu czasu danych GPS, IMU i innych danych ciągu czasowego.
IMU_DATA_GAP Dane z IMU (akcelerometru, żyroskopu itp.) zawierają przerwy dłuższe niż 0, 1 sekundy.
UNSUPPORTED_CAMERA Kamera nie jest obsługiwana.
NOT_OUTDOORS Niektóre klatki zostały zarejestrowane w pomieszczeniach, co nie jest obsługiwane.
INSUFFICIENT_VIDEO_FRAMES Za mało klatek filmu.
INSUFFICIENT_MOVEMENT Brak wystarczających danych o ruchu.
MAST_DOWN Maszt nie jest ustawiony.
CAMERA_COVERED Kamera jest zakryta.

ProcessingFailureDetails

Dodatkowe informacje dotyczące wyliczenia ProcessingFailureReason. Ten komunikat powinien być zawsze używany w połączeniu z atrybutem ProcessingFailureReason, a wartość oneof ustawiona w tym komunikacie powinna być zgodna z atrybutem 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 zbiorcze details. Ustawiony zostanie tylko jeden zestaw szczegółów, który musi być zgodny z odpowiednim wyliczeniem w ProcessingFailureReason. details może mieć tylko jedną z tych wartości:
insufficientGpsDetails

object (InsufficientGpsFailureDetails)

Zobacz InsufficientGpsFailureDetails.

gpsDataGapDetails

object (GpsDataGapFailureDetails)

Zobacz GpsDataGapFailureDetails.

imuDataGapDetails

object (ImuDataGapFailureDetails)

Zobacz ImuDataGapFailureDetails.

notOutdoorsDetails

object (NotOutdoorsFailureDetails)

Zobacz NotOutdoorsFailureDetails.

noOverlapGpsDetails

object (NoOverlapGpsFailureDetails)

Zobacz NoOverlapGpsFailureDetails.

InsufficientGpsFailureDetails

Szczegóły dotyczące ProcessingFailureReason#INSUFFICIENT_GPS.

Zapis JSON
{
  "gpsPointsFound": integer
}
Pola
gpsPointsFound

integer

Liczba punktów GPS znalezionych w filmie.

GpsDataGapFailureDetails

Szczegóły związane z przyczyną błędu przetwarzania ProcessingFailureReason#GPS_DATA_GAP. Jeśli występuje kilka przerw w danych GPS, podawana jest tylko ta o najdłuższym czasie trwania.

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

string (Duration format)

Czas trwania znalezionego luki w danych GPS.

Czas trwania w sekundach z maksymalnie 9 miejscami po przecinku, zakończony znakiem „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 miejscami po przecinku, zakończony znakiem „s”. Przykład: "3.5s".

ImuDataGapFailureDetails

Szczegóły związane z przyczyną błędu przetwarzania ProcessingFailureReason#IMU_DATA_GAP. Jeśli występuje kilka przerw w danych z IMU, podawana jest tylko ta o najdłuższym czasie trwania.

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

string (Duration format)

Czas trwania wykrytej luki w danych IMU.

Czas trwania w sekundach z maksymalnie 9 miejscami po przecinku, zakończony znakiem „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 miejscami po przecinku, zakończony znakiem „s”. Przykład: "3.5s".

NotOutdoorsFailureDetails

Szczegóły dotyczące ProcessingFailureReason#NOT_OUTDOORS. Jeśli znaleziono wiele klatek w pomieszczeniu, pierwsza z nich jest rejestrowana w tym miejscu.

Zapis JSON
{
  "startTime": string
}
Pola
startTime

string (Duration format)

Czas względny (od początku strumienia wideo), w którym znaleziono klatkę filmu kręconego w pomieszczeniu.

Czas trwania w sekundach z maksymalnie 9 miejscami po przecinku, zakończony znakiem „s”. Przykład: "3.5s".

NoOverlapGpsFailureDetails

Szczegóły dotyczące PhotoSequenceProcessingFailureReason#NO_OVERLAP_GPS.

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

string (Timestamp format)

Czas pierwszego zarejestrowanego punktu GPS.

Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" lub "2014-10-02T15:01:23+05:30".

gpsEndTime

string (Timestamp format)

Czas ostatniego zarejestrowanego punktu GPS.

Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" lub "2014-10-02T15:01:23+05:30".

videoStartTime

string (Timestamp format)

Czas rozpoczęcia filmu.

Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" lub "2014-10-02T15:01:23+05:30".

videoEndTime

string (Timestamp format)

Czas zakończenia filmu.

Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" lub "2014-10-02T15:01:23+05:30".

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

Formularze wejściowe PhotoSequence.

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