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
GMSPlaceObjekt zurückgegeben werden sollen, auch Feldmaske genannt, wie durchGMSPlacePropertydefiniert. 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
GMSPlaceResultCallbackzum 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
GMSPlaceObjekt 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) oderDate(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:
GMSPlacePropertyUTCOffsetMinutesGMSPlacePropertyBusinessStatusGMSPlacePropertyOpeningHoursGMSPlacePropertyCurrentOpeningHoursGMSPlacePropertySecondaryOpeningHours
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
GMSPlacePropertyUTCOffsetMinutesundGMSPlacePropertyBusinessStatuswerden 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
GMSPlacePropertyPhotosEine 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
GMSPlacePropertyViewportEine 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
GMSPlacePropertyWheelchairAccessibleEntranceEine 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
GMSPlacePropertyWebsiteEine 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
GMSPlacePropertyTakeoutEine 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.