Ortsdetails (neu)

Plattform auswählen: Android iOS JavaScript Webdienst

Das Places SDK für iOS (neu) bietet Ihrer App umfangreiche Informationen zu Orten, darunter Name und Adresse des Orts, geografischer Standort als Koordinaten für Längen- und Breitengrad sowie Ortstyp (z. B. Nachtclub, Tierhandlung, Museum). Um auf diese Informationen für einen bestimmten Ort zuzugreifen, 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 unter Felder für „Place“-Daten (neu) aufgeführt sind. Rufe GMSPlacesClient fetchPlaceWithRequest: auf, um ein GMSPlace-Objekt abzurufen. Übergebe dabei ein GMSFetchPlaceRequest-Objekt und eine Callback-Methode vom Typ GMSPlaceResultCallback.

Das GMSFetchPlaceRequest-Objekt gibt Folgendes an:

  • (Erforderlich) Die Orts-ID, eine eindeutige Kennzeichnung 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. Sie wird auch als Feldmaske bezeichnet und gemäß 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, mit dem eine Autocomplete (New)-Sitzung beendet wird.

„Place Details“-Anfrage stellen

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

  • Die Orts-ID von ChIJV4k8_9UodTERU5KXbkYpSYs.
  • Eine Feldliste, in der angegeben ist, dass der Ortsname und die Website-URL zurückgegeben werden sollen.
  • Ein GMSPlaceResultCallback zum Umgang mit dem Ergebnis.

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

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

Places Swift SDK for iOS (Vorabversion)

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

„Place Details“-Antwort

„Place Details“ gibt ein GMSPlace-Objekt mit Details zum Ort zurück. Nur die in der Feldliste angegebenen Felder werden im GMSPlace-Objekt eingefügt.

Status „Offen“ abrufen

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

Diese Methode akzeptiert 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 Ortsobjekts mit den erforderlichen Feldern finden Sie unter Place Details.
  • Ein optionales NSDate-Objekt (Obj-C) oder Date-Objekt (Swift), das die Zeit angibt, die geprüft werden soll. Wenn keine Zeit angegeben ist, wird standardmäßig die aktuelle Zeit verwendet.
  • Eine GMSPlaceOpenStatusResponseCallback-Methode zum Verarbeiten der Antwort.
  • >

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

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

Wenn diese Felder nicht im Ortsobjekt angegeben sind oder Sie eine Orts-ID übergeben, werden sie mithilfe von 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 der Status unbekannt ist.

Sprache Wert bei geöffnet Wert bei geschlossener Tür Wert, wenn Status unbekannt
Swift .open .closed .unknown
Objective-C GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown
GooglePlacesSwift (Vorabversion) true false nil

Abrechnung für „isOpenWithRequest

  • Die Felder GMSPlacePropertyUTCOffsetMinutes und GMSPlacePropertyBusinessStatus werden unter der SKU „Basic Data“ in Rechnung gestellt. Die restlichen Öffnungszeiten werden über die SKU Place Details (Advanced) abgerechnet.
  • Wenn Ihr GMSPlace-Objekt bereits diese Felder aus einer früheren Anfrage enthält, werden Ihnen keine zusätzlichen Kosten in Rechnung gestellt.

Beispiel: GMSPlaceIsOpenWithRequest-Anfrage stellen

Im folgenden Beispiel wird gezeigt, wie eine GMSPlaceIsOpenWithRequest in einem vorhandenen GMSPlace-Objekt initialisiert wird.

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

GooglePlacesSwift

          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
          }
          

Erforderliche Parameter

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

Orts-ID

Die Orts-ID, die im Places SDK for iOS verwendet wird, ist dieselbe Kennung wie in der Places API, im Places SDK for Android und in anderen Google APIs. Jede Orts-ID kann sich nur auf einen Ort beziehen. Ein einzelner Ort kann jedoch 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 anfordern, indem Sie eine Orts-ID angeben, können Sie sicher sein, dass Sie in der Antwort immer denselben Ort erhalten (sofern der Ort noch existiert). Beachten Sie jedoch, dass die Antwort eine Orts-ID enthalten kann, die sich von der in Ihrer Anfrage unterscheidet.

Feldliste

Wenn Sie Details zu einem Ort 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 Feldmaskierung lässt sich verhindern, dass unnötige Daten angefordert werden, was wiederum hilft, unnötige Verarbeitungszeiten und Gebühren zu vermeiden.

Geben Sie mindestens eines der folgenden Felder an:

  • Die folgenden Felder lösen die SKU Place Details (IDs Only) aus:

    GMSPlacePropertyPlaceID, GMSPlacePropertyName, GMSPlacePropertyPhotos

  • Die folgenden Felder lösen die SKU Place Details (Location Only) aus:

    GMSPlacePropertyAddressComponents, GMSPlacePropertyFormattedAddress, GMSPlacePropertyCoordinate, GMSPlacePropertyPlusCode, GMSPlacePropertyTypes, GMSPlacePropertyViewport

  • Die folgenden Felder lösen die SKU Place Details (Basic) aus:

    GMSPlacePropertyBusinessStatus, GMSPlacePropertyIconBackgroundColor, GMSPlacePropertyIconImageURL, GMSPlacePropertyUTCOffsetMinutes, GMSPlacePropertyWheelchairAccessibleEntrance

  • Die folgenden Felder lösen die SKU Place Details (Advanced) aus:

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

  • Die folgenden Felder lösen die SKU Place Details (Preferred) 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 GMSPlace-Objekt, das von einer Anfrage zurückgegeben wird, die Felder name und placeID enthält:

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

Places Swift SDK for iOS (Vorabversion)

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

Optionale Parameter

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

regionCode

Der Regionscode, der zum Formatieren der Antwort verwendet wird. Er wird als zweistelliger CLDR-Code angegeben. Dieser Parameter kann auch eine Verzerrung der Suchergebnisse bewirken. Es gibt keinen Standardwert.

Wenn der Name des Landes im Adressfeld in der Antwort mit dem Regionscode übereinstimmt, wird der Ländercode aus der Adresse entfernt.

Die meisten CLDR-Codes stimmen mit ISO 3166-1-Codes überein, mit einigen Ausnahmen. So lautet beispielsweise die ccTLD des Vereinigten Königreichs „uk“ (.co.uk), der ISO 3166-1-Code dagegen „gb“ (technisch für die Entität „Vereinigtes Königreich von Großbritannien und Nordirland“). Der Parameter kann sich auf die Ergebnisse auswirken, die gemäß anwendbarem Recht angezeigt werden.

sessionToken

Sitzungstokens sind von Nutzern generierte Strings, mit denen Autocomplete-Aufrufe vom Typ „Neu“ als „Sitzungen“ erfasst werden. Bei „Autocomplete (New)“ werden Sitzungstokens verwendet, um die Abfrage- und Ortsauswahlphasen einer Nutzeranfrage zur automatischen Vervollständigung zu Abrechnungszwecken zu einer separaten Sitzung zusammenzufassen. Sitzungstokens werden an „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 über GMSPlacesClient abgerufen wurden, z. B. Fotos und Rezensionen, müssen auch die erforderlichen Quellenangaben eingeblendet werden.

Die Eigenschaft reviews des GMSPlacesClient-Objekts enthält beispielsweise ein Array mit bis zu fünf GMSPlaceReview-Objekten. Jedes GMSPlaceReview-Objekt kann Quellenangaben und Autorenangaben 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 Attributionen.