Ortsdetails (neu)

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

Das Places SDK for iOS (New) bietet Ihrer App umfassende Informationen zu Orten, einschließlich des Namens und der Adresse des Ortes, des geografischen Standorts in Form von Breiten- und Längengradkoordinaten, des Ortstyps (z. B. Nachtclub, Zoohandlung, Museum) und mehr. Um auf diese Informationen für einen bestimmten Ort zuzugreifen, können Sie die Orts-ID verwenden, eine stabile Kennung, die einen Ort eindeutig identifiziert.

Ortsdetails abrufen

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

Das Objekt GMSFetchPlaceRequest 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 durch 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-Sitzung (New) 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 ChIJV4k8_9UodTERU5KXbkYpSYs.
  • Eine Feldliste, in der angegeben wird, dass der Ortsname und die Website-URL zurückgegeben werden sollen.
  • Ein GMSPlaceResultCallback zum Verarbeiten des Ergebnisses.

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

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

Status „Geöffnet“ abrufen

Das GMSPlacesClient Objekt 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. Die Angabe basiert 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 (Swift)-Objekt, das die Zeit angibt, die Sie prüfen möchten. Wenn keine Zeit angegeben ist, wird die aktuelle Zeit verwendet.
  • Eine GMSPlaceOpenStatusResponseCallback-Methode zum Verarbeiten der Antwort.
  • >

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

  • 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.

Antwort von isOpenWithRequest

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, wenn geöffnet Wert, wenn geschlossen Wert, wenn Status unbekannt
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 SKU „Basisdaten“ abgerechnet. Die restlichen Öffnungszeiten werden unter der SKU „Place Details Enterprise“ abgerechnet.
  • Wenn Ihr GMSPlace-Objekt diese Felder bereits aus einer vorherigen Anfrage enthält, werden sie nicht noch einmal in Rechnung gestellt.

Beispiel: GMSPlaceIsOpenWithRequest-Anfrage stellen

Im folgenden Beispiel wird gezeigt, 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

Geben Sie die erforderlichen Parameter mit dem Objekt GMSFetchPlaceRequest an.

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.

Unter bestimmten Umständen kann ein Ort eine neue Orts-ID erhalten. 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 er noch vorhanden ist). Beachten Sie jedoch, dass die Antwort eine Orts-ID enthalten kann, 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 Objekt GMSFetchPlaceRequest. 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 SKU „Place Details Essentials ID Only“ aus:

    GMSPlacePropertyPlaceID
    GMSPlacePropertyPhotos

    Eine vollständige Liste der Felder und der zugehörigen SKUs finden Sie unter Datenfelder für Orte (New).

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

    GMSPlacePropertyAddressComponents
    GMSPlacePropertyFormattedAddress
    GMSPlacePropertyCoordinate
    GMSPlacePropertyPlusCode
    GMSPlacePropertyTypes
    GMSPlacePropertyViewport

    Eine vollständige Liste der Felder und der zugehörigen SKUs finden Sie unter Datenfelder für Orte (New).

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

    GMSPlacePropertyBusinessStatus
    GMSPlacePropertyIconBackgroundColor
    GMSPlacePropertyIconImageURL
    GMSPlacePropertyName
    GMSPlacePropertyUTCOffsetMinutes
    GMSPlacePropertyWheelchairAccessibleEntrance

    Eine vollständige Liste der Felder und der zugehörigen SKUs finden Sie unter Datenfelder für Orte (New).

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

    GMSPlacePropertyCurrentOpeningHours
    GMSPlacePropertySecondaryOpeningHours
    GMSPlacePropertyPhoneNumber
    GMSPlacePropertyPriceLevel
    GMSPlacePropertyRating
    GMSPlacePropertyOpeningHours
    GMSPlacePropertyUserRatingsTotal
    GMSPlacePropertyWebsite

    Eine vollständige Liste der Felder und der zugehörigen SKUs finden Sie unter Datenfelder für Orte (New).

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

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

    Eine vollständige Liste der Felder und der zugehörigen SKUs finden Sie unter Datenfelder für Orte (New).

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

Geben Sie die optionalen Parameter mit dem Objekt GMSFetchPlaceRequest an.

regionCode

Der Regionscode, der zum Formatieren der Antwort verwendet wird, angegeben als CLDR-Code mit zwei Zeichen. Dieser Parameter kann auch einen Bias-Effekt auf die Suchergebnisse haben. 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. So lautet beispielsweise die ccTLD des Vereinigten Königreichs „uk“ (.co.uk) und der ISO 3166-1-Code „gb“ (technisch für die Einheit „Vereinigtes Königreich Großbritannien und Nordirland“). Der Parameter kann die Ergebnisse je nach geltendem Recht beeinflussen.

sessionToken

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

Zuordnungen in der App anzeigen

Wenn in Ihrer App Informationen angezeigt werden, die von GMSPlacesClient, abgerufen wurden, z. B. Fotos und Rezensionen, müssen auch die erforderlichen Zuordnungen angezeigt werden.

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

Weitere Informationen finden Sie in der Dokumentation zu Zuordnungen.