Żądanie wyszukiwania w pobliżu (nowe) pobiera jako dane wejściowe region do przeszukania.
jest określona jako okrąg zdefiniowany przez współrzędne geograficzne punktu środkowego
okrąg i promień w metrach. Żądanie zwraca listę pasujących miejsc, a każde z nich jest reprezentowane przez
GMSPlace
obiektu w określonym obszarze wyszukiwania.
Domyślnie odpowiedź zawiera miejsca dowolnego typu w obszarze wyszukiwania. Opcjonalnie możesz filtrować odpowiedź, określając listę typów miejsc, które chcesz wyraźnie uwzględnić w wyniku lub z niej wykluczyć . Możesz na przykład określić, że chcesz uwzględnić w odpowiedzi tylko te miejsca, które są określonego typu „restauracja”, „piekarnia” i „kawiarnia” albo wykluczyć wszystkie miejsca typu „szkoła”.
Żądania wyszukiwania w pobliżu (nowe)
Wyślij prośbę o wyszukiwanie w pobliżu za pomocą połączenia
GMSPlacesClient searchNearbyWithRequest:
,
zaliczając
GMSPlaceSearchNearbyRequest
, który określa parametry żądania i metodę wywołania zwrotnego typu
GMSPlaceSearchNearbyResultCallback
przetwarza odpowiedź.
Obiekt GMSPlaceSearchNearbyRequest
określa wszystkie wartości
wymagane i opcjonalne
dla żądania. Wymagane parametry to:
- Lista pól do zwrócenia w obiekcie
GMSPlace
, tzw. maska pola zdefiniowana przezGMSPlaceProperty
Jeśli nie określisz co najmniej jednego pola na liście pól lub jeśli pominiesz listę pól, wywołanie zwróci błąd. - Ograniczenie lokalizacji, czyli kółko definiujące obszar wyszukiwania.
To przykładowe żądanie wyszukiwania w pobliżu określa, że odpowiedź obiekty GMSPlace
zawierają nazwę miejsca (GMSPlacePropertyName
) i jego współrzędne.
(GMSPlacePropertyCoordinate
) dla każdego obiektu GMSPlace
w wyszukiwaniu
wyników. Filtruje też odpowiedź, aby wyświetlić tylko miejsca typu „restauracja” i „kawiarnia”.
Swift
// Array to hold the places in the response var placeResults: [GMSPlace] = [] // Define the search area as a 500 meter diameter circle in San Francisco, CA. let circularLocationRestriction = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(37.7937, -122.3965), 500) // Specify the fields to return in the GMSPlace object for each place in the response. let placeProperties = [GMSPlaceProperty.name, GMSPlaceProperty.coordinate].map {$0.rawValue} // Create the GMSPlaceSearchNearbyRequest, specifying the search area and GMSPlace fields to return. var request = GMSPlaceSearchNearbyRequest(locationRestriction: circularLocationRestriction, placeProperties: placeProperties) let includedTypes = ["restaurant", "cafe"] request.includedTypes = includedTypes let callback: GMSPlaceSearchNearbyResultCallback = { [weak self] results, error in guard let self, error == nil else { if let error { print(error.localizedDescription) } return } guard let results = results as? [GMSPlace] else { return } placeResults = results } GMSPlacesClient.shared().searchNearby(with: request, callback: callback)
Objective-C
// Array to hold the places in the response _placeResults = [NSArray array]; // Define the search area as a 500 meter diameter circle in San Francisco, CA. id<GMSPlaceLocationRestriction> circularLocation = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(37.7937, -122.3965), 500); // Create the GMSPlaceSearchNearbyRequest, specifying the search area and GMSPlace fields to return. GMSPlaceSearchNearbyRequest *request = [[GMSPlaceSearchNearbyRequest alloc] initWithLocationRestriction:circularLocation placeProperties:@[ GMSPlacePropertyName, GMSPlacePropertyCoordinate ]]; // Set the place types to filter on. NSArray<NSString *> *includedTypes = @[ @"restaurant", @"cafe" ]; request.includedTypes = [[NSMutableArray alloc] initWithArray:includedTypes]; [_placesClient searchNearbyWithRequest:request callback:^(NSArray<GMSPlace *> *_Nullable places, NSError *_Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } else { // Get list of places. _placeResults = places; } } ];
Pakiet SDK Miejsc Swift na iOS (wersja przedpremierowa)
let restriction = CircularCoordinateRegion(center: CLLocationCoordinate2DMake(37.7937, -122.3965), radius: 500) let searchNearbyRequest = SearchNearbyRequest( locationRestriction: restriction, placeProperties: [ .name, .coordinate], includedTypes: [ .restaurant, .cafe ], ) switch await placesClient.searchNearby(with: searchNearbyRequest) { case .success(let places): // Handle places case .failure(let placesError): // Handle error }
Odpowiedzi na wyszukiwanie w pobliżu
Interfejs API wyszukiwania w pobliżu zwraca tablicę dopasowań w postaciGMSPlace
obiekty, po 1 obiekcie GMSPlace
na pasujące miejsce.
Uzyskaj stan „Otwarty”
Obiekt GMSPlacesClient
zawiera funkcję członka o nazwie isOpenWithRequest
(isOpenRequest
w języku Swift i isPlaceOpenRequest
w GooglePlacesSwift), która zwraca odpowiedź wskazującą, czy miejsce jest obecnie otwarte, zgodnie z czasem określonym w rozmowie.
Ta metoda przyjmuje jeden argument typu GMSPlaceIsOpenWithRequest
, który zawiera:
- Obiekt
GMSPlace
lub ciąg znaków określający identyfikator miejsca. Więcej informacji o tworzeniu obiektu Place z wymaganymi polami znajdziesz w artykule Szczegóły miejsca.
- Opcjonalny obiekt
NSDate
(Obj-C) lubDate
(Swift) określający godzinę, którą chcesz sprawdzić. Jeśli nie podasz żadnej godziny, domyślną wartością będzie teraz. - Metoda
GMSPlaceOpenStatusResponseCallback
do obsługi odpowiedzi. >
Metoda GMSPlaceIsOpenWithRequest
wymaga ustawienia w obiekcie GMSPlace
tych pól:
GMSPlacePropertyUTCOffsetMinutes
GMSPlacePropertyBusinessStatus
GMSPlacePropertyOpeningHours
GMSPlacePropertyCurrentOpeningHours
GMSPlacePropertySecondaryOpeningHours
Jeśli te pola nie są podane w obiekcie Place lub jeśli przekazujesz identyfikator miejsca, metoda używa GMSPlacesClient GMSFetchPlaceRequest:
do ich pobrania.
isOpenWithRequest
odpowiedź
isOpenWithRequest
zwraca obiekt GMSPlaceIsOpenResponse
zawierający wartość logiczną o nazwie status
, która wskazuje, czy firma jest otwarta, zamknięta, czy też jej stan jest nieznany.
Język | Wartość, jeśli otwarta | Wartość w przypadku zamknięcia | Wartość, jeśli stan jest nieznany |
---|---|---|---|
Swift | .open |
.closed |
.unknown |
Objective-C | GMSPlaceOpenStatusOpen |
GMSPlaceOpenStatusClosed |
GMSPlaceOpenStatusUnknown |
GooglePlacesSwift (wersja testowa) | true |
false |
nil |
Płatności za usługę isOpenWithRequest
- Pola
GMSPlacePropertyUTCOffsetMinutes
iGMSPlacePropertyBusinessStatus
są naliczane w ramach podstawowego kodu SKU danych podstawowych. Pozostałe godziny otwarcia są naliczane w ramach kodu SKU szczegółów (zaawansowane). - Jeśli obiekt
GMSPlace
ma już te pola z poprzedniego żądania, nie naliczymy kolejnej opłaty.
Przykład: wysłanie żądania GMSPlaceIsOpenWithRequest
Przykład poniżej pokazuje, jak zainicjować obiekt GMSPlaceIsOpenWithRequest
w istniejącym obiekcie GMSPlace
.
Swift
let isOpenRequest = GMSPlaceIsOpenRequest(place: place, date: nil) GMSPlacesClient.shared().isOpen(with: isOpenRequest) { response, error in if let error = error { // Handle Error } switch response.status { case .open: // Handle open case .closed: // Handle closed case .unknown: // Handle unknown } }
Objective-C
GMSPlaceIsOpenRequest *isOpenRequest = [[GMSPlaceIsOpenRequest alloc] initWithPlace:place date:nil]; [[GMSPlacesClient sharedClient] isOpenWithRequest:isOpenRequest callback:^(GMSPlaceIsOpenResponse response, NSError *_Nullable error) { if (error) { // Handle error } switch (response.status) { case GMSPlaceOpenStatusOpen: // Handle open case GMSPlaceOpenStatusClosed: // Handle closed case GMSPlaceOpenStatusUnknown: // Handle unknown } }];
GooglePlacesSwift
let isOpenRequest = IsPlaceOpenRequest(place: place) switch await placesClient.isPlaceOpen(with: isOpenRequest) { case .success(let isOpenResponse): switch isOpenResponse.status { case true: // Handle open case false: // Handle closed case nil: // Handle unknown case .failure(let placesError): // Handle error }
Wymagane parametry
Użyj obiektu GMSPlaceSearchNearbyRequest
, aby określić wymagane parametry dla:
i zapytania.
-
Lista pól
W prośbie o podanie szczegółowych informacji o miejscu należy podać dane, które mają zwracany dla obiektu
GMSPlace
jako maska pola. Aby zdefiniować maska pola, przekaż tablicę wartości z argumentuGMSPlaceProperty
do obiektuGMSPlaceSearchNearbyRequest
. Maskowanie pól to sprawdzona metoda projektowania, dzięki której nie żądasz zbędnych danych. co pozwala uniknąć niepotrzebnego czasu przetwarzania i opłat.Wypełnij co najmniej jedno z tych pól:
Te pola aktywują Kod SKU Wyszukiwarka w pobliżu (podstawowa):
GMSPlacePropertyAddressComponents
,GMSPlacePropertyBusinessStatus
,GMSPlacePropertyCoordinate
,GMSPlacePropertyFormattedAddress
,GMSPlacePropertyName
,GMSPlacePropertyIconBackgroundColor
,GMSPlacePropertyIconImageURL
,GMSPlacePropertyPhotos
,GMSPlacePropertyPlaceID
,GMSPlacePropertyPlusCode
,GMSPlacePropertyTypes
,GMSPlacePropertyUTCOffsetMinutes
,GMSPlacePropertyViewport
,GMSPlacePropertyWheelchairAccessibleEntrance
Te pola aktywują Kod SKU Wyszukiwarki w pobliżu (zaawansowane):
GMSPlacePropertyCurrentOpeningHours
,GMSPlacePropertySecondaryOpeningHours
,GMSPlacePropertyPhoneNumber
,GMSPlacePropertyPriceLevel
,GMSPlacePropertyRating
,GMSPlacePropertyOpeningHours
,GMSPlacePropertyUserRatingsTotal
,GMSPlacePropertyWebsite
Te pola aktywują Kod SKU (preferowany) funkcji wyszukiwania w pobliżu:
GMSPlacePropertyCurbsidePickup
,GMSPlacePropertyDelivery
,GMSPlacePropertyDineIn
,GMSPlacePropertyEditorialSummary
,GMSPlacePropertyReservable
,GMSPlacePropertyReviews
,GMSPlacePropertyServesBeer
,GMSPlacePropertyServesBreakfast
,GMSPlacePropertyServesBrunch
,GMSPlacePropertyServesDinner
,GMSPlacePropertyServesLunch
,GMSPlacePropertyServesVegetarianFood
,GMSPlacePropertyServesWine
,GMSPlacePropertyTakeout
Poniższy przykład przekazuje listę 2 wartości pól aby wskazać, że obiekt
GMSPlace
zwrócony przez żądanie zawieraname
iplaceID
pola:Swift
// Specify the place data types to return. let fields: [GMSPlaceProperty] = [.placeID, .name]
Objective-C
// Specify the place data types to return. NSArray<GMSPlaceProperty *> *fields = @[GMSPlacePropertyPlaceID, GMSPlacePropertyName];
Pakiet SDK Miejsc Swift na iOS (wersja przedpremierowa)
// Specify the place data types to return. let fields: [PlaceProperty] = [.placeID, .displayName]
-
locationRestriction
GMSPlaceLocationRestriction
obiektu, który określa obszar do przeszukania, określony jako okrąg, zdefiniowany 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 Musisz ustawić ten parametr w żądaniu na wartość większą niż 0,0.
Parametry opcjonalne
Użyj obiektu GMSPlaceSearchNearbyRequest
, aby określić opcjonalne parametry dla:
i zapytania.
-
includeTypes/excludedTypes, includePrimaryTypes/excludedPrimaryTypes
Umożliwia określenie listy typów z listy typów Tabela A używana do filtrowania w wynikach wyszukiwania. W każdej kategorii ograniczeń typu można określić maksymalnie 50 typów.
Miejsce może mieć tylko jeden typ główny Tabela A powiązana z . Na przykład typ podstawowy to
"mexican_restaurant"
lub"steak_house"
. UżywajincludedPrimaryTypes
iexcludedPrimaryTypes
, według których filtrować wyniki główny typ miejsca.Miejsce może też mieć wiele wartości typów z typów Tabela A i powiązane z nią. Na przykład restauracja może mieć następujące typy:
"seafood_restaurant"
,"restaurant"
,"food"
"point_of_interest"
,"establishment"
. Użyj formatu:includedTypes
iexcludedTypes
, aby filtrować wyniki na liście typów powiązanych z danego miejsca.Gdy określisz ogólny typ podstawowy, na przykład
"restaurant"
lub"hotel"
, odpowiedź może zawierać miejsca o bardziej konkretnym typie głównym niż określony przez Ciebie. Na przykład określasz, że ma być uwzględniony główny typ"restaurant"
Odpowiedź może wtedy zawierać miejsca o głównym typie"restaurant"
, ale odpowiedź może też zawierać miejsca o bardziej szczegółowych typ główny, na przykład"chinese_restaurant"
lub"seafood_restaurant"
.Jeśli wyszukiwanie jest określone z ograniczeniami wielu typów, tylko miejsca które są zgodne ze wszystkimi ograniczeniami. Jeśli na przykład wpiszesz
{"includedTypes": ["restaurant"], "excludedPrimaryTypes": ["steak_house"]}
, zwrócone miejsca świadczą usługi związane z"restaurant"
, ale nie działają głównie jako"steak_house"
.includedTypes
Lista typów miejsc z Tabela A do wyszukania. Jeśli pominiesz ten parametr, zwracane będą miejsca wszystkich typów.
excludedTypes
Lista typów miejsc z Tabela A, którą chcesz wykluczyć z grupy .
Jeśli podasz zarówno
includedTypes
(np."school"
), jak i parametrexcludedTypes
(np."primary_school"
) w żądaniu, wtedy odpowiedź zawiera miejsca zaklasyfikowane jako"school"
, ale nie jako"primary_school"
Odpowiedź zawiera miejsca pasujące do co najmniej jednego z tych atrybutówincludedTypes
i żadne zexcludedTypes
.Jeśli występują kolidujące typy, takie jak typ występujący w obiekcie
includedTypes
iexcludedTypes
, zwracany jest błądINVALID_REQUEST
.includedPrimaryTypes
Lista głównych rodzajów miejsc z Tabela A do uwzględnienia do wyszukiwania.
excludedPrimaryTypes
Lista głównych rodzajów miejsc z Tabela A do wykluczenia z wyników wyszukiwania.
Jeśli występują sprzeczne typy główne, takie jak typ występujący w obu
includedPrimaryTypes
iexcludedPrimaryTypes
, Zwracany jestINVALID_ARGUMENT
błąd. -
maxResultCount
Określa maksymalną liczbę wyników miejsc do zwrócenia. Wymagana wartość z zakresu 1 i 20 (domyślnie) włącznie.
-
rankPreference
Typ rankingu, który ma zostać użyty. Jeśli ten parametr zostanie pominięty, wyniki będą uporządkowane według popularności. Możliwe wartości:
.popularity
(domyślnie) sortuje wyniki na podstawie ich popularności..distance
sortuje wyniki w kolejności rosnącej według odległości od określoną lokalizację.
-
regionCode
Kod regionu używany do formatowania odpowiedzi podany jako dwuznakową wartość kodu CLDR. Nie ma wartości domyślnej.
Jeśli nazwa kraju w polu
formattedAddress
w odpowiedzi jest zgodna z nazwą krajuregionCode
, kod kraju został pominięty w poluformattedAddress
. Ten parametr nie ma wpływu na tabelęadrFormatAddress
, która zawsze obejmuje kraj lub w domenieshortFormattedAddress
, która nigdy jej nie zawiera.Większość kodów CLDR jest identycznych z kody ISO 3166-1, z kilkoma istotnymi wyjątkami. Na przykład domena ccTLD Wielkiej Brytanii to „uk” (co.uk), natomiast kod ISO 3166-1 to „gb”. (technicznie dla funkcji podmiotu „Wielkiej Brytanii i Irlandii Północnej”). Ten parametr może wpływać na wyniki w zależności od obowiązującego prawa.
Wyświetl atrybucję w swojej aplikacji
Kiedy aplikacja wyświetla informacje uzyskane z:
GMSPlacesClient
,
takich jak zdjęcia i opinie, aplikacja musi też wyświetlać wymagane informacje o źródłach.
Na przykład właściwość reviews
obiektu GMSPlacesClient
zawiera tablicę złożoną z maks. pięciu
GMSPlaceReview
.
obiektów. Każdy obiekt GMSPlaceReview
może zawierać informacje o atrybucji lub autorach.
Jeśli wyświetlasz opinię w aplikacji, musisz też podać informacje o autorze i pochodzeniu danych
o pochodzeniu danych.
Więcej informacji znajdziesz w dokumentacji na temat atrybucje.