Wprowadzenie
Wyszukiwanie tekstowe (nowe) zwraca informacje o zbiorze miejsc na podstawie ciągu znaków (np. „pizza w Nowym Jorku”, „sklepy obuwnicze w pobliżu Ottawy” lub „123 Main Street”). Usługa odpowiada listą miejsc pasujących do ciągu tekstowego i ustawionych preferencji lokalizacji.
Oprócz wymaganych parametrów Wyszukaj tekst (New) obsługuje doprecyzowywanie zapytań za pomocą parametrów opcjonalnych, co pozwala uzyskać lepsze wyniki.
Narzędzie APIs Explorer umożliwia wysyłanie żądań w czasie rzeczywistym, dzięki czemu możesz zapoznać się z interfejsem API i jego opcjami:
Żądania wyszukiwania tekstowego (nowe)
Żądanie wyszukiwania tekstowego (nowe) to żądanie HTTP POST w tej postaci:
https://places.googleapis.com/v1/places:searchText
Przekaż wszystkie parametry w treści żądania JSON lub w nagłówkach w ramach żądania POST. Na przykład:
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \
'https://places.googleapis.com/v1/places:searchText'Odpowiedzi z Wyszukaj tekst (New)
Wyszukiwanie tekstowe (nowe) zwraca obiekt JSON jako odpowiedź. W odpowiedzi:
- Tablica
placeszawiera wszystkie pasujące miejsca. - Każde miejsce w tablicy jest reprezentowane przez obiekt
Place. ObiektPlacezawiera szczegółowe informacje o jednym miejscu. - Obiekt FieldMask przekazany w żądaniu określa listę pól zwracanych w obiekcie
Place. - Nie ma gwarancji, że lista zwróconych miejsc będzie spójna w przypadku identycznych żądań.
Kompletny obiekt JSON ma postać:
{
"places": [
{
object (Place)
}
]
}Wymagane parametry
-
FieldMask
Określ listę pól, które mają zostać zwrócone w odpowiedzi, tworząc maskę pola odpowiedzi. Przekaż maskę pola odpowiedzi do metody, używając parametru adresu URL
$fieldslubfieldsalbo nagłówka HTTPX-Goog-FieldMask. W odpowiedzi nie ma domyślnej listy zwracanych pól. Jeśli pominiesz maskę pola, metoda zwróci błąd.Maskowanie pól to dobra praktyka projektowa, która pozwala uniknąć żądania niepotrzebnych danych, co pomaga uniknąć niepotrzebnego czasu przetwarzania i opłat.
Podaj listę typów danych o miejscu rozdzieloną przecinkami, które mają zostać zwrócone. Możesz na przykład pobrać wyświetlaną nazwę i adres miejsca.
X-Goog-FieldMask: places.displayName,places.formattedAddress
Aby pobrać wszystkie pola, użyj
*.X-Goog-FieldMask: *
Określ co najmniej jedno z tych pól:
Te pola aktywują SKU Wyszukaj tekst Essentials ID Only:
places.attributions
places.id
places.consumerAlert
places.name*
nextPageToken
places.movedPlace
places.movedPlaceId* Pole
places.namezawiera nazwę zasobu miejsca w formacie:places/PLACE_ID. Aby uzyskać dostęp do nazwy tekstowej miejsca, użyjplaces.displayNamew SKU Pro.Pełną listę pól i powiązanych z nimi kodów SKU znajdziesz w artykule Pola danych o miejscach (nowe).
Te pola aktywują SKU Wyszukaj tekst Pro:
places.accessibilityOptions
places.addressComponents
places.addressDescriptor*
places.adrFormatAddress
places.businessStatus
places.containingPlaces
places.displayName
places.formattedAddress
places.googleMapsLinks
places.googleMapsTypeLabel
places.googleMapsUri
places.iconBackgroundColor
places.iconMaskBaseUri
places.location
places.openingDate
places.photos
places.plusCode
places.postalAddress
places.primaryType
places.primaryTypeDisplayName
places.pureServiceAreaBusiness
places.shortFormattedAddress
places.searchUri
places.subDestinations
places.timeZone
places.types
places.utcOffsetMinutes
places.viewport
* Deskryptory adresów są ogólnie dostępne dla klientów w Indiach, a w innych krajach są dostępne w wersji eksperymentalnej.Pełną listę pól i powiązanych z nimi kodów SKU znajdziesz w artykule Pola danych o miejscach (nowe).
Te pola aktywują SKU Wyszukaj tekst Enterprise:
places.currentOpeningHours
places.currentSecondaryOpeningHours
places.internationalPhoneNumber
places.nationalPhoneNumber
places.priceLevel
places.priceRange
places.rating
places.regularOpeningHours
places.regularSecondaryOpeningHours
places.transitStation
places.userRatingCount
places.websiteUriPełną listę pól i powiązanych z nimi kodów SKU znajdziesz w artykule Pola danych o miejscach (nowe).
Te pola aktywują kod SKU Wyszukaj tekst Enterprise + Atmosphere:
places.allowsDogs
places.curbsidePickup
places.delivery
places.dineIn
places.editorialSummary
places.evChargeAmenitySummary
places.evChargeOptions
places.fuelOptions
places.generativeSummary
places.goodForChildren
places.goodForGroups
places.goodForWatchingSports
places.liveMusic
places.menuForChildren
places.neighborhoodSummary
places.parkingOptions
places.paymentOptions
places.outdoorSeating
places.reservable
places.restroom
places.reviews
places.reviewSummary
routingSummaries*
places.servesBeer
places.servesBreakfast
places.servesBrunch
places.servesCocktails
places.servesCoffee
places.servesDessert
places.servesDinner
places.servesLunch
places.servesVegetarianFood
places.servesWine
places.takeout
* Tylko wyszukiwanie tekstowe i wyszukiwanie w pobliżuPełną listę pól i powiązanych z nimi kodów SKU znajdziesz w artykule Pola danych o miejscach (nowe).
-
textQuery
Ciąg tekstowy, który ma zostać wyszukany. Na przykład „restauracja”, „ul. Główna 123” lub „najlepsze miejsce do odwiedzenia w San Francisco”. Interfejs API zwraca potencjalne dopasowania na podstawie tego ciągu znaków i porządkuje wyniki według ich trafności.
Wyszukiwanie tekstowe (nowe) nie jest przeznaczone do niejednoznacznych zapytań, takich jak:
Typ zapytania Przykład Zbyt wiele pojęć lub ograniczeń, takich jak nazwy wielu miejsc, dróg lub miast w jednym zapytaniu. "Market Street San Francisco San Jose Airport" Elementy adresu pocztowego nie są widoczne w Mapach Google. "C/O Jan Kowalski, ul. Główna 123"
"Skr. poczt. 13, San Francisco"nazwy firm, sieci lub kategorii połączone z lokalizacjami, w których te podmioty nie są dostępne; „Tesco w pobliżu Dallas w Teksasie” niejednoznaczne zapytania, które można interpretować na wiele sposobów; „Punkt odbioru ładowarek” nazwy historyczne, które nie są już używane; "Middlesex United Kingdom" Elementy lub intencje niegeoprzestrzenne „Ile łodzi jest w porcie Ventura?” nieoficjalne lub niestandardowe nazwy, „Jenga”
„Helter Skelter”Współrzędne geograficzne "37.422131,-122.084801"
Parametry opcjonalne
-
includeFutureOpeningBusinesses
Jeśli ma wartość
true, zwraca firmy, które mają zostać otwarte w przyszłości. Domyślna wartość tofalse.
Aby pobrać stan firmy, uwzględnijplaces.businessStatusw masce pola żądania. Aby pobrać przewidywaną datę otwarcia firmy, dodajplaces.openingDatedo maski pola żądania. -
includedType
Filtruje wyniki, aby wyświetlać miejsca pasujące do określonego typu zdefiniowanego w Tabeli A. Możesz określić tylko 1 typ. Na przykład:
"includedType":"bar""includedType":"pharmacy"
Wyszukiwanie tekstowe (nowe) stosuje filtrowanie według typu w przypadku niektórych zapytań, w zależności od ich zastosowania. Na przykład filtrowanie według typu może nie być stosowane do zapytań o konkretne adresy („ul. Główna 123”), ale prawie zawsze jest stosowane do zapytań kategorialnych („sklepy w pobliżu” lub „centra handlowe”).
Aby zastosować filtrowanie według typu do wszystkich zapytań, ustaw
strictTypeFilteringnatrue. -
includePureServiceAreaBusinesses
Jeśli ustawisz wartość
true, odpowiedź będzie zawierać firmy, które odwiedzają klientów lub dostarczają im produkty bezpośrednio, ale nie mają fizycznej lokalizacji. Jeśli ustawisz wartośćfalse, interfejs API będzie zwracać tylko firmy, które mają fizyczną lokalizację. languageCode
Język, w którym mają być zwracane wyniki.
- Zobacz listę obsługiwanych języków. Google często aktualizuje listę obsługiwanych języków, więc może ona nie być kompletna.
-
Jeśli nie podasz parametru
languageCode, interfejs API domyślnie użyje wartościen. Jeśli podasz nieprawidłowy kod języka, interfejs API zwróci błądINVALID_ARGUMENT. - Interfejs API stara się podać adres, który jest czytelny zarówno dla użytkownika, jak i dla mieszkańców. Aby osiągnąć ten cel, zwraca adresy pocztowe w języku lokalnym, w razie potrzeby transliterowane na pismo czytelne dla użytkownika, z uwzględnieniem preferowanego języka. Wszystkie inne adresy są zwracane w preferowanym języku. Wszystkie komponenty adresu są zwracane w tym samym języku, który jest wybierany na podstawie pierwszego komponentu.
- Jeśli nazwa nie jest dostępna w preferowanym języku, interfejs API używa najbliższego dopasowania.
- Preferowany język ma niewielki wpływ na zestaw wyników, które interfejs API zwraca, oraz na kolejność, w jakiej są zwracane. Geokoder interpretuje skróty w różny sposób w zależności od języka, np. skróty typów ulic lub synonimy, które mogą być prawidłowe w jednym języku, ale nie w innym.
locationBias
Określa obszar wyszukiwania. Ta lokalizacja służy jako odchylenie, co oznacza, że mogą być zwracane wyniki dotyczące określonej lokalizacji, w tym wyniki spoza określonego obszaru.
Możesz określić
locationRestrictionlublocationBias, ale nie obie te wartości. ParametrlocationRestrictionokreśla region, w którym muszą znajdować się wyniki, a parametrlocationBiasokreśla region, w którym wyniki prawdopodobnie będą się znajdować lub będą blisko niego, ale mogą też znajdować się poza nim.Określ region jako prostokątny widoczny obszar lub okrąg.
Okrąg jest definiowany przez punkt środkowy i promień w metrach. Promień musi mieścić się w zakresie od 0,0 do 50 000,0 włącznie. Domyślny promień to 0,0. Na przykład:
"locationBias": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 500.0 } }
Prostokąt to widoczny obszar szerokości i długości geograficznej, reprezentowany przez 2 przeciwległe punkty po przekątnej. Punkt dolny oznacza południowo-zachodni róg prostokąta, a punkt górny – północno-wschodni.
Widoczny obszar jest uważany za region zamknięty, co oznacza, że obejmuje on swoje granice. Szerokość geograficzna musi mieścić się w zakresie od -90 do 90 stopni, a długość geograficzna – od -180 do 180 stopni:
- Jeśli
low=high, widoczny obszar składa się z tego pojedynczego punktu. - Jeśli
low.longitude>high.longitude, zakres długości geograficznej jest odwrócony (widoczny obszar przekracza linię długości geograficznej 180 stopni). - Jeśli
low.longitude= –180 stopni, ahigh.longitude= 180 stopni, widoczny obszar obejmuje wszystkie długości geograficzne. - Jeśli
low.longitude= 180 stopni, ahigh.longitude= –180 stopni, zakres długości geograficznej jest pusty. - Jeśli
low.latitude>high.latitude, zakres szerokości geograficznej jest pusty.
Należy podać zarówno wartość dolną, jak i górną, a reprezentowane pole nie może być puste. Pusty widoczny obszar powoduje błąd.
Na przykład ten widoczny obszar obejmuje cały Nowy Jork:
"locationBias": { "rectangle": { "low": { "latitude": 40.477398, "longitude": -74.259087 }, "high": { "latitude": 40.91618, "longitude": -73.70018 } } }
- Jeśli
locationRestriction
Określa obszar wyszukiwania tylko w przypadku zapytań dotyczących kategorii, które mogą zwracać wiele miejsc (np. „Restauracje w Nowym Jorku” lub „Centra handlowe”). Wyniki spoza określonego obszaru nie są zwracane.
Określ region jako prostokątny widoczny obszar. Przykład definiowania widocznego obszaru znajdziesz w opisie
locationBias.Możesz określić
locationRestrictionlublocationBias, ale nie obie te wartości. ParametrlocationRestrictionokreśla region, w którym muszą znajdować się wyniki, a parametrlocationBiasokreśla region, w którym wyniki prawdopodobnie będą się znajdować lub będą blisko niego, ale mogą też znajdować się poza nim.evOptions
Określa parametry identyfikacji dostępnych złączy do ładowania pojazdów elektrycznych i stawek za ładowanie.
connectorTypes
Filtruje według typu złącza ładowania EV dostępnego w danym miejscu. Miejsce, które nie obsługuje żadnego z typów złączy, zostanie odfiltrowane. Obsługiwane typy złączy do ładowania EV obejmują ładowarki łączone (AC i DC), ładowarki Tesla, ładowarki zgodne ze standardem GB/T (do szybkiego ładowania EV w Chinach) i ładowarki do gniazdek ściennych. Więcej informacji znajdziesz w dokumentacji.
- Aby filtrować wyniki dla określonego obsługiwanego oprogramowania sprzęgającego, ustaw
connectorTypesna tę wartość. Aby na przykład znaleźć złącza J1772 typu 1, ustaw parametrconnectorTypesnaEV_CONNECTOR_TYPE_J1772. - Aby filtrować wyniki pod kątem nieobsługiwanych oprogramowań sprzęgających, ustaw
connectorTypesnaEV_CONNECTOR_TYPE_OTHER. - Aby filtrować wyniki pod kątem dowolnego typu złącza, które jest gniazdkiem ściennym, ustaw
connectorTypesnaEV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET. - Aby filtrować wyniki według dowolnego typu oprogramowania sprzęgającego, ustaw
connectorTypesnaEV_CONNECTOR_TYPE_UNSPECIFIEDlub nie ustawiaj wartości dlaconnectorTypes.
- Aby filtrować wyniki dla określonego obsługiwanego oprogramowania sprzęgającego, ustaw
minimumChargingRateKw
Filtruje miejsca według minimalnej szybkości ładowania EV w kilowatach (kW). Wszystkie miejsca z szybkością ładowania mniejszą niż minimalna są odfiltrowywane. Jeśli na przykład chcesz znaleźć ładowarki EV o mocy co najmniej 10 kW, możesz ustawić ten parametr na „10”.
minRating
Ogranicza wyniki tylko do tych, których średnia ocena użytkowników jest większa lub równa temu limitowi. Wartości muszą mieścić się w zakresie od 0,0 do 5,0 (włącznie) i być wielokrotnością 0,5. Na przykład: 0, 0,5, 1,0, … , 5,0 włącznie. Wartości są zaokrąglane w górę do najbliższej wielokrotności 0,5. Na przykład wartość 0,6 eliminuje wszystkie wyniki z oceną mniejszą niż 1,0.
openNow
Jeśli ma wartość
true, zwracane są tylko te miejsca, które są otwarte w momencie wysłania zapytania. Jeślifalse, zwróć wszystkie firmy niezależnie od stanu otwarcia. Jeśli ustawisz ten parametr nafalse, zwracane będą miejsca, które nie mają określonych godzin otwarcia w bazie danych Miejsc Google.pageSize
Określa liczbę wyników (od 1 do 20) wyświetlanych na każdej stronie. Jeśli na przykład ustawisz wartość
pageSizena 5, na pierwszej stronie pojawi się maksymalnie 5 wyników. Jeśli zapytanie może zwrócić więcej wyników, odpowiedź zawiera parametrnextPageToken, który możesz przekazać w kolejnym żądaniu, aby uzyskać dostęp do następnej strony.To pole zastępuje wycofane pole
maxResultCount. Jeśli określisz zarównopageSize, jak imaxResultCount, interfejs API użyjepageSizei zignorujemaxResultCount.pageToken
Określa parametr
nextPageTokenz treści odpowiedzi poprzedniej strony.-
priceLevels
Ogranicz wyszukiwanie do miejsc oznaczonych określonymi poziomami cen. Domyślnie wybrane są wszystkie poziomy cen.
Poziomy cen mogą być dostępne w przypadku miejsc tego typu:
Jeśli podasz parametr
priceLevels, miejsca nieobsługiwanych typów nie będą uwzględniane w odpowiedzi.Określ tablicę zawierającą co najmniej 1 wartość zdefiniowaną przez
PriceLevel.Na przykład:
"priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
rankPreference
Określa, jak wyniki są porządkowane w odpowiedzi na podstawie typu zapytania:
- W przypadku zapytania kategorialnego, takiego jak „Restauracje w Nowym Jorku”, domyślną wartością jest
RELEVANCE(wyniki są sortowane według trafności wyszukiwania). Możesz ustawić parametrrankPreferencenaRELEVANCElubDISTANCE(wyniki będą sortowane według odległości). - W przypadku zapytania, które nie jest kategorią, np. „Mountain View, CA”, zalecamy pozostawienie parametru
rankPreferencebez ustawionej wartości.
- W przypadku zapytania kategorialnego, takiego jak „Restauracje w Nowym Jorku”, domyślną wartością jest
regionCode
Kod regionu używany do formatowania odpowiedzi, określony jako dwuznakowy kod CLDR. Ten parametr może też wpływać na wyniki wyszukiwania. Nie ma wartości domyślnej.
Jeśli nazwa kraju w polu
formattedAddressw odpowiedzi jest zgodna zregionCode, kod kraju jest pomijany w poluformattedAddress. Ten parametr nie ma wpływu naadrFormatAddress, który zawsze zawiera nazwę kraju, jeśli jest dostępna, ani nashortFormattedAddress, który nigdy jej nie zawiera.Większość kodów CLDR jest identyczna z kodami ISO 3166-1, z kilkoma wyjątkami. Na przykład domena ccTLD Wielkiej Brytanii to „uk” (.co.uk), a jej kod ISO 3166-1 to „gb” (technicznie dla podmiotu „Zjednoczone Królestwo Wielkiej Brytanii i Irlandii Północnej”). Parametr może wpływać na wyniki na podstawie obowiązujących przepisów.
strictTypeFiltering
Jest używany z parametrem
includedType. Jeśli ustawisz wartośćtrue, zwracane będą tylko miejsca pasujące do określonych typów określonych przezincludedType. Jeśli ma wartość false (domyślnie), odpowiedź może zawierać miejsca, które nie pasują do określonych typów.
Przykłady wyszukiwania tekstowego (nowego)
Znajdź miejsce według ciągu zapytania
Poniższy przykład pokazuje żądanie wyszukiwania tekstowego (nowego) dotyczące „pikantnego jedzenia wegetariańskiego w Sydney w Australii”:
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress' \
'https://places.googleapis.com/v1/places:searchText'
Zwróć uwagę, że nagłówek X-Goog-FieldMask określa, że odpowiedź zawiera te pola danych: places.displayName,places.formattedAddress.
Odpowiedź ma wtedy taką postać:
{ "places": [ { "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "formattedAddress": "175 First Ave, Five Dock NSW 2046, Australia", "displayName": { "text": "Veggo Sizzle - Vegan & Vegetarian Restaurant, Five Dock, Sydney", "languageCode": "en" } }, ... ] }
Aby uzyskać dodatkowe informacje, dodaj do maski pola więcej typów danych.
Możesz na przykład dodać places.types,places.websiteUri, aby uwzględnić w odpowiedzi typ restauracji i adres internetowy:
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.types,places.websiteUri' \
'https://places.googleapis.com/v1/places:searchText'Odpowiedź ma teraz postać:
{ "places": [ { "types": [ "vegetarian_restaurant", "vegan_restaurant", "chinese_restaurant", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "websiteUri": "http://www.motherchusvegetarian.com.au/", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "types": [ "vegan_restaurant", "thai_restaurant", "vegetarian_restaurant", "indian_restaurant", "italian_restaurant", "american_restaurant", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "175 First Ave, Five Dock NSW 2046, Australia", "websiteUri": "http://www.veggosizzle.com.au/", "displayName": { "text": "Veggo Sizzle - Vegan & Vegetarian Restaurant, Five Dock, Sydney", "languageCode": "en" } }, ... ] }
Filtrowanie miejsc według poziomu cen
Użyj opcji priceLevel, aby przefiltrować wyniki i wyświetlić restauracje określone jako niedrogie lub umiarkowanie drogie:
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
"priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \
'https://places.googleapis.com/v1/places:searchText'W tym przykładzie użyto też nagłówka X-Goog-FieldMask, aby dodać pole danych places.priceLevel do odpowiedzi, dzięki czemu ma ona postać:
{ "places": [ { "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "formattedAddress": "115 King St, Newtown NSW 2042, Australia", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Green Mushroom", "languageCode": "en" } }, ... ] }
Dodaj dodatkowe opcje, aby zawęzić wyszukiwanie, takie jak includedType, minRating, rankPreference, openNow i inne parametry opisane w sekcji Parametry opcjonalne.
Ograniczanie wyszukiwania do określonego obszaru
Aby ograniczyć wyszukiwanie do danego obszaru, użyj operatora locationRestriction lub locationBias, ale nie obu jednocześnie. Parametr locationRestriction określa region, w którym muszą znajdować się wyniki, a parametr locationBias określa region, w pobliżu którego muszą znajdować się wyniki, ale mogą być poza tym obszarem.
Ograniczanie obszaru za pomocą parametru locationRestriction
Użyj parametru locationRestriction, aby ograniczyć wyniki zapytania do określonego regionu. W treści żądania podaj wartości szerokości i długości geograficznej low i high, które definiują granicę regionu.
Poniższy przykład pokazuje żądanie wyszukiwania tekstowego (nowego) dla „jedzenia wegetariańskiego” w Nowym Jorku. To żądanie zwraca tylko pierwszych 10 wyników dotyczących otwartych miejsc.
curl -X POST -d '{
"textQuery" : "vegetarian food",
"pageSize" : "10",
"locationRestriction": {
"rectangle": {
"low": {
"latitude": 40.477398,
"longitude": -74.259087
},
"high": {
"latitude": 40.91618,
"longitude": -73.70018
}
}
}
}' \
-H 'Content-Type: application/json' \
-H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.id,places.formattedAddress' \
'https://places.googleapis.com/v1/places:searchText'
Faworyzowanie obszaru za pomocą parametru locationBias
Poniższy przykład pokazuje żądanie wyszukiwania tekstowego (nowe) dotyczące „jedzenia wegetariańskiego” z uwzględnieniem lokalizacji w promieniu 500 metrów od punktu w centrum San Francisco. To żądanie zwraca tylko pierwszych 10 wyników dotyczących otwartych miejsc.
curl -X POST -d '{
"textQuery" : "vegetarian food",
"openNow": true,
"pageSize": 10,
"locationBias": {
"circle": {
"center": {"latitude": 37.7937, "longitude": -122.3965},
"radius": 500.0
}
},
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress' \
'https://places.googleapis.com/v1/places:searchText'
Wyszukiwanie ładowarek EV o minimalnej szybkości ładowania
Używaj minimumChargingRateKw i connectorTypes, aby wyszukiwać miejsca z dostępnymi ładowarkami zgodnymi z Twoim pojazdem elektrycznym.
Poniższy przykład pokazuje żądanie dotyczące ładowarek EV typu Tesla i J1772 typu 1 o minimalnej szybkości ładowania 10 kW w Mountain View w Kalifornii. Zwracane są tylko 4 wyniki.
curl -X POST -d '{
"textQuery": "EV Charging Station Mountain View",
"pageSize": 4,
"evOptions": {
"minimumChargingRateKw": 10,
"connectorTypes": ["EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TESLA"]
}
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H "X-Goog-FieldMask: places.displayName,places.evChargeOptions" \
'https://places.googleapis.com/v1/places:searchText'
Żądanie zwraca tę odpowiedź:
{ "places": [ { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 16, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_CHADEMO", "maxChargeRateKw": 100, "count": 8, "availableCount": 5, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 100, "count": 2, "availableCount": 2, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, ... ] } }, { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 6, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 100, "count": 4, "availableCount": 3, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 350, "count": 2, "availableCount": 0, "outOfServiceCount": 2, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" } ] } }, ... ] }
Wyszukiwanie firm działających na określonym obszarze
Użyj parametru includePureServiceAreaBusinesses, aby wyszukać firmy, które nie mają fizycznego adresu (np. mobilna usługa sprzątania lub food truck).
Poniższy przykład pokazuje zapytanie o hydraulików w Krakowie:
curl -X POST -d '{
"textQuery" : "plumber San Francisco",
"includePureServiceAreaBusinesses": true
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress' \
'https://places.googleapis.com/v1/places:searchText'
W odpowiedzi firmy, które nie mają fizycznego adresu, nie podają pola formattedAddress:
{ "places": [ { "formattedAddress": "3450 Sacramento St #204, San Francisco, CA 94118, USA", "displayName": { "text": "Advanced Plumbing & Drain", "languageCode": "en" } }, { "displayName": { "text": "Starboy Plumbing Inc.", "languageCode": "en" } }, ... ] }
określić liczbę wyników na stronie,
Użyj parametru pageSize, aby określić liczbę wyników zwracanych na stronie. Parametr nextPageToken w treści odpowiedzi zawiera token, którego można użyć w kolejnych wywołaniach, aby uzyskać dostęp do następnej strony wyników.
Poniższy przykład pokazuje żądanie „pizza w Nowym Jorku” ograniczone do 5 wyników na stronę:
curl -X POST -d '{
"textQuery": "pizza in New York",
"pageSize": 5
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H "X-Goog-FieldMask: places.id,nextPageToken" \
'https://places.googleapis.com/v1/places:searchText'
{ "places": [ { "id": "ChIJifIePKtZwokRVZ-UdRGkZzs" }, { "id": "ChIJPxPd_P1YwokRfzLhSiACEoU" }, ... ], "nextPageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q" }
Aby uzyskać dostęp do następnej strony wyników, użyj pageToken, aby przekazać nextPageToken w treści żądania:
curl -X POST -d '{
"textQuery": "pizza in New York",
"pageSize": 5,
"pageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H "X-Goog-FieldMask: places.id,nextPageToken" \
'https://places.googleapis.com/v1/places:searchText'
{ "places": [ { "id": "ChIJL-LN1N1ZwokR8K2jACu6Ydw" }, { "id": "ChIJjaD94kFZwokR-20CXqlpy_4" }, ... ], "nextPageToken": "AeCrKXvPd6uUy-oj96W2OaqEe2pUD8QTxOM8-sKfUcFsC9t2Wey5qivrKGoGSxcZnyc7RPmaFfAktslrKbUh31ZDTkL0upRmaxA7c_c" }
Pobieranie deskryptorów adresu
Deskryptory adresów zawierają informacje o lokalizacji miejsca, w tym o pobliskich punktach orientacyjnych i obszarach, w których się znajduje.
Poniższy przykład pokazuje żądanie wyszukiwania tekstowego (nowego) dotyczące miejsc w pobliżu centrum handlowego w San Jose. W tym przykładzie w masce pola uwzględniasz addressDescriptors:
curl -X POST -d '{
"textQuery": "clothes",
"maxResultCount": 5,
"locationBias": {
"circle": {
"center": {
"latitude": 37.321328,
"longitude": -121.946275
}
}
},
"rankPreference":"RANK_PREFERENCE_UNSPECIFIED"
}' \
-H 'Content-Type: application/json' \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName,places.addressDescriptor" \
https://places.googleapis.com/v1/places:searchText
Odpowiedź zawiera miejsce określone w żądaniu, listę pobliskich punktów orientacyjnych i ich odległość od miejsca oraz listę obszarów i ich relację z miejscem:
{ "places": [ { "displayName": { "text": "Urban Outfitters", "languageCode": "en" }, "addressDescriptor": { "landmarks": [ { "name": "places/ChIJVVVVUB7Lj4ARXyb4HFVDV8s", "placeId": "ChIJVVVVUB7Lj4ARXyb4HFVDV8s", "displayName": { "text": "Westfield Valley Fair", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "food", "movie_theater", "point_of_interest", "restaurant", "shoe_store", "shopping_mall", "store" ], "spatialRelationship": "WITHIN", "straightLineDistanceMeters": 133.72855 }, { "name": "places/ChIJ62_oCR7Lj4AR_MGWkSPotD4", "placeId": "ChIJ62_oCR7Lj4AR_MGWkSPotD4", "displayName": { "text": "Nordstrom", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "point_of_interest", "shoe_store", "store" ], "straightLineDistanceMeters": 250.99161 }, ... ], "areas": [ { "name": "places/ChIJb3F-EB7Lj4ARnHApQ_Hu1gI", "placeId": "ChIJb3F-EB7Lj4ARnHApQ_Hu1gI", "displayName": { "text": "Westfield Valley Fair", "languageCode": "en" }, "containment": "WITHIN" }, { "name": "places/ChIJXYuykB_Lj4AR1Ot8nU5q26Q", "placeId": "ChIJXYuykB_Lj4AR1Ot8nU5q26Q", "displayName": { "text": "Valley Fair", "languageCode": "en" }, "containment": "WITHIN" }, ... ] } }, ... ] }
Znajdowanie firm, które zostaną otwarte w przyszłości
Poniższy przykład pokazuje żądanie wyszukiwania tekstowego (nowego) dotyczące firm, które zostaną otwarte w przyszłości w New Meadows w Idaho:
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.id,places.displayName,places.businessStatus,places.openingDate" \
-d '{
"textQuery": "Roberts Greenhouse and Tree Farm",
"includeFutureOpeningBusinesses": true,
"maxResultCount": 20,
"locationBias": {
"circle": {
"center": {"latitude": 44.9755100, "longitude": -116.2842180},
"radius": 20
}
}
}' \
"https://places.googleapis.com/v1/places:searchText"
Odpowiedź zawiera firmy, które zostaną otwarte w przyszłości, wraz z ich statusem i przewidywaną datą otwarcia:
{ "places": [ { "id": "ChIJp1-VoKWJplQRMz8g-7Wa3Do", "businessStatus": "FUTURE_OPENING", "displayName": { "text": "Roberts Greenhouse and Tree Farm", "languageCode": "en" }, "openingDate": { "year": 2026, "month": 4, "day": 15 } } ] }
Uzyskiwanie informacji o stacjach transportu publicznego
Do znajdowania stacji transportu publicznego możesz używać usługi Wyszukaj tekst (New). Treść odpowiedzi zawiera informacje o stacji, w tym jej nazwę, powiązanych przewoźników i linie transportu publicznego, które ją obsługują. Dodatkowo odpowiedź zawiera ikonę pojazdu i kolory, których możesz użyć do wyświetlenia informacji o stacji transportu publicznego.
Poniżej znajdziesz przykładowe żądanie dotyczące „Grand Central Station”:
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.id,places.displayName,places.transitStation" \
-d '{
"textQuery": "Grand Central Station"
}' \
"https://places.googleapis.com/v1/places:searchText"
Treść odpowiedzi zawiera informacje o każdej stacji w promieniu, liniach obsługiwanych przez stację, alertach wydanych przez przewoźników na tym przystanku oraz informacje o odjazdach:
{ "places": [ { "id": "ChIJhRwB-yFawokRi0AhGH87UTc", "displayName": { "text": "Grand Central", "languageCode": "en" }, "transitStation": { "displayName": { "text": "Grand Central", "languageCode": "en" }, "agencies": [ { "displayName": { "text": "Metro-North Railroad", "languageCode": "en" }, "url": "http://www.mta.info/mnr", "lines": [ { "id": "ChIJOXpD29y2wokRryDO0CocwK0", "vehicleType": "HEAVY_RAIL", "displayName": { "text": "Harlem", "languageCode": "en" }, "textColor": "#FFFFFF", "backgroundColor": "#0061AA", "vehicleIcon": { "url": "https://maps.gstatic.com/mapfiles/transit/iw2/svg/rail2.svg" }, "alerts": [ { "effect": "OTHER", "texts": [ { "headline": { "text": "Information", "languageCode": "en" }, "summary": { "text": "Temporary platforms are in place at Botanical Garden, Williams Bridge, and Woodlawn for northbound travel. Build in extra travel time to reach the platform.", "languageCode": "en" }, "fullDescription": { "text": "What's Happening? We are renovating some Harlem Line stations in the Bronx. Learn more about the project here.", "languageCode": "en" } } ], "detailsUrls": [ { "url": "https://new.mta.info/" } ], "cause": "OTHER_CAUSE", "startTime": "2026-04-16T04:00:00Z", "endTime": "2026-12-01T04:45:00Z", "attribution": { "link": { "text": "new.mta.info", "url": "https://new.mta.info/" } }, "createTime": "2026-05-15T22:39:30Z", "severityLevel": "INFO" } ] }, ... ] }, ... ] "stops": [ { "id": "ChIJOfdrigFZwokRJPllLwfPrJY", "location": { "latitude": 40.752823, "longitude": -73.977195999999992 }, "wheelchairAccessibleEntrance": true } ], "departureBoards": [ { "displayType": "TIME_CENTRIC", "rows": [ { "departures": [ { "timedDeparture": { "scheduledTime": "2026-05-15T22:42:00Z", "timingType": "SCHEDULED", "predictedTime": "2026-05-15T22:42:00Z", "updateTime": "2026-05-15T22:38:50Z" }, "originallyScheduledStopId": "ChIJOfdrigFZwokRJPllLwfPrJY", "lineId": "ChIJAfBuQhwg6IkRYnFpClHxFrM" } ] }, ... ] } ] } }, { "id": "ChIJ_4EAi-pZwokRWe5T1JmmWmc", "displayName": { "text": "Grand Central Station", "languageCode": "en" } } ] }
Uzyskiwanie informacji o wejściach i punktach nawigacyjnych
Możesz poprosić o wejścia i punkty nawigacyjne dla miejsca docelowego. Wejścia określają punkty wejścia i wyjścia z miejsca (np. różne bramki na lotnisku lub w centrum handlowym). Punkty nawigacyjne określają lokalizacje przy drodze, w których powinna kończyć się nawigacja. Jest to przydatne, gdy chcesz skierować użytkowników na właściwą stronę drogi lub do konkretnego punktu wysiadania.
Punkty nawigacyjne zwracają navigationPointToken. Możesz przekazać ten token do pakietu Navigation SDK (dostępnego na Android i iOS) lub interfejsu Routes API, aby kierować kierowców do tej konkretnej lokalizacji. Więcej informacji znajdziesz w artykule Tokeny punktów nawigacji.
Poniższy przykład pokazuje żądanie wyszukiwania tekstowego (nowego) dla „San Francisco International Airport”, które zawiera entrances i navigationPoints w masce pola:
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.id,places.displayName,places.entrances,places.navigationPoints" \
-d '{
"textQuery": "San Francisco International Airport",
"pageSize": 1
}' \
"https://places.googleapis.com/v1/places:searchText"
Odpowiedź zawiera wejścia i punkty nawigacyjne miejsca:
{ "places": [ { "id": "ChIJVVVVVYx3j4ARP-3NGldc8qQ", "displayName": { "text": "San Francisco International Airport", "languageCode": "en" }, "entrances": [ { "location": { "latitude": 37.6172154, "longitude": -122.3839724 } }, { "location": { "latitude": 37.6174073, "longitude": -122.384196 } }, ... ], "navigationPoints": [ { "navigationPointToken": "ChIJoioBjMLOQkAR0A3yH_eYXsA...", "displayName": { "text": "International Terminal Departures Level", "languageCode": "en" }, "location": { "latitude": 37.6153121, "longitude": -122.3900833 }, "travelModes": ["WALK"] }, { "navigationPointToken": "ChIJy5JKws_OQkAROx0jNN2YXsA...", "displayName": { "text": "Domestic Garage - SFO Short Term Parking", "languageCode": "en" }, "location": { "latitude": 37.6157153, "longitude": -122.3885012 }, "travelModes": ["DRIVE", "WALK"], "usages": ["PARKING"] }, ... ] } ] }
Wypróbuj
Narzędzie APIs Explorer umożliwia wysyłanie przykładowych żądań, dzięki czemu możesz zapoznać się z interfejsem API i jego opcjami.
Po prawej stronie kliknij ikonę interfejsu API api.
Opcjonalnie możesz edytować parametry żądania.
Kliknij przycisk Wykonaj. W oknie wybierz konto, którego chcesz użyć do wysłania prośby.
W panelu APIs Explorer kliknij ikonę pełnego ekranu fullscreen, aby rozwinąć okno APIs Explorer.