Wprowadzenie
Wyszukiwanie tekstowe (nowe) zwraca informacje o zestawie 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 wszelkich ustawionych preferencji lokalizacyjnych.
Oprócz parametrów wymaganych usługa Text Search (New) obsługuje uściślanie zapytań za pomocą parametrów opcjonalnych, co pozwala uzyskać lepsze wyniki.
Narzędzie API 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 (nowego) 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 wyszukiwania tekstowego (nowa wersja)
Wyszukiwanie tekstowe (nowe) zwraca obiekt JSON jako odpowiedź. W odpowiedzi:
- Tablica
places
zawiera wszystkie pasujące miejsca. - Każde miejsce w tablicy jest reprezentowane przez obiekt
Place
. ObiektPlace
zawiera szczegółowe informacje o jednym miejscu. - FieldMask przekazany w żądaniu określa listę pól zwracanych w obiekcie
Place
.
Pełny obiekt JSON ma postać:
{ "places": [ { object (Place) } ] }
Wymagane parametry
-
FieldMask
Określ listę pól, które mają być zwracane w odpowiedzi, tworząc maskę pola odpowiedzi. Przekaż maskę pola odpowiedzi do metody za pomocą parametru adresu URL
$fields
lubfields
albo za pomocą 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 projektowania, która pozwala uniknąć żądania niepotrzebnych danych, co z kolei pomaga uniknąć niepotrzebnego czasu przetwarzania i opłat.
Podaj rozdzieloną przecinkami listę typów danych o miejscach, które mają zostać zwrócone. Na przykład, aby pobrać nazwę wyświetlaną i adres miejsca.
X-Goog-FieldMask: places.displayName,places.formattedAddress
Użyj
*
, aby pobrać wszystkie pola.X-Goog-FieldMask: *
Określ co najmniej jedno z tych pól:
Te pola wywołują Text Search Essentials ID Only SKU:
places.attributions
places.id
places.name
*
nextPageToken
* Pole
places.name
zawiera nazwę zasobu miejsca w formacie:places/PLACE_ID
. Użyjplaces.displayName
w kodzie SKU wersji Pro, aby uzyskać dostęp do nazwy tekstowej miejsca.Te pola wywołują jednostkę SKU Text Search Pro:
places.accessibilityOptions
places.addressComponents
places.addressDescriptor
*
places.adrFormatAddress
places.businessStatus
places.containingPlaces
places.displayName
places.formattedAddress
places.googleMapsLinks
places.googleMapsUri
places.iconBackgroundColor
places.iconMaskBaseUri
places.location
places.photos
places.plusCode
places.postalAddress
places.primaryType
places.primaryTypeDisplayName
places.pureServiceAreaBusiness
places.shortFormattedAddress
places.subDestinations
places.types
places.utcOffsetMinutes
places.viewport
* Opisy adresów są ogólnie dostępne dla klientów w Indiach, a w innych krajach są w fazie eksperymentalnej.
Te pola wywołują kod SKU Text Search Enterprise:
places.currentOpeningHours
places.currentSecondaryOpeningHours
places.internationalPhoneNumber
places.nationalPhoneNumber
places.priceLevel
places.priceRange
places.rating
places.regularOpeningHours
places.regularSecondaryOpeningHours
places.userRatingCount
places.websiteUri
Te pola wywołują kod SKU Text Search 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żu
-
textQuery
Ciąg tekstowy, według którego ma być prowadzone wyszukiwanie, np. „restauracja”, „ul. Główna 123” lub „najlepsze miejsce do odwiedzenia w San Francisco”. Interfejs API zwraca pasujące kandydatury na podstawie tego ciągu znaków i porządkuje wyniki według ich trafności.
Parametry opcjonalne
includedType
Wyniki są dostosowywane do miejsc pasujących 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 możliwości zastosowania. Na przykład filtrowanie według typu może nie być stosowane w przypadku zapytań o konkretne adresy („ulica Główna 123”), ale jest prawie zawsze stosowane w przypadku zapytań kategorycznych („sklepy w pobliżu” lub „centra handlowe”).
Aby zastosować filtrowanie typu do wszystkich zapytań, ustaw
strictTypeFiltering
natrue
.-
includePureServiceAreaBusinesses
Jeśli wartość tego parametru to
true
, odpowiedź zawiera firmy, które odwiedzają klientów lub dostarczają im produkty bezpośrednio, ale nie mają fizycznej lokalizacji. Jeśli wartość tego parametru tofalse
, interfejs API zwraca tylko firmy z 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 wartości
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 ulicy, który jest czytelny zarówno dla użytkownika, jak i mieszkańców. Aby to osiągnąć, zwraca adresy w języku lokalnym, a w razie potrzeby transliteruje je na pismo czytelne dla użytkownika, uwzględniając preferowany język. Wszystkie pozostałe 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żyje najbliższego dopasowania.
- Preferowany język ma niewielki wpływ na zestaw wyników, które interfejs API wybiera do zwrócenia, oraz na kolejność, w jakiej są one 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 punkt odniesienia, co oznacza, że mogą być zwracane wyniki z okolic określonej lokalizacji, w tym wyniki spoza określonego obszaru.
Możesz określić
locationRestriction
lublocationBias
, ale nie oba te warunki jednocześnie.locationRestriction
określa region, w którym muszą się znajdować wyniki, alocationBias
określa region, w którym prawdopodobnie będą się znajdować wyniki lub w pobliżu którego będą się znajdować, ale mogą być poza tym obszarem.Określ region jako prostokątny widok 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 określony przez szerokość i długość geograficzną, reprezentowany przez 2 przeciwległe punkty: dolny i górny. Punkt dolny oznacza południowo-zachodni róg prostokąta, a punkt górny – północno-wschodni róg prostokąta.
Widoczny obszar jest uważany za zamknięty region, co oznacza, że obejmuje swoje granice. Zakres szerokości geograficznej musi się mieścić w przedziale od -90 do 90 stopni włącznie, a zakres długości geograficznej musi się mieścić w przedziale od -180 do 180 stopni włącznie:
- 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.
Musisz podać dolną i górną wartość, a reprezentowane pole nie może być puste. Pusty obszar wyświetlania powoduje błąd.
Na przykład ten obszar widoku w całości obejmuje 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. Wyniki spoza określonego obszaru nie są zwracane.
Określ region jako prostokątny widoczny obszar. Przykład definiowania widocznego obszaru znajdziesz w opisie elementu
locationBias
.Możesz określić
locationRestriction
lublocationBias
, ale nie oba te warunki jednocześnie.locationRestriction
określa region, w którym muszą się znajdować wyniki, alocationBias
określa region, w którym prawdopodobnie będą się znajdować wyniki lub w pobliżu którego będą się znajdować, ale mogą być poza tym obszarem.-
maxResultCount (wycofane)
Określa liczbę wyników (od 1 do 20) wyświetlanych na stronie. Jeśli np. ustawisz wartość
maxResultCount
na 5, na pierwszej stronie pojawi się maksymalnie 5 wyników. Jeśli zapytanie może zwrócić więcej wyników, odpowiedź zawiera tokennextPageToken
, który możesz przekazać w kolejnym żądaniu, aby uzyskać dostęp do następnej strony. evOptions
Określa parametry identyfikowania dostępnych złączy do ładowania pojazdów elektrycznych (EV) i szybkości ładowania.
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 ładowania pojazdów elektrycznych to ładowarki łączone (AC i DC), ładowarki Tesla, ładowarki zgodne z GB/T (do szybkiego ładowania pojazdów elektrycznych w Chinach) i ładowarki do gniazdek ściennych. Więcej informacji znajdziesz w dokumentacji.
- Aby filtrować wyniki pod kątem konkretnego obsługiwanego oprogramowania sprzęgającego, ustaw wartość
connectorTypes
. Jeśli na przykład chcesz znaleźć złącza typu 1 J1772, ustaw wartośćconnectorTypes
naEV_CONNECTOR_TYPE_J1772
. - Aby filtrować wyniki dotyczące nieobsługiwanych łączników, ustaw wartość parametru
connectorTypes
naEV_CONNECTOR_TYPE_OTHER
. - Aby odfiltrować wyniki dla dowolnego typu złącza, które jest gniazdkiem ściennym, ustaw wartość
connectorTypes
naEV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET
. - Aby filtrować wyniki według dowolnego typu złącza, ustaw wartość
connectorTypes
naEV_CONNECTOR_TYPE_UNSPECIFIED
lub nie ustawiaj wartościconnectorTypes
.
- Aby filtrować wyniki pod kątem konkretnego obsługiwanego oprogramowania sprzęgającego, ustaw wartość
minimumChargingRateKw
Filtruje miejsca według minimalnej szybkości ładowania EV w kilowatach (kW). Wszystkie miejsca, w których stawka za ładowanie jest niższa niż minimalna stawka za ładowanie, są odfiltrowywane. Jeśli na przykład chcesz znaleźć ładowarki EV o mocy ładowania 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 liczby z końcówką 0,5. Na przykład wartość 0,6 eliminuje wszystkie wyniki z oceną mniejszą niż 1,0.
openNow
Jeśli
true
, zwracaj tylko te miejsca, które są otwarte w momencie wysłania zapytania. Jeślifalse
, zwróć wszystkie firmy niezależnie od stanu otwarcia. Miejsca, które nie mają określonych godzin otwarcia w bazie danych Miejsc Google, są zwracane, jeśli ustawisz ten parametr nafalse
.pageSize
Określa liczbę wyników (od 1 do 20) wyświetlanych na stronie. Jeśli np. ustawisz wartość
pageSize
na 5, na pierwszej stronie pojawi się maksymalnie 5 wyników. Jeśli zapytanie może zwrócić więcej wyników, odpowiedź zawiera tokennextPageToken
, który możesz przekazać w kolejnym żądaniu, aby uzyskać dostęp do następnej strony.pageToken
Określa
nextPageToken
z treści odpowiedzi na poprzedniej stronie.-
priceLevels
Ogranicz wyszukiwanie do miejsc o określonym poziomie cen. Domyślnie wybrane są wszystkie poziomy cenowe.
Poziomy cen mogą być dostępne w przypadku miejsc tych typów:
Miejsca nieobsługiwanych typów nie zostaną uwzględnione w odpowiedzi, jeśli określono parametr
priceLevels
.Podaj tablicę zawierającą co najmniej 1 wartość zdefiniowaną przez
PriceLevel
.Na przykład:
"priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
rankPreference
Określa, w jaki sposób wyniki są klasyfikowane w odpowiedzi na podstawie typu zapytania:
- W przypadku zapytania kategorycznego, np. „Restauracje w Nowym Jorku”, domyślnie używana jest funkcja
RELEVANCE
(sortowanie wyników według trafności wyszukiwania). Możesz ustawić wartośćrankPreference
naRELEVANCE
lubDISTANCE
(sortowanie wyników według odległości). - W przypadku zapytania niekategorycznego, np. „Mountain View, CA”, zalecamy pozostawienie parametru
rankPreference
bez ustawionej wartości.
- W przypadku zapytania kategorycznego, np. „Restauracje w Nowym Jorku”, domyślnie używana jest funkcja
regionCode
Kod regionu używany do formatowania odpowiedzi, podany 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
formattedAddress
w odpowiedzi pasuje do wartościregionCode
, 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 istotnymi wyjątkami. Na przykład krajowa domena najwyższego poziomu Zjednoczonego Królestwa to „uk” (.co.uk), a kod ISO 3166-1 to „gb” (technicznie dla podmiotu „Zjednoczone Królestwo Wielkiej Brytanii i Irlandii Północnej”). W zależności od obowiązujących przepisów parametr może wpływać na wyniki.
strictTypeFiltering
Używany z parametrem
includedType
. Jeśli wartość tego parametru totrue
, zwracane są tylko miejsca pasujące do typów określonych przez parametrincludeType
. Gdy wartość jest fałszywa (domyślnie), odpowiedź może zawierać miejsca, które nie pasują do określonych typów.
Przykłady wyszukiwania tekstowego (nowego)
Znajdź miejsce za pomocą 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 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" } }, { "formattedAddress": "29 King St, Sydney NSW 2000, Australia", "displayName": { "text": "Peace Harmony", "languageCode": "en" } }, ... ] }
Dodaj do maski pola więcej typów danych, aby zwracać dodatkowe informacje.
Na przykład dodaj places.types,places.websiteUri
, aby w odpowiedzi uwzględnić 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
zdefiniowane jako niedrogie lub średnio 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,places.priceLevel
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, np. includedType
, minRating
, rankPreference
, openNow
i inne parametry opisane w sekcji Parametry opcjonalne.
Ograniczanie wyszukiwania do określonego obszaru
Aby ograniczyć wyszukiwanie do określonego obszaru, użyj właściwości locationRestriction
lub locationBias
, ale nie obu naraz. locationRestriction
określa region, w którym muszą się znajdować wyniki, a locationBias
określa region, w pobliżu którego muszą się znajdować 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 określają granicę regionu.
Poniższy przykład pokazuje żądanie wyszukiwania tekstowego (nowego) dotyczące „jedzenia wegetariańskiego” w Nowym Jorku. To żądanie zwraca tylko pierwsze 10 wyników w przypadku 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'
Określanie obszaru za pomocą parametru locationBias
Poniższy przykład pokazuje żądanie wyszukiwania tekstowego (nowego) dotyczące „jedzenia wegetariańskiego” z określeniem lokalizacji w promieniu 500 metrów od punktu w centrum San Francisco. To żądanie zwraca tylko pierwsze 10 wyników w przypadku 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żyj ikon minimumChargingRateKw
i connectorTypes
, aby wyszukać miejsca z dostępnymi ładowarkami zgodnymi z Twoim pojazdem elektrycznym.
Poniższy przykład pokazuje żądanie dotyczące złączy do ładowania pojazdów elektrycznych typu Tesla i J1772 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" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 350, "count": 6, "availableCount": 3, "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" } ] } }, { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 5, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_J1772", "maxChargeRateKw": 3.5999999046325684, "count": 1, "availableCount": 0, "outOfServiceCount": 1, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CHADEMO", "maxChargeRateKw": 50, "count": 2, "availableCount": 0, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 50, "count": 2, "availableCount": 0, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" } ] } }, { "displayName": { "text": "Electric Vehicle Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 10, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_OTHER", "maxChargeRateKw": 210, "count": 10 } ] } } ] }
Wyszukiwanie firm działających na określonym obszarze
Użyj parametru includePureServiceAreaBusinesses
, aby wyszukać firmy bez fizycznego adresu świadczenia usługi (np. mobilną firmę sprzątającą lub food trucka).
Poniższy przykład pokazuje żądanie dotyczące hydraulików w San Francisco:
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 bez fizycznego adresu obsługi nie uwzględniają pola formattedAddress
:
{ "places": [ { "formattedAddress": "3450 Sacramento St #204, San Francisco, CA 94118, USA", "displayName": { "text": "Advanced Plumbing & Drain", "languageCode": "en" } }, { "formattedAddress": "1455 Bancroft Ave, San Francisco, CA 94124, USA", "displayName": { "text": "Magic Plumbing Heating & Cooling", "languageCode": "en" } }, /.../ { "displayName": { "text": "Starboy Plumbing Inc.", "languageCode": "en" } }, { "formattedAddress": "78 Dorman Ave, San Francisco, CA 94124, USA", "displayName": { "text": "Cabrillo Plumbing, Heating & Air", "languageCode": "en" } }, { "formattedAddress": "540 Barneveld Ave # D, San Francisco, CA 94124, USA", "displayName": { "text": "Mr. Rooter Plumbing of San Francisco", "languageCode": "en" } }, /.../ { "displayName": { "text": "Pipeline Plumbing", "languageCode": "en" } }, { "formattedAddress": "350 Bay St #100-178, San Francisco, CA 94133, USA", "displayName": { "text": "One Source Plumbing and Rooter", "languageCode": "en" } }, /.../ ] }
Określanie liczby wyników do zwrócenia 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 stronie:
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" }, { "id": "ChIJrXXKn5NZwokR78g0ipCnY60" }, { "id": "ChIJ6ySICVZYwokR9rIK8HjXhzE" }, { "id": "ChIJ6xvs94VZwokRnT1D2lX2OTw" } ], "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" }, { "id": "ChIJ6ffdpJNZwokRmcafdROM5q0" }, { "id": "ChIJ8Q2WSpJZwokRQz-bYYgEskM" }, { "id": "ChIJ8164qwFZwokRhplkmhvq1uE" } ], "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.
Poniższy przykład pokazuje żądanie wyszukiwania tekstowego (nowego) miejsc w pobliżu centrum handlowego w San Jose. W tym przykładzie w polu mask: umieszczasz znak 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 tego miejsca oraz listę obszarów i ich relację do tego miejsca:
{ "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 }, { "name": "places/ChIJ8WvuSB7Lj4ARFyHppkxDRQ4", "placeId": "ChIJ8WvuSB7Lj4ARFyHppkxDRQ4", "displayName": { "text": "Macy's", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "point_of_interest", "store" ], "straightLineDistanceMeters": 116.24196 }, { "name": "places/ChIJ9d3plB_Lj4ARzyaU5bn80WY", "placeId": "ChIJ9d3plB_Lj4ARzyaU5bn80WY", "displayName": { "text": "Bank of America Financial Center", "languageCode": "en" }, "types": [ "bank", "establishment", "finance", "point_of_interest" ], "straightLineDistanceMeters": 121.61515 }, { "name": "places/ChIJaXCjxvXLj4ARCPmQpvJ52Lw", "placeId": "ChIJaXCjxvXLj4ARCPmQpvJ52Lw", "displayName": { "text": "Bloomingdale's", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "furniture_store", "home_goods_store", "point_of_interest", "shoe_store", "store" ], "straightLineDistanceMeters": 81.32396 } ], "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" }, { "name": "places/ChIJtYoUX2DLj4ARKoKOb1G0CpM", "placeId": "ChIJtYoUX2DLj4ARKoKOb1G0CpM", "displayName": { "text": "Central San Jose", "languageCode": "en" }, "containment": "WITHIN" } ] } }, /.../ ] }
Wypróbuj
Eksplorator interfejsów API umożliwia wysyłanie przykładowych żądań, dzięki czemu możesz zapoznać się z interfejsem API i jego opcjami.
Po prawej stronie strony kliknij ikonę interfejsu API api.
Opcjonalnie edytuj parametry żądania.
Kliknij przycisk Wykonaj. W oknie dialogowym wybierz konto, z którego chcesz wysłać prośbę.
W panelu APIs Explorer kliknij ikonę pełnego ekranu fullscreen, aby rozwinąć okno narzędzia.