Kafelki Street View

Przykład Street ViewKafelki Street View są podobne do kafelków 2D, ale zawierają panoramiczne zdjęcia zrobione z poziomu ulicy. Dzięki Street View możesz poznawać zabytki z całego świata, podziwiać cuda natury, a także odwiedzać wnętrza obiektów, takich jak muzea, obiekty sportowe, restauracje czy małe firmy. Ten punkt końcowy API zapewnia dostęp do:

  • Kafelki Street View w Mapach Google
  • Metadane Street View
  • Miniatury Street View

Możesz łączyć ze sobą kafelki ze zdjęciami zrobione z poziomu ulicy, aby stworzyć autentyczny efekt panoramiczny. Możesz też wysłać zapytanie o maksymalnie 100 identyfikatorów panoram dla zestawu lokalizacji (np. trasy) i uzyskać szczegółowe metadane dotyczące pozycji aparatu.

Aby połączyć kafelki Street View, potrzebujesz gogli. Może to być na przykład niestandardowa przeglądarka panoram Street View.

Po uzyskaniu klucza interfejsu API możesz uzyskać dostęp do zdjęć Street View, wykonując poniższe czynności.

  1. Uzyskaj token sesji. Pamiętaj, by ustawić wartość mapType na streetview.

  2. Użyj tokena sesji, by uzyskać identyfikator panoramy (panoId) dla co najmniej jednej lokalizacji geograficznej.

  3. Użyj identyfikatorów panoram z odpowiedzi wyszukiwania panoId, aby uzyskać:

    1. Metadane Street View Metadane Street View możesz też uzyskać, przesyłając zestaw współrzędnych i określony obszar o określonym promieniu.

    2. Miniatury Street View

    3. Kafelki Street View

Metody Street View

Dostęp do zdjęć i metadanych Street View możesz uzyskać, wywołując jedną z 4 metod.

Metoda Opis
https://tile.googleapis.com/v1/streetview/tiles Zwraca poszczególne kafelki Street View. Kafelki Street View możesz wybierać na 6 poziomach powiększenia: od 512 do 13 312 pikseli.
https://tile.googleapis.com/v1/streetview/panoIds Umożliwia zbiorcze wyszukiwanie do 100 lokalizacji. Zwraca identyfikatory panoram dla wszystkich lokalizacji ze zdjęciami.
https://tile.googleapis.com/v1/streetview/thumbnail Zwraca miniaturę JPEG sceny ze Street View. Umożliwia określenie nagłówka, wysokości, wymiarów i pola widzenia. Minimalne wymiary to 16 x 16 pikseli. Maksymalne wymiary to 250 x 600 pikseli.
https://tile.googleapis.com/v1/streetview/metadata Podaje szczegółowe informacje o określonej panoramie. Szczegóły obejmują powiązany adres i linki do sąsiednich panoram.

Identyfikator panoram z jednej lub kilku lokalizacji geograficznych możesz sprawdzić, przesyłając ich współrzędne (lat, lng) do metody panoIds. Treść żądania to obiekt JSON, który zawiera tablicę locations i opcjonalnie radius, jak pokazano w poniższym przykładzie kodu JSON.

curl -X POST -d '{
  "locations": [
    {"lat": -33.883837, "lng": 151.209307},
    {"lat": -33.883700, "lng": 151.210307},
    {"lat": 0, "lng": 0}
  ],
  "radius": 50
}' \
-H 'Content-Type: application/json' \
"https://tile.googleapis.com/v1/streetview/panoIds?session=YOUR_SESSION_TOKEN&key=YOUR_API_KEY"
locations
Tablica locations musi zawierać co najmniej jeden zestaw wartości współrzędnych, ale możesz dodać ich więcej – maksymalnie 100.
radius
Wartość radius (mierzona w metrach) określa promień okręgu wokół danej lokalizacji, w której chcesz wyszukać panoramy. Wartość domyślna to 50 metrów.

Odpowiedź PanoId

Interfejs Map Tiles API próbuje znaleźć panoramę najbliżej każdej lokalizacji, a potem zwraca identyfikatory panoram. Udane żądanie panoIds zwraca obiekt JSON zawierający tablicę panoIds. Tablica zawiera listę identyfikatorów panoram w kolejności, w jakiej je żądano. Jeśli interfejs Map Tiles API nie znajdzie żadnych panoram dla żądanych lokalizacji, w tej lokalizacji w tablicy zostanie zwrócony pusty ciąg znaków. Oto przykładowy kod JSON.

{
  "panoIds": [
    "ACfH-n2HcBvRry_3oc9grw",
    "f5DJZatBAAAXHlooS2wKbw",
    ""
  ]
}

Za pomocą panoIds możesz:

Metadane Street View

Żądania metadanych Street View pobierają informacje o panoramach. Żądanie metadanych Street View to żądanie HTTPS GET. Informacje o panoramach możesz pobrać na dwa sposoby:

  • Jeśli przekażesz pano_id, interfejs Map Tiles API zwróci metadane tej panoramy.

  • Jeśli jednak przekażesz lat i lng, interfejs Map Tiles API zwróci metadane najbliższej panoramy w określonym promieniu wyszukiwania.

Przekazuj współrzędne i promień

curl "https://tile.googleapis.com/v1/streetview/metadata?session=YOUR_SESSION_TOKEN&key=YOUR_API_KEY&lat=lat&lng=lng&radius=meters"

Identyfikatory panoram są przejściowe, dlatego w pierwszym żądaniu metadanych Street View zalecamy przekazanie zestawu współrzędnych i wartości radius. Oto przykładowy fragment kodu:

curl "https://tile.googleapis.com/v1/streetview/metadata?session=YOUR_SESSION_TOKEN&key=YOUR_API_KEY&lat=47.62066&lng=-122.34923&radius=50"

Przekazywanie identyfikatora panoId zdjęcia Street View

curl "https://tile.googleapis.com/v1/streetview/metadata?session=YOUR_SESSION_TOKEN&key=YOUR_API_KEY&panoId=panoId"

Odpowiedź na metadane

Poniższy kod JSON zawiera przykład typowej odpowiedzi metadanych.

{
 "panoId": "rZ9KeTyhA11i0VppYNzsSg",
 "lat": 37.420864219339165,
 "lng": -122.08446528377291,
 "imageHeight": 6656,
 "imageWidth": 13312,
 "tileHeight": 512,
 "tileWidth": 512,
 "heading": 94.35,
 "tilt": 88.39652,
 "roll": 1.7181772,
 "imageryType": "outdoor",
 "date": "2023-01",
 "copyright": "© 2023 Google",
 "reportProblemLink": "https://cbks0.googleapis.com/cbk?output=report&panoid=rZ9KeTyhA11i0VppYNzsSg&cb_client=api&cbp=1,0,,0,0&hl=en-US&gl=us",
 "addressComponents": [
  {
   "longName": "United States",
   "shortName": "United States",
   "types": [
    "country"
   ]
  },
  {
   "longName": "Mountain View, California",
   "shortName": "Mountain View, California",
   "types": [
    "locality"
   ]
  },
  {
   "longName": "Charleston Rd",
   "shortName": "Charleston Rd",
   "types": [
    "route"
   ]
  },
  {
   "longName": "1635",
   "shortName": "1635",
   "types": [
    "street_number"
   ]
  }
 ],
 "links": [
  {
   "panoId": "Yw4pqzA4FEq1qs-BwZSvSQ",
   "heading": 274.47998046875,
   "text": "Charleston Rd"
  },
  {
   "panoId": "1cODYwFRw1aZ45IignDIMw",
   "heading": 94.47999572753906,
   "text": "Charleston Rd"
  }
 ]
}

Poniższa lista zawiera definicje pól w treści odpowiedzi.

panoId
Unikalny identyfikator tej panoramy. Nie należy zakładać, że identyfikatory panoram są ważne dłużej niż przez jedną sesję użytkownika.
lat, lng
Współrzędne (szerokość i długość geograficzna) panoramy. Wartości te mogą się różnić od współrzędnych przekazanych w żądaniu, bo lokalizacja przyciąga się do najbliższej panoramy.
imageHeight, imageWidth
Wymiary połączonej panoramy.
tileHeight, tileWidth
Wymiary pojedynczego kafelka panoramy.
heading
Nagłówek kompasu, mierzony w stopniach, w prawo od północy. Nagłówki są zwracane w zakresie [0,360], gdzie 0 oznacza kierunek północny.
tilt
Kąt nachylenia panoramy, mierzony w stopniach od południowego bieguna panoramy do horyzontu. Zwracane wartości mieszczą się w zakresie [0–180]. Wartość 90 stopni oznacza, że horyzont jest już wyrównany do równika panoramy.
roll
Obrót w prawo wokół linii wzroku zastosowanej do panoramy w celu wyrównania horyzontu. Zwracane wartości mieszczą się w zakresie [0, 360].
imageryType
Wskazuje typ obrazu. Prawidłowe wartości to indoor i outdoor.
date
Data wykonania zdjęcia. Nie wszystkie obrazy zawierają dane daty. Jeśli jednak jest ono dostępne, zawiera kombinację roku (RRRR) i miesiąca (MM). np. 2023-05 lub 2024.
copyright
Tekst dotyczący praw autorskich, który musi być wyświetlany jako źródło informacji razem ze zdjęciem Street View.
reportProblemLink
Link do zgłaszania problemów z tym kafelkiem Street View. Link ten musi znajdować się w prawym dolnym rogu obrazu i musi zawierać tekst linku w rodzaju „Zgłoś problem dotyczący tego obrazu”.
addressComponent
Uporządkowany kod geograficzny, który zawiera szczegóły adresu panoramy. Więcej informacji znajdziesz w sekcji Żądania i odpowiedzi geokodujące w dokumentacji interfejsu Geocoding API.
links
Lista identyfikatorów panoram, które są z nią połączone. który zawiera też nagłówek, w którym znajduje się link. Jeśli na przykład nagłówek ma wysokość 180°, połączona panorama jest ustawiona na południe od bieżącej panoramy. Pamiętaj, że ze względu na przejściowy charakter identyfikatorów panoram nie należy polegać na nich tylko przez jedną sesję użytkownika.

Miniatury Street View

Możesz poprosić o zdjęcia Street View w formacie thumbnail. Miniatury to obrazy o określonym przez użytkownika rozmiarze, nagłówku, tonie i polu widzenia. Miniatury mają mniejszą rozdzielczość niż kafelki i mają mniejszy rozmiar pliku. Żądanie miniatury generujesz, wysyłając żądanie GET do punktu końcowego thumbnail, jak pokazano w poniższym prototypie kodu.

curl "https://tile.googleapis.com/v1/streetview/thumbnail?session=YOUR_SESSION_TOKEN&key=YOUR_API_KEY&panoId=panoId&height=FROM_16_TO_250&width=FROM_16_TO_600&pitch=FROM-90_TO_90&yaw=FROM-360_TO_360&fov=FROM_30_TO_120"

Poniższy przykładowy kod umożliwia pobranie miniatury zdjęć Street View zrobionych w Whistler w Kanadzie.

curl "https://tile.googleapis.com/v1/streetview/thumbnail?session=YOUR_SESSION_TOKEN&key=YOUR_API_KEY&panoId=Zzl28rqGJgaL2IdkUleP8A&height=200&width=200&pitch=0&yaw=250&fov=80" --output /tmp/example_thumbnail.png

Miniatura widoku Street View – Whistler w Kanadzie

Wymagane parametry

panoId
Unikalny identyfikator miniatury, której szukasz. Możesz wyświetlić wartości identyfikatora panoramy z panoIdspunktu końcowego lub metadatapunktu końcowego – oba te współrzędne akceptują współrzędne geograficzne i zwracają odpowiednie panoId.
session
Prawidłowy token sesji.
key
Twój klucz interfejsu API.

Parametry opcjonalne

height
Określa wysokość miniatury w pikselach, od 16 do 250 pikseli. Jeśli nie określisz wysokości, domyślnie ustawimy maksymalną dozwoloną wartość 250 pikseli. Jeśli podasz wartość spoza zakresu, miniatura przyciągnie ją do najbliższej prawidłowej wartości.
width
Określa szerokość miniatury w pikselach, od 16 do 600 pikseli. Jeśli nie określisz szerokości, domyślnie zostanie użyta maksymalna dozwolona wartość, która wynosi 600 pikseli. Jeśli podasz wartość spoza zakresu, miniatura przyciągnie ją do najbliższej prawidłowej wartości.
pitch
Określa kąt kamery wzdłuż osi pionowej. Prawidłowe wartości należą do zakresu od -90 do 90 (włącznie). Wartością domyślną jest 0.
yaw
Określa kierunek kamery wzdłuż osi poziomej. Prawidłowe wartości należą do zakresu od -360 do 360 (włącznie). Wartość domyślna to s 0.
fov
Określa poziome pole widzenia, wyrażone w stopniach, i ma maksymalną wartość 120. W przypadku widocznego obszaru o stałym rozmiarze, np. zdjęcia Street View o określonej wielkości, pole widoku reprezentuje powiększenie, a mniejsze wartości – wyższy poziom powiększenia. Wartością domyślną jest 90.

Kafelki zdjęć Street View

Gdy już będziesz mieć panoId, możesz poprosić o kafelek ze zdjęciem Street View. Żądania kafelków to żądania HTTPS GET. Przyjrzyjmy się temu przykładowi.

curl "https://tile.googleapis.com/v1/streetview/tiles/z/x/y?session=YOUR_SESSION_TOKEN&key=YOUR_API_KEY&panoId=panoId"

W tym przykładzie kodu z to poziom powiększenia, a x i y to współrzędne kafelka kafelka Street View, którego chcesz użyć. Poziomy powiększenia w panoramach Street View muszą mieścić się w zakresie [0,5], gdzie 0 oznacza najszersze pole widzenia.

Poziom powiększenia Przybliżone pole widzenia
0 360°
1 180°
2 90°
3
4 22,5°
5 11,25°

Odpowiedzi z kafelków Street View

Pomyślna prośba o kafelek Street View zwraca zdjęcie w formacie i rozmiarze określonym w odpowiedzi createSession.

Wynik żądania Tile

Przy zerowym poziomie powiększenia cała panorama jest zmieniana na kafelek o wymiarach tileWidth na tileHeight. Panoramy w wymiarze x są większe, więc kafelek zawiera puste miejsce w wymiarze y:

Poziom powiększenia zero

Przy piątym poziomie powiększenia wyświetlana jest pełnowymiarowa panorama podzielona na kafelki.

Każda panorama Street View musi zawierać informacje o prawach autorskich. Ciąg znaków do wyświetlenia może być różny w zależności od panoram. Aby uzyskać informacje o prawach autorskich, musisz poprosić o metadane Street View. Potem sprawdź pole copyright odpowiedzi. Więcej informacji znajdziesz w artykule Atrybucja danych.