Szczegóły miejsc

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Pakiet SDK Miejsc na iOS zawiera szczegółowe informacje o miejscach, w tym nazwę i adres miejsca, lokalizację geograficzną, współrzędne geograficzne, rodzaj miejsca (np. klub nocny, sklep zoologiczny, muzeum itd.). Aby uzyskać dostęp do tych informacji dla określonego miejsca, możesz użyć identyfikatora miejsca – stałego identyfikatora, który jednoznacznie identyfikuje miejsce.

Szczegóły miejsca

Klasa GMSPlace zawiera informacje o konkretnym miejscu. Obiekt GMSPlace możesz pobrać w następujący sposób:

Pola miejsc

Przesyłając prośbę o miejsce, musisz określić, jakie typy danych o miejscu mają być zwracane. Aby to zrobić, prześlij właściwość GMSPlaceField, która określa typy danych do zwrócenia. Jest to ważna kwestia, ponieważ wpływa na koszty każdego żądania. Wyniki wyszukiwania miejsc nie mogą być puste, więc zwracane są tylko wyniki zawierające dane (na przykład jeśli żądane miejsce nie zawiera zdjęć, w wyniku nie pojawi się pole photos). Możesz określić co najmniej 1 z tych pól:

  • GMSPlaceFieldName
  • GMSPlaceFieldPlaceID
  • GMSPlaceFieldPlusCode
  • GMSPlaceFieldBusinessStatus
  • GMSPlaceFieldCoordinate
  • GMSPlaceFieldOpeningHours
  • GMSPlaceFieldPhoneNumber
  • GMSPlaceFieldFormattedAddress
  • GMSPlaceFieldRating
  • GMSPlaceFieldPriceLevel
  • GMSPlaceFieldTypes
  • GMSPlaceFieldWebsite
  • GMSPlaceFieldViewport
  • GMSPlaceFieldAddressComponents
  • GMSPlaceFieldPhotos
  • GMSPlaceFieldUserRatingsTotal
  • GMSPlaceFieldIconImageURL
  • GMSPlaceFieldIconBackgroundColor
  • GMSPlaceFieldUTCOffsetMinutes
  • GMSPlaceFieldAll

Więcej informacji o polach miejsc Więcej informacji o naliczaniu opłat za żądania danych o miejscach znajdziesz w artykule Użycie i płatności.

Klasa GMSPlace może zawierać te dane miejsca:

  • name – nazwa miejsca.
  • placeID – tekstowy identyfikator miejsca. Więcej informacji o identyfikatorach miejsc znajdziesz w pozostałej części tej strony.
  • coordinate – lokalizacja geograficzna miejsca podana jako współrzędne geograficzne.
  • businessStatus – stan operacyjny miejsca, jeśli jest to firma. Może zawierać jedną z tych wartości: GMSBusinessStatusOperational, GMSBusinessStatusClosedTemporarily, GMSBusinessStatusClosedPermanently, GMSBusinessStatusUnknown.
  • phoneNumber – numer telefonu danego miejsca w formacie międzynarodowym.
  • formattedAddress – zrozumiały dla człowieka adres tej lokalizacji.

    Często jest to odpowiednik adresu pocztowego. Niektóre kraje, np. Wielka Brytania, nie zezwalają na dystrybucję prawdziwych adresów pocztowych ze względu na ograniczenia licencyjne.

    Sformatowany adres składa się logicznie z co najmniej 1 komponentu adresu. Na przykład adres &111 8th Avenue, Nowy Jork, NY" (numer domu), "8th Avenue" (trasa) "New York" (miasto) oraz "NY" (USA).

    Nie interpretuj sformatowanego adresu automatycznie. Zamiast tego użyj poszczególnych komponentów adresu, które wraz z sformatowanym polem adresu zawierają odpowiedź interfejsu API.

  • rating – zagregowana ocena miejsca, która jest zwracana jako liczba zmiennoprzecinkowa z wartościami od 1,0 do 5,0 na podstawie zagregowanych opinii użytkowników.
  • openingHours – godziny otwarcia tego miejsca (reprezentowane przez: GMSOpeningHours). Zadzwoń pod numer GMSOpeningHours.weekdayText, aby uzyskać listę zlokalizowanych ciągów znaków godzin otwarcia w tym tygodniu. Wywołaj GMSOpeningHours.Periods, aby wyświetlić listę GMSPeriod z bardziej szczegółowymi informacjami odpowiadającymi danym podanym przez weekdayText. Uwaga: jeśli miejsce jest zawsze otwarte, okres jest przedstawiany jako niedziela o północy, a closeEvent ma wartość null.
  • plusCode – kod Plus Code pokazujący lokalizację miejsca.
  • priceLevel – poziom ceny tego miejsca zwracany jako liczba całkowita z wartościami od 0 (najtańszy) do 4 (najdroższy).
  • types – lista typów miejsc, które charakteryzują to miejsce. Ta tablica może zawierać wiele wartości lub być pusta. Nowe wartości można wprowadzać bez wcześniejszego powiadomienia. Zobacz listę obsługiwanych typów.
  • website – identyfikator URI witryny danego miejsca, jeśli jest znany. To witryna obsługiwana przez firmę lub inny podmiot powiązany z tym miejscem.
  • attributionsNSAttributedString zawierający atrybucję, którą musisz wyświetlać użytkownikowi, jeśli aplikacja używa szczegółów miejsc pobranych z pakietu SDK Miejsc na iOS. Więcej informacji o pobieraniu i wyświetlaniu atrybucji znajdziesz w przewodniku po atrybucji.
  • addressComponents – tablica obiektów GMSAddressComponent reprezentujących komponenty adresu miejsca. Te komponenty są używane do wyodrębniania uporządkowanych informacji o adresie miejsca, np. o znajdowaniu miasta, w którym się znajduje. Nie używaj tych komponentów do formatowania adresu. Zamiast tego użyj właściwości formattedAddress, która podaje zlokalizowany format.

    Weź pod uwagę te fakty o tablicy addressComponents:

    • Tablica komponentów adresu może zawierać więcej komponentów niż formattedAddress.
    • Tablica nie musi zawierać wszystkich jednostek politycznych zawierających adres (oprócz tych z pola formattedAddress).
    • Format odpowiedzi nie jest gwarantowany w tych samych żądaniach. W szczególności liczba addressComponents różni się w zależności od żądanego adresu i może się zmieniać w miarę upływu czasu dla tego samego adresu. Komponent może zmieniać pozycję w tablicy. Typ komponentu może się zmieniać. Brak odpowiedzi w konkretnym komponentie.
  • userRatingsTotal – liczba opinii, które składają się na ocenę miejsca.
  • GMSPlaceFieldIconImageURL – adres URL ikony reprezentującej typ miejsca (format PNG).
  • GMSPlaceFieldIconBackgroundColor – kolor tła ikony typu miejsca;
  • UTCOffsetMinutes – przesunięcie względem strefy czasowej w minutach.

Klasa GMSPlace zawiera te funkcje użytkownika:

  • isOpen oblicza, czy dane miejsce jest otwarte o określonej godzinie, na podstawie wartości openingHours i UTCOffsetMinutes oraz bieżącej daty i godziny.
  • isOpenAtDate oblicza, czy dane miejsce jest otwarte w określonym dniu, na podstawie danych openingHours i UTCOffsetMinutes oraz bieżącej daty i godziny.
  • Jeśli korzystasz z tych funkcji do pobierania godzin lub dat otwarcia, pierwotne żądanie fetchPlaceFromPlaceID: lub findPlaceLikelihoodsFromUserLocationWithPlaceFields: musi zawierać obydwa pola (GMSPlaceFieldOpeningHours i GMSPlaceFieldUTCOffsetMinutes). Jeśli brakuje któregoś z tych pól, powstały obiekt GMSPlace nie będzie zawierać godzin otwarcia ani dat, a wywołanie zwróci wartość GMSPlaceOpenStatusUnknown. Aby uzyskać dokładne wyniki, poproś o pola GMSPlaceFieldBusinessStatus i GMSPlaceFieldUTCOffsetMinutes w pierwotnym żądaniu miejsca. Jeśli nie poprosimy Cię o weryfikację, zakładamy, że firma działa.

    Obejrzyj ten film, aby dowiedzieć się, jak używać właściwości isOpen z informacjami o miejscu.

Pobierz miejsce według identyfikatora

Identyfikator miejsca to tekstowy identyfikator, który jednoznacznie identyfikuje miejsce. W pakiecie SDK Miejsc na iOS możesz pobrać identyfikator miejsca z obiektu GMSPlace. Możesz zapisać identyfikator miejsca i użyć go do ponownego pobrania obiektu GMSPlace.

Aby znaleźć miejsce według identyfikatora, wywołaj element GMSPlacesClient fetchPlaceFromPlaceID:, przekazując te parametry:

  • Ciąg tekstowy z identyfikatorem miejsca.
  • Co najmniej jeden GMSPlaceField, który określa typy danych do zwrócenia.
  • Token sesji, jeśli wywołanie ma na celu zakończenie zapytania autouzupełniania. W przeciwnym razie podaj nil.
  • GMSPlaceResultCallback do obsługi wyniku.

Interfejs API wywołuje określoną metodę wywołania zwrotnego i przekazuje obiekt GMSPlace. Jeśli miejsce nie zostanie znalezione, obiekt Place jest pusty.

Swift

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

// Specify the place data types to return.
let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) |
  UInt(GMSPlaceField.placeID.rawValue))!

placesClient?.fetchPlace(fromPlaceID: placeId, placeFields: fields, sessionToken: nil, callback: {
  (place: GMSPlace?, error: Error?) in
  if let error = error {
    print("An error occurred: \(error.localizedDescription)")
    return
  }
  if let place = place {
    self.lblName?.text = place.name
    print("The selected place is: \(place.name)")
  }
})

Objective-C

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

// Specify the place data types to return.
GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);

[_placesClient fetchPlaceFromPlaceID:placeId placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) {
  if (error != nil) {
    NSLog(@"An error occurred %@", [error localizedDescription]);
    return;
  }
  if (place != nil) {
    NSLog(@"The selected place is: %@", [place name]);
  }
}];

Wyświetlaj informacje o atrybucji w swojej aplikacji

Gdy aplikacja wyświetla informacje uzyskane z GMSPlacesClient lookUpPlaceID:callback:, musi też zawierać informacje o atrybucji. Zapoznaj się z dokumentacją na temat atrybucji.

Więcej o identyfikatorach miejsc

Identyfikator miejsca używany w pakiecie Places SDK dla iOS jest taki sam jak identyfikator używany w Places API, Places SDK dla Androida i innych interfejsach Google API.

Każdy identyfikator miejsca może odnosić się tylko do jednego miejsca, ale jedno miejsce może mieć więcej niż 1 identyfikator.

W pewnych okolicznościach istnieje możliwość, że otrzymasz nowe miejsce. Może się tak na przykład zdarzyć, gdy firma przeprowadzi się do nowej lokalizacji.

Gdy zażądasz miejsca, podając jego identyfikator, możesz mieć pewność, że w odpowiedzi zawsze otrzymasz to samo miejsce (jeśli dane miejsce nadal istnieje). Pamiętaj, że odpowiedź może zawierać identyfikator miejsca inny niż ten podany w Twojej prośbie.

Więcej informacji znajdziesz w omówieniu identyfikatora miejsca.