Kafelki Street View są podobne do kafelków 2D, ale zawierają panoramiczne zdjęcia zrobione na poziomie ulicy. Korzystając ze Street View, możesz odkrywać zabytki z całego świata, podziwiać cuda natury, a także „wchodzić” do muzeów, obiektów sportowych, restauracji czy małych firm. Ten punkt końcowy interfejsu API umożliwia dostęp do:
- Kafelki Street View w Mapach Google
- Metadane Street View
- Miniatury Street View
Możesz połączyć kafelki obrazów zrobionych z poziomu ulicy, aby uzyskać panoramiczny efekt rzeczywistości. Możesz też wysłać zapytanie o maksymalnie 100 identyfikatorów panoram dla zestawu lokalizacji (np. trasy) i uzyskać bardziej szczegółowe metadane dotyczące pozycji aparatu.
Do łączenia kafelków Street View wymagana jest przeglądarka. Na przykład niestandardowa przeglądarka panoram Street View.
Gdy uzyskasz klucz interfejsu API, możesz uzyskać dostęp do zdjęć Street View, wykonując te czynności.
Uzyskaj token sesji. Pamiętaj, aby ustawić wartość
mapType
nastreetview
.Użyj tokena sesji, aby uzyskać identyfikator panoramy (panoId) co najmniej jednej lokalizacji geograficznej.
Użyj identyfikatorów panoramy z odpowiedzi na wyszukiwanie panoId, aby uzyskać:
Metadane Street View Metadane Street View możesz też uzyskać, przesyłając zestaw współrzędnych i promień.
Metody Street View
Dostęp do zdjęć Street View i metadanych możesz uzyskać, wywołując jedną z tych 4 metod.
Metoda | Opis |
---|---|
https://tile.googleapis.com/v1/streetview/tiles |
Zwraca poszczególne kafelki Street View. Możesz pobierać kafelki Street View na 6 poziomach powiększenia: od 512 pikseli do 13 312 pikseli. |
https://tile.googleapis.com/v1/streetview/panoIds |
Umożliwia zbiorcze wyszukiwanie maksymalnie 100 lokalizacji. Zwraca identyfikatory panoram wszystkich lokalizacji z obrazami. |
https://tile.googleapis.com/v1/streetview/thumbnail |
Zwraca miniaturę JPEG sceny Street View. Umożliwia podanie nagłówka, nachylenia, 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 |
Zawiera szczegółowe informacje o wybranej panoramie. Zawiera szczegóły, takie jak powiązany adres i linki do sąsiednich panoram. |
Wyszukiwanie identyfikatorów panoram Street View
Identyfikator panoramy co najmniej jednej lokalizacji geograficznej możesz znaleźć, przekazując jej współrzędne (lat
, lng
) do metody panoIds
. Treść żądania to obiekt JSON, który zawiera tablicę locations
i opcjonalnie radius
, jak pokazano w tym 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 1 zestaw wartości współrzędnych, ale możesz dodać więcej – maksymalnie 100. radius
- Wartość
radius
(mierzona w metrach) określa promień okręgu wokół danej lokalizacji, w którym mają być wyszukiwane panoramy. Wartością domyślną jest 50 metrów.
Odpowiedź PanoId
Interfejs Map Tiles API próbuje znaleźć panoramę najbliższą każdej lokalizacji, a następnie zwraca jej identyfikator. Pomyślne żądanie panoIds
zwraca obiekt JSON zawierający tablicę panoIds
. Tablica zawiera listę identyfikatorów panoram w kolejności, w jakiej zostały one przesłane w żądaniu. Jeśli interfejs Map Tiles API nie znajdzie żadnych panoram dla żądanych lokalizacji, w odpowiednim miejscu w tablicy zwróci pusty ciąg znaków. Przykład znajdziesz w tym kodzie JSON:
{
"panoIds": [
"ACfH-n2HcBvRry_3oc9grw",
"f5DJZatBAAAXHlooS2wKbw",
""
]
}
Za pomocą panoIds
możesz:
- Żądanie metadanych Street View
- Żądanie miniatur Street View
- Przesyłanie żądania kafelków Street View
Metadane Street View
Żądania metadanych Street View pobierają informacje o panoramach. Żądanie metadanych Street View to żądanie HTTPS GET. Informacje o panoramach możesz pobierać na 2 sposoby:
Jeśli przekażesz wartość
pano_id
, interfejs Map Tiles API zwróci metadane tego panoramy.Jeśli jednak przekażesz wartości
lat
ilng
, interfejs Map Tiles API zwróci metadane najbliższej panoramy w danym promieniu wyszukiwania.
Przekazywanie zestawu współrzędnych i promienia
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ą tymczasowe, dlatego zalecamy przekazywanie zestawu współrzędnych i wartości radius
w początkowej prośbie o metadane Street View.
Przykład znajdziesz w tym fragmencie 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ź metadanych
Poniższy kod JSON to 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żej znajdziesz definicje pól w treści odpowiedzi.
panoId
- Unikalny identyfikator tej panoramy. Nie należy zakładać, że identyfikatory Panorama będą ważne dłużej niż przez jedną sesję użytkownika.
lat
,lng
- Współrzędne (szerokość i długość geograficzna) panoramy. Te wartości mogą się różnić od współrzędnych przekazanych w żądaniu, ponieważ lokalizacja jest przyciągana do najbliższej panoramy.
imageHeight
,imageWidth
- Wymiary zszytego obrazu panoramicznego.
tileHeight
,tileWidth
- Wymiary pojedynczego kafelka panoramy.
heading
- Kierunek kompasu mierzony w stopniach w kierunku zgodnym z ruchem wskazówek zegara od północy. Kierunki są zwracane w zakresie [0,360], przy czym 0 oznacza kierunek północny.
tilt
- Pochylenie panoramy mierzone w stopniach od bieguna południowego panoramy do horyzontu. Zwracane wartości mieszczą się w zakresie [0, 180]. Wartość 90 stopni oznacza, że horyzont jest już wyrównany na równiku panoramy.
roll
- Obrót panoramy w prawo wokół linii widzenia, który został zastosowany w celu wypoziomowania horyzontu. Zwracane wartości mieszczą się w zakresie [0, 360].
imageryType
- Określa typ obrazu. Prawidłowe wartości to
indoor
ioutdoor
. date
- Data wykonania zdjęcia. Nie wszystkie obrazy zawierają dane o dacie. Jeśli jednak jest dostępny, to pole zawiera kombinację roku (RRRR) i miesiąca (MM). Na przykład: 2023-05 lub 2024.
copyright
- Tekst dotyczący praw autorskich, który musisz wyświetlać jako atrybucję wraz ze zdjęciem Street View.
reportProblemLink
- Hiperlink, którego użytkownicy mogą używać do zgłaszania problemów z tym kafelkiem widoku ulicy. Musisz wyświetlać ten hiperlink w prawym dolnym rogu obrazu. Musi on zawierać tekst linku, np. „Zgłoś problem z tym obrazem”.
addressComponent
- Uporządkowany geokod zawierający szczegółowe informacje o adresie panoramy. Więcej informacji znajdziesz w sekcji Żądania i odpowiedzi w interfejsie Geocoding API w dokumentacji interfejsu Geocoding API.
links
- Lista identyfikatorów panoram, które są połączone z tą panoramą. Zawiera też nagłówek, pod którym znajduje się link. Jeśli na przykład nagłówek ma wartość 180°, połączona panorama znajduje się na południe od bieżącej panoramy. Pamiętaj, że ze względu na tymczasowy charakter identyfikatorów panoram nie należy na nich polegać w przypadku więcej niż jednej sesji użytkownika.
Miniatury Street View
Możesz poprosić o zdjęcia Street View w formacie thumbnail
. Miniatury to obrazy bez kafelków o rozmiarze, kierunku, nachyleniu i polu widzenia zdefiniowanych przez użytkownika.
Miniatury mają niższą rozdzielczość niż kafelki i mniejszy rozmiar pliku. Aby wysłać żądanie miniatury, wyślij żądanie GET do punktu końcowego thumbnail
, jak pokazano w tym 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"
Obejrzyj poniższy przykładowy kod, który pobiera miniaturę zdjęć Street View z 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
Wymagane parametry
panoId
- Unikalny identyfikator miniatury, którą chcesz uzyskać. Wartości identyfikatora panoramy możesz uzyskać z
panoIds
lubmetadata
. Oba punkty końcowe akceptują współrzędne geograficzne i zwracają odpowiednipanoId
. session
- Prawidłowy token sesji.
key
- Twój klucz interfejsu API.
Parametry opcjonalne
height
- Określa wysokość miniatury w pikselach (od 16 pikseli do 250 pikseli). Jeśli nie określisz wysokości, domyślnie zostanie użyta maksymalna dopuszczalna wartość 250 pikseli. Jeśli podasz wartość spoza zakresu, miniatura przeskoczy do najbliższej prawidłowej wartości.
width
- Określa szerokość miniatury w pikselach (od 16 do 600 pikseli). Jeśli nie podasz szerokości, domyślnie przyjmie ona maksymalną dopuszczalną wartość 600 pikseli. Jeśli podasz wartość spoza zakresu, miniatura przeskoczy do najbliższej prawidłowej wartości.
pitch
- Określa kąt kamery wzdłuż osi pionowej. Prawidłowe wartości należą do przedziału od
-90
do90
(włącznie). Wartością domyślną jest 0. yaw
- Określa kierunek, w którym zwrócona jest kamera wzdłuż osi poziomej. Prawidłowe wartości należą do przedziału od
-360
do360
(włącznie). Wartością domyślną jest 0. fov
- Określa poziome pole widzenia wyrażone w stopniach. Maksymalna wartość to 120. W przypadku widocznego obszaru o stałym rozmiarze, np. obrazu Street View o określonym rozmiarze, pole widzenia reprezentuje powiększenie. Mniejsze wartości oznaczają większe powiększenie. Wartość domyślna to 90.
Kafelki zdjęć Street View
Gdy masz panoId
, możesz poprosić o kafelek ze zdjęciem Street View. Żądania kafelków to żądania HTTPS GET. Rozważmy ten przykład.
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 Street View, który chcesz wyświetlić. Poziomy powiększenia w panoramach Street View muszą mieścić się w zakresie [0,5], przy czym 0 oznacza najszersze pole widzenia.
Poziom powiększenia | Przybliżone pole widzenia |
---|---|
0 | 360° |
1 | 180° |
2 | 90° |
3 | 7° |
4 | 22,5° |
5 | 11,25° |
Odpowiedzi dotyczące kafelków Street View
Udane żądanie kafelka Street View zwraca obraz w formacie i rozmiarze określonym w odpowiedzi createSession
.
Przy poziomie powiększenia 0 cała panorama jest zmieniana na kafelek o wymiarach tileWidth
x tileHeight
. Ponieważ panoramy są większe w wymiarze x, kafelek będzie zawierać puste miejsce w wymiarze y:
Na poziomie powiększenia 5 używana jest panorama w pełnym rozmiarze, która jest dzielona na kafelki.
informacji o prawach autorskich.
Informacje o prawach autorskich musisz wyświetlać przy każdej panoramie Street View. Wyświetlany ciąg znaków może się różnić w zależności od panoramy. Aby uzyskać informacje o prawach autorskich, musisz poprosić o metadane Street View, a następnie możesz odwołać się do pola copyright
w odpowiedzi. Więcej informacji znajdziesz w sekcji Atrybucje danych.