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) oderDate
-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
undGMSPlacePropertyBusinessStatus
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.