Ortsdetails (neu)

Plattform auswählen: Android iOS JavaScript Webdienst
Entwickler im Europäischen Wirtschaftsraum (EWR)

Das Places SDK for iOS (New) stellt Ihrer App umfassende Informationen zu Orten zur Verfügung, darunter Name und Adresse des Orts, der geografische Standort in Form von Breiten- und Längengradkoordinaten, der Ortstyp (z. B. Nachtclub, Zoohandlung, Museum) und mehr. Wenn Sie auf diese Informationen für einen bestimmten Ort zugreifen möchten, können Sie die Orts-ID verwenden. Das ist eine stabile Kennung, die einen Ort eindeutig identifiziert.

Ortsdetails abrufen

Die Klasse GMSPlace enthält Informationen zu einem bestimmten Ort, einschließlich aller Datenfelder, die in Felder für Ortsdaten (neu) aufgeführt sind. Rufen Sie ein GMSPlace-Objekt ab, indem Sie GMSPlacesClient fetchPlaceWithRequest: aufrufen und ein GMSFetchPlaceRequest-Objekt und eine Callback-Methode vom Typ GMSPlaceResultCallback übergeben.

Das GMSFetchPlaceRequest-Objekt gibt Folgendes an:

  • (Erforderlich) Die Orts-ID, eine eindeutige Kennung für einen Ort in der Google Places-Datenbank und in Google Maps.
  • (Erforderlich) Die Liste der Felder, die im GMSPlace-Objekt zurückgegeben werden sollen, auch Feldmaske genannt, wie in GMSPlaceProperty definiert. Wenn Sie in der Feldliste nicht mindestens ein Feld angeben oder die Feldliste weglassen, gibt der Aufruf einen Fehler zurück.
  • Optional: Der Regionscode, der zum Formatieren der Antwort verwendet wird.
  • Optional: Das Sitzungstoken, das zum Beenden einer Autocomplete (New)-Sitzung verwendet wird.

„Place Details“-Anfrage stellen

In diesem Beispiel wird ein Ort anhand der ID abgerufen. Dazu werden die folgenden Parameter übergeben:

  • Die Orts-ID von ChIJV4k8_9UodTERU5KXbkYpSYs.
  • Eine Feldliste, in der angegeben wird, dass der Ortsname und die Website-URL zurückgegeben werden sollen.
  • Ein GMSPlaceResultCallback, um das Ergebnis zu verarbeiten.

Die API ruft die angegebene Callback-Methode auf und übergibt ein GMSPlace-Objekt. Wird der Ort nicht gefunden, hat das Objekt „place“ den Wert null.

Places Swift SDK

// 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
}

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);
  }
}];

„Place Details“-Antwort

Bei Place Details wird ein GMSPlace-Objekt mit Details zum Ort zurückgegeben. Im GMSPlace-Objekt werden nur die Felder ausgefüllt, die in der Feldliste angegeben sind.

Öffnungsstatus abrufen

Das Objekt GMSPlacesClient enthält eine Member-Funktion namens isOpenWithRequest (isOpenRequest in Swift und isPlaceOpenRequest in GooglePlacesSwift), die eine Antwort zurückgibt, die angibt, ob der Ort derzeit geöffnet ist, basierend auf der im Aufruf angegebenen Zeit.

Diese Methode verwendet ein einzelnes Argument vom Typ GMSPlaceIsOpenWithRequest, das Folgendes enthält:

  • Ein GMSPlace-Objekt oder ein String, der eine Orts-ID angibt. Weitere Informationen zum Erstellen des Place-Objekts mit den erforderlichen Feldern finden Sie unter Ortsdetails.
  • Ein optionales NSDate- (Obj-C) oder Date-Objekt (Swift), das die Uhrzeit angibt, die Sie prüfen möchten. Wenn keine Zeit angegeben ist, wird standardmäßig die aktuelle Zeit verwendet.
  • Eine GMSPlaceOpenStatusResponseCallback-Methode zur Verarbeitung der Antwort.
  • >

Für die Methode GMSPlaceIsOpenWithRequest müssen die folgenden Felder im Objekt GMSPlace festgelegt werden:

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

Wenn diese Felder nicht im Place-Objekt angegeben sind oder Sie eine Orts-ID übergeben, werden sie mit GMSPlacesClient GMSFetchPlaceRequest: abgerufen.

isOpenWithRequest Antwort

isOpenWithRequest gibt ein GMSPlaceIsOpenResponse-Objekt mit einem booleschen Wert namens status zurück, der angibt, ob das Unternehmen geöffnet oder geschlossen ist oder ob der Status unbekannt ist.

Sprache Wert bei geöffnetem Zustand Wert, wenn geschlossen Wert, wenn der Status unbekannt ist
Places Swift true false nil
Swift .open .closed .unknown
Objective-C GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown

Abrechnung für „isOpenWithRequest

  • Die Felder GMSPlacePropertyUTCOffsetMinutes und GMSPlacePropertyBusinessStatus werden unter der Basic Data-SKU in Rechnung gestellt. Die restlichen Öffnungszeiten werden unter der Place Details Enterprise-SKU abgerechnet.
  • Wenn Ihr GMSPlace-Objekt diese Felder bereits aus einer früheren Anfrage enthält, werden Ihnen keine weiteren Kosten in Rechnung gestellt.

Beispiel: GMSPlaceIsOpenWithRequest-Anfrage stellen

Im folgenden Beispiel sehen Sie, wie Sie ein GMSPlaceIsOpenWithRequest-Objekt in einem vorhandenen GMSPlace-Objekt initialisieren.

Places Swift SDK

        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
        }
        

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
            }
          }];
          

Erforderliche Parameter

Verwenden Sie das GMSFetchPlaceRequest-Objekt, um die erforderlichen Parameter anzugeben.

Orts-ID

Die im Places SDK for iOS verwendete Orts-ID ist dieselbe Kennung wie in der Places API, im Places SDK for Android und in anderen Google APIs. Jede Orts-ID kann nur auf einen Ort verweisen. Ein Ort kann aber mehrere Orts-IDs haben.

Es gibt Umstände, die dazu führen können, dass ein Ort eine neue Orts-ID erhält. Zum Beispiel kann dies der Fall sein, wenn ein Unternehmen seinen Sitz verlagert.

Wenn Sie einen Ort durch Angabe einer Orts-ID anfordern, können Sie sicher sein, dass Sie in der Antwort immer denselben Ort erhalten (sofern der Ort noch vorhanden ist). Die Antwort kann jedoch eine Orts-ID enthalten, die sich von der in Ihrer Anfrage unterscheidet.

Feldliste

Wenn Sie Ortsdetails anfordern, müssen Sie die Daten, die im GMSPlace-Objekt für den Ort zurückgegeben werden sollen, als Feldmaske angeben. Um die Feldmaske zu definieren, übergeben Sie ein Array von Werten aus GMSPlaceProperty an das GMSFetchPlaceRequest-Objekt. Mit der Maskierung von Feldern lässt sich verhindern, dass unnötige Daten angefordert werden, was wiederum hilft, unnötige Verarbeitungszeiten und Gebühren zu vermeiden.

Geben Sie eines oder mehrere der folgenden Felder an:

  • Die folgenden Felder lösen die Place Details Essentials ID Only-SKU aus:

    GMSPlacePropertyPlaceID
    GMSPlacePropertyPhotos

  • Die folgenden Felder lösen die Place Details Essentials-SKU aus:

    GMSPlacePropertyAddressComponents
    GMSPlacePropertyFormattedAddress
    GMSPlacePropertyCoordinate
    GMSPlacePropertyPlusCode
    GMSPlacePropertyTypes
    GMSPlacePropertyViewport

  • Die folgenden Felder lösen die Place Details Pro-SKU aus:

    GMSPlacePropertyBusinessStatus
    GMSPlacePropertyIconBackgroundColor
    GMSPlacePropertyIconImageURL
    GMSPlacePropertyName
    GMSPlacePropertyUTCOffsetMinutes
    GMSPlacePropertyWheelchairAccessibleEntrance

  • Die folgenden Felder lösen die Place Details Pro-SKU aus:

    GMSPlacePropertyCurrentOpeningHours
    GMSPlacePropertySecondaryOpeningHours
    GMSPlacePropertyPhoneNumber
    GMSPlacePropertyPriceLevel
    GMSPlacePropertyRating
    GMSPlacePropertyOpeningHours
    GMSPlacePropertyUserRatingsTotal
    GMSPlacePropertyWebsite

  • Die folgenden Felder lösen die Place Details Enterprise-SKU aus:

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

Im folgenden Beispiel wird eine Liste mit zwei Feldwerten übergeben, um anzugeben, dass das von einer Anfrage zurückgegebene GMSPlace-Objekt die Felder name und placeID enthält:

Places Swift SDK

// Specify the place data types to return.
let fields: [PlaceProperty] = [.placeID, .displayName]
    

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];
  

Optionale Parameter

Verwenden Sie das GMSFetchPlaceRequest-Objekt, um die optionalen Parameter anzugeben.

regionCode

Der Regionencode, der zum Formatieren der Antwort verwendet wird. Er wird als zweistelliger CLDR-Code angegeben. Dieser Parameter kann sich auch auf die Suchergebnisse auswirken. Es gibt keinen Standardwert.

Wenn der Ländername des Adressfelds in der Antwort mit dem Regionscode übereinstimmt, wird der Ländercode aus der Adresse entfernt.

Die meisten CLDR-Codes sind mit den ISO 3166-1-Codes identisch. Es gibt jedoch einige Ausnahmen. Die ccTLD des Vereinigten Königreichs ist beispielsweise „uk“ (.co.uk), der ISO 3166-1-Code „gb“ (technisch für das Land „Vereinigtes Königreich Großbritannien und Nordirland“). Der Parameter kann sich je nach anwendbarem Recht auf die Ergebnisse auswirken.

sessionToken

Sitzungstokens sind von Nutzern generierte Strings, mit denen Autocomplete-(New)-Aufrufe als „Sitzungen“ erfasst werden. Bei Autocomplete (New) werden Sitzungstokens verwendet, um die Abfrage- und Auswahlphasen einer Nutzeranfrage zur automatischen Vervollständigung zu Abrechnungszwecken zu einer separaten Sitzung zusammenzufassen. Sitzungstokens werden in „Place Details (New)“-Aufrufe übergeben, die auf „Autocomplete (New)“-Aufrufe folgen. Weitere Informationen finden Sie unter Sitzungstokens.

Zuordnungen in der App anzeigen

Wenn in Ihrer App Informationen angezeigt werden, die durch Aufrufen von GMSPlacesClient eingeholt wurden, z. B. Fotos und Rezensionen, müssen auch die erforderlichen Quellenangaben eingeblendet werden.

Das Attribut reviews des GMSPlacesClient-Objekts enthält beispielsweise ein Array mit bis zu fünf GMSPlaceReview-Objekten. Jedes GMSPlaceReview-Objekt kann Quellenangaben und Quellenangaben zum Autor enthalten. Wenn Sie die Rezension in Ihrer App anzeigen, müssen Sie auch alle Quellenangaben oder Autorenangaben anzeigen.

Weitere Informationen finden Sie in der Dokumentation zu Quellenangaben.