Zu „Place Details“ migrieren (Neu)

Das Places SDK for iOS unterstützt die vorhandenen Place Details. Wenn Sie das bestehende Places SDK for iOS kennen, werden in der neuen Version von Place Details folgende Änderungen vorgenommen:

  • Verwendet ein neues Preismodell. Preisinformationen für alle APIs finden Sie unter Places SDK for iOS (neu) – Preise.

  • Die Maskierung von Feldern ist erforderlich. Sie müssen angeben, welche Felder in der Antwort zurückgegeben werden sollen. Es gibt keine Standardliste der zurückgegebenen Felder. Wenn Sie diese Liste auslassen, geben die Methoden einen Fehler zurück.

  • Um eine Anfrage zu stellen, rufen Sie die neue Methode GMSPlacesClient fetchPlaceWithRequest: auf.

  • Übergeben Sie die Anfrage an die Anfrage:

  • Die Antwort enthält eine GMSPlace-Instanz mit Details zum Ort. Die Werte im Attribut types der Instanz GMSPlace werden jetzt in Tabelle A und Tabelle B definiert.

  • Die Antwortinstanz GMSPlace enthält das neue Attribut reviews vom Typ GMSPlaceReview. Wenn Ihre App Informationen aus der GMSPlace-Instanz anzeigt, z. B. Fotos und Rezensionen, muss sie auch die erforderlichen Quellenangaben anzeigen.

    Weitere Informationen finden Sie in der Dokumentation zu Quellenangaben.

  • Die Antwortinstanz GMSPlace enthält die folgenden Mitgliederfunktionen:

    • isOpen berechnet, ob ein Ort zur angegebenen Zeit geöffnet ist.

    • isOpenAtDate berechnet, ob ein Ort an einem bestimmten Datum geöffnet ist.

    Diese Funktionen sind nur verfügbar, wenn Sie das Places SDK for iOS aktivieren. Sie sind nicht verfügbar, wenn Sie Places SDK for iOS (New) aktivieren. Weitere Informationen findest du unter SDK-Version auswählen.

Beispielanfrage

Mit „Place Details (New)“ stellen Sie eine Anfrage und übergeben alle Parameter in der Instanz GMSFetchPlaceRequest. In diesem Beispiel wird auch eine Feldmaske verwendet, sodass die Antwort nur den Anzeigenamen und die Website-URL für den Ort enthält:

Swift

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

// Specify the place data types to return.
let fields = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue}

// Create the GMSFetchPlaceRequest instance.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: fields, sessionToken: nil)

client.fetchPlaceWithRequest(fetchPlaceRequest: 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 *> *fields = @[GMSPlacePropertyName, GMSPlacePropertyWebsite];

// Create the GMSFetchPlaceRequest instance.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: fields 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);
  }
}];