Pakiet Places SDK na iOS (nowość) dostarcza aplikacji rozbudowane informacje informacje o miejscach, w tym ich nazwę i adres, położenie geograficzne, lokalizacja określona za pomocą współrzędnych geograficznych, rodzaj miejsca (np. klub nocny, sklep zoologiczny, muzeum). Aby uzyskać dostęp do tych informacji dla konkretnego miejsca, możesz użyć identyfikatora miejsca, stałego identyfikatora, wskazuje miejsce.
Pobierz informacje o miejscu
GMSPlace
class zawiera informacje o konkretnym miejscu, w tym wszystkie pola danych pokazane w
Pola danych miejsc (nowe). Zdobądź
GMSPlace
obiekt przez wywołanie
GMSPlacesClient
fetchPlaceWithRequest:
,
przekazującego obiekt GMSFetchPlaceRequest
oraz
metoda wywołania zwrotnego typu
GMSPlaceResultCallback
.
Obiekt GMSFetchPlaceRequest
określa:
- (Wymagane) Identyfikator miejsca, czyli unikalny identyfikator miejsca w Miejscach Google. w bazie danych i w Mapach Google.
- (Wymagane) 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. - (Opcjonalnie) Kod regionu używany do formatowania odpowiedzi.
- (Opcjonalnie) Token sesji używany do zakończenia sesji autouzupełniania (nowej).
Przesyłanie prośby o szczegóły miejsca
W tym przykładzie określamy miejsce za pomocą identyfikatora i przekazujemy następujące parametry:
- Identyfikator miejsca:
ChIJV4k8_9UodTERU5KXbkYpSYs
. - Lista pól określająca zwracanie nazwy miejsca i adresu URL witryny.
GMSPlaceResultCallback
obsługuje wynik.
Interfejs API wywołuje określoną metodę wywołania zwrotnego, przekazując atrybut
GMSPlace
obiektu. Jeśli miejsce nie zostanie znalezione, obiekt miejsca ma wartość nil.
Swift
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let myProperties = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue} // Create the GMSFetchPlaceRequest object. let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties, sessionToken: nil) client.fetchPlace(with: fetchPlaceRequest, callback: { (place: GMSPlace?, error: Error?) in guard let place, error == nil else { return } print("Place found: \(String(describing: place.name))") })
Objective-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. NSArray<NSString *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite]; // Create the GMSFetchPlaceRequest object. GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties sessionToken:nil]; [placesClient fetchPlaceWithRequest: fetchPlaceRequest callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } else { NSLog(@"Place Found: %@", place.name); NSLog(@"The place URL: %@", place.website); } }];
GooglePlacesSwift
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" let fetchPlaceRequest = FetchPlaceRequest( placeID: placeID, placeProperties: [.name, .website] ) switch await placesClient.fetchPlace(with: fetchPlaceRequest) { case .success(let place): // Handle place case .failure(let placesError): // Handle error }
Odpowiedź dotycząca szczegółów miejsca
Szczegóły miejsca zwraca
GMSPlace
obiekt ze szczegółowymi informacjami o tym miejscu. W obiekcie GMSPlace
są wypełniane tylko pola określone na liście pól.
Oprócz pól danych obiekt GMSPlace
w
odpowiedź zawiera następujące funkcje składowe:
-
isOpen
określa, czy dane miejsce jest w danym momencie otwarte. isOpenAtDate
określa, czy dane miejsce jest otwarte w danym dniu.
Wymagane parametry
Użyj obiektu GMSFetchPlaceRequest
, aby określić wymagane parametry.
Identyfikator miejsca
Identyfikator miejsca używany w pakiecie SDK Miejsc na iOS to ten sam identyfikator, który jest używany w interfejsie Places API w pakiecie SDK Places dla Androida i innych interfejsów API Google. Każdy identyfikator miejsca może odnosić się tylko do jednego miejsca, ale jedno miejsce może mieć ich więcej jeden identyfikator miejsca.
Istnieją okoliczności, które mogą spowodować, że dane miejsce otrzyma nowy identyfikator. Może się tak na przykład zdarzyć, gdy firma przeprowadzi się w nowe miejsce.
Zamawiając miejsce, podając jego identyfikator, masz pewność, że w odpowiedzi otrzymasz zawsze to samo miejsce (jeśli miejsce ). Pamiętaj jednak, że odpowiedź może zawierać identyfikator miejsca, który inny niż w prośbie.
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ć maskę pola
przekazać tablicę wartości z argumentu
GMSPlaceProperty
do obiektu GMSFetchPlaceRequest
.
Maskowanie pól to sprawdzona metoda projektowania, która pozwala uniknąć żądania zbędnych danych, które
pozwala uniknąć niepotrzebnego czasu przetwarzania i naliczania opłat.
Wypełnij co najmniej jedno z tych pól:
Te pola aktywują kod SKU szczegółów miejsca (tylko identyfikator):
GMSPlacePropertyPlaceID
,GMSPlacePropertyName
,GMSPlacePropertyPhotos
Te pola aktywują kod SKU szczegółów miejsca (tylko lokalizacja):
GMSPlacePropertyAddressComponents
,GMSPlacePropertyFormattedAddress
,GMSPlacePropertyCoordinate
,GMSPlacePropertyPlusCode
,GMSPlacePropertyTypes
,GMSPlacePropertyViewport
Te pola aktywują kod SKU informacji o miejscu (podstawowe):
GMSPlacePropertyBusinessStatus
,GMSPlacePropertyIconBackgroundColor
,GMSPlacePropertyIconImageURL
,GMSPlacePropertyUTCOffsetMinutes
,GMSPlacePropertyWheelchairAccessibleEntrance
Te pola aktywują kod SKU szczegółów miejsca (zaawansowane):
GMSPlacePropertyCurrentOpeningHours
,GMSPlacePropertySecondaryOpeningHours
,GMSPlacePropertyPhoneNumber
,GMSPlacePropertyPriceLevel
,GMSPlacePropertyRating
,GMSPlacePropertyOpeningHours
,GMSPlacePropertyUserRatingsTotal
GMSPlacePropertyWebsite
Te pola aktywują kod SKU szczegółów miejsca (preferowany):
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 zawiera
name
i placeID
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];
GooglePlacesSwift
// Specify the place data types to return. let fields: [PlaceProperty] = [.placeID, .displayName]
Parametry opcjonalne
Aby określić opcjonalne parametry, użyj obiektu GMSFetchPlaceRequest
.
regionCode
Kod regionu używany do formatowania odpowiedzi podany jako dwuznakową wartość kodu CLDR. Ten parametr może również powodować odchylenia w wynikach wyszukiwania. Nie ma wartości domyślnej.
Jeśli nazwa kraju w polu adresu w odpowiedzi jest zgodna z kodu regionu, kod kraju został pominięty w adresie.
Większość kodów CLDR jest identyczna z kodami 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.
sessionToken
Tokeny sesji to generowane przez użytkownika ciągi znaków, które śledzą autouzupełnianie (Nowe) jako „sesje”. Autouzupełnianie (nowość) korzysta z tokenów sesji do Pogrupować zapytanie i umieścić etapy wyboru wyszukiwania autouzupełniania w oddzielnej sesji do celów rozliczeniowych. Tokeny sesji są przekazywane do szczegółów miejsca (nowe) połączeń, które są następstwem nowych połączeń autouzupełniania. Więcej informacji: Tokeny sesji.
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.