Szczegóły miejsca (nowość)

Pakiet Places SDK na iOS (nowy) udostępnia Twojej aplikacji rozbudowane informacje o miejscach, w tym ich nazwę i adres, położenie geograficzne określone jako współrzędne szerokości i długości geograficznej, rodzaj miejsca (np. klub nocny, sklep zoologiczny, muzeum) itp. Aby uzyskać dostęp do informacji o konkretnym miejscu, możesz użyć identyfikatora miejsca – stałego identyfikatora, który jednoznacznie identyfikuje miejsce.

Pobierz informacje o miejscu

Klasa GMSPlace zawiera informacje o konkretnym miejscu, w tym wszystkie pola danych widoczne w sekcji Pola danych miejsc (nowość). Pobierz obiekt GMSPlace, wywołując GMSPlacesClient fetchPlaceWithRequest:, przekazując obiekt GMSFetchPlaceRequest i metodę wywołania zwrotnego typu GMSPlaceResultCallback.

Obiekt GMSFetchPlaceRequest określa:

  • (Wymagane) Identyfikator miejsca, czyli niepowtarzalny identyfikator miejsca w bazie danych Miejsc Google i w Mapach Google.
  • (Wymagane) Lista pól do zwrócenia w obiekcie GMSPlace, nazywana też maską pola, zgodnie z definicją za pomocą właściwości GMSPlaceProperty. Jeśli nie określisz co najmniej jednego pola na liście pól lub pominiesz tę listę, wywołanie zwróci błąd.
  • (Opcjonalnie) Kod regionu użyty do sformatowania odpowiedzi.
  • (Opcjonalnie) Token sesji używany do kończenia nowej sesji autouzupełniania.

Prześlij prośbę o szczegóły miejsca

W tym przykładzie miejsce docelowe jest określane za pomocą identyfikatora, który przekazuje następujące parametry:

  • Identyfikator miejsca ChIJV4k8_9UodTERU5KXbkYpSYs.
  • Lista pól określająca zwracanie nazwy miejsca i adresu URL witryny.
  • GMSPlaceResultCallback do obsługi wyniku.

Interfejs API wywołuje określoną metodę wywołania zwrotnego, przekazując obiekt GMSPlace. Jeśli nie można znaleźć miejsca, obiekt jest pusty.

Swift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let myProperties: [GMSPlaceProperty] = [.name, .website]

// Create the GMSFetchPlaceRequest object.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties)

client.fetchPlaceWithRequest(fetchPlaceRequest: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  guard let place, error == nil else { return }
  print("Place found: \(place.name)")
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return.
NSArray<GMSPlaceProperty *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite];

// Create the GMSFetchPlaceRequest object.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties];

[placesClient fetchPlaceWithRequest: fetchPlaceRequest, callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) {
  if (error == null) {
    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 obiekt GMSPlace zawierający szczegółowe informacje o danym miejscu. W obiekcie GMSPlace wypełnione są tylko pola określone na liście pól.

Oprócz pól danych obiekt GMSPlace w odpowiedzi zawiera te funkcje składowe:

  • isOpen oblicza, czy dane miejsce jest otwarte o określonej godzinie.
  • isOpenAtDate oblicza, czy dane miejsce jest otwarte w określonym dniu.

Wymagane parametry

Aby określić wymagane parametry, użyj obiektu GMSFetchPlaceRequest.

Identyfikator miejsca

Identyfikator miejsca używany w pakiecie Places SDK na iOS to ten sam identyfikator, który jest używany w Places API, Places SDK na Androida i innych interfejsach API Google. Każdy identyfikator miejsca może odnosić się tylko do jednego miejsca, ale pojedyncze miejsce może mieć więcej niż jeden taki identyfikator.

W pewnych okolicznościach miejsce może otrzymać nowy identyfikator miejsca. Może się tak na przykład zdarzyć, jeśli firma przeprowadzi się w inne miejsce.

Gdy poprosisz o podanie miejsca, podając identyfikator miejsca, możesz mieć pewność, że w odpowiedzi wyświetli się zawsze to samo miejsce (o ile dane miejsce nadal istnieje). Pamiętaj jednak, że odpowiedź może zawierać identyfikator miejsca inny niż ten podany w prośbie.

Lista pól

Gdy prosisz o szczegóły miejsca, musisz podać dane, które mają zostać zwrócone w obiekcie GMSPlace dla tego miejsca jako maskę pola. Aby zdefiniować maskę pola, przekaż tablicę wartości z GMSPlaceProperty do obiektu GMSFetchPlaceRequest. Maskowanie pól to dobra praktyka projektowa, która pozwala uniknąć żądania zbędnych danych, co pozwala uniknąć niepotrzebnego czasu przetwarzania i opłat.

Określ co najmniej jedno z tych pól:

  • Te pola wywołują kod SKU szczegółów miejsca (tylko identyfikator):

    GMSPlacePropertyPlaceID, GMSPlacePropertyName, GMSPlacePropertyPhotos

  • Poniższe pola wywołują kod SKU szczegółów miejsca (tylko lokalizacja):

    GMSPlacePropertyAddressComponents, GMSPlacePropertyFormattedAddress, GMSPlacePropertyCoordinate, GMSPlacePropertyPlusCode, GMSPlacePropertyTypes, GMSPlacePropertyViewport

  • Poniższe pola aktywują kod SKU szczegółów miejsca (podstawowe):

    GMSPlacePropertyBusinessStatus, GMSPlacePropertyIconBackgroundColor, GMSPlacePropertyIconImageURL, GMSPlacePropertyUTCOffsetMinutes, GMSPlacePropertyWheelchairAccessibleEntrance

  • Te pola wywołują kod SKU szczegółów miejsca (zaawansowane):

    GMSPlacePropertyCurrentOpeningHours, GMSPlacePropertySecondaryOpeningHours, GMSPlacePropertyPhoneNumber, GMSPlacePropertyPriceLevel, GMSPlacePropertyRating, GMSPlacePropertyOpeningHours, GMSPlacePropertyUserRatingsTotal, GMSPlacePropertyWebsite

  • Te pola wywołują kod SKU Szczegóły miejsca (preferowane):

    GMSPlacePropertyCurbsidePickup, GMSPlacePropertyDelivery, GMSPlacePropertyDineIn, GMSPlacePropertyEditorialSummary, GMSPlacePropertyReservable, GMSPlacePropertyReviews, GMSPlacePropertyServesBeer, GMSPlacePropertyServesBreakfast, GMSPlacePropertyServesBrunch, GMSPlacePropertyServesDinner, GMSPlacePropertyServesLunch, GMSPlacePropertyServesVegetarianFood, GMSPlacePropertyServesWine, GMSPlacePropertyTakeout

W tym przykładzie przekazujemy listę 2 wartości pól, aby określić, że obiekt GMSPlace zwrócony przez żądanie zawiera pola name i placeID:

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, określony jako wartość dwuznakowego kodu CLDR. Parametr ten może też mieć wpływ na wyniki wyszukiwania. Brak wartości domyślnej.

Jeśli nazwa kraju w polu adresu w odpowiedzi jest zgodna z kodem regionu, kod kraju jest pomijany w adresie.

Większość kodów CLDR jest identyczna z kodami ISO 3166-1 z kilkoma wyjątkami. Na przykład domena ccTLD w Wielkiej Brytanii to „uk” (.co.uk), a kod ISO 3166-1 to „gb” (technicznie oznacza to podmiot należący do „Wielkiej Brytanii i Irlandii Północnej”). Parametr może wpływać na wyniki w zależności od obowiązującego prawa.

sessionToken

Tokeny sesji to wygenerowane przez użytkownika ciągi znaków, które śledzą wywołania autouzupełniania (nowe) jako „sesje”. Funkcja autouzupełniania (nowa) używa tokenów sesji do grupowania faz wyboru zapytania i umieszczania faz wyboru autouzupełniania wyszukiwania użytkownika w oddzielnej sesji na potrzeby rozliczeń. Tokeny sesji są przekazywane do (nowych) wywołań szczegółów miejsca, które następują po wywołaniach autouzupełniania (nowych). Więcej informacji znajdziesz w artykule Tokeny sesji.

Wyświetlanie atrybucji w aplikacji

Jeśli aplikacja wyświetla informacje uzyskane ze strony GMSPlacesClient, np. zdjęcia i opinie, musi też wyświetlać wymagane informacje o źródłach.

Na przykład właściwość reviews obiektu GMSPlacesClient zawiera tablicę z maksymalnie 5 obiektami GMSPlaceReview. Każdy obiekt GMSPlaceReview może zawierać atrybucje i informacje o autorach. Jeśli wyświetlasz opinię w aplikacji, musisz też podać informację o autorze.

Więcej informacji znajdziesz w dokumentacji dotyczącej atrybucji.