Das Places SDK for iOS (New) stellt umfangreiche Informationen für Ihre App bereit zu Orten, einschließlich Name und Adresse des Orts, der geografischen Standort (Breiten-/Längengradkoordinaten), die Art des Ortes (z. B. wie Nachtclub, Tierhandlung, Museum) usw. Um auf diese Informationen für einen bestimmten Ort gefunden haben, können Sie die Orts-ID verwenden. Dies ist eine stabile Kennung, die einen Ort identifiziert.
Ortsdetails abrufen
Die
GMSPlace
-Klasse enthält Informationen zu einem bestimmten Ort, einschließlich aller Datenfelder, die in
Felder für „Place Data“ (Neu). Erhalte
GMSPlace
durch Aufrufen von
GMSPlacesClient
fetchPlaceWithRequest:
,
Übergeben eines GMSFetchPlaceRequest
-Objekts und eines
Callback-Methode des Typs
GMSPlaceResultCallback
Das Objekt GMSFetchPlaceRequest
gibt Folgendes an:
- (Erforderlich) Die Orts-ID, eine eindeutige Kennung für einen Ort im Google Places-Konto Datenbank und in Google Maps.
- (Erforderlich) Die Liste der Felder, die im
GMSPlace
-Objekt zurückgegeben werden sollen, auch als Feldmaske, definiert durchGMSPlaceProperty
Wenn Sie nicht mindestens ein Feld in der Feldliste angeben oder der Feldliste hinzu, gibt der Aufruf einen Fehler zurück. - (Optional) Der Regionscode, der zum Formatieren der Antwort verwendet wurde.
- Optional: Das Sitzungstoken, mit dem eine Autocomplete-Sitzung (Neu) beendet wird.
„Place Details“-Anfrage stellen
In diesem Beispiel wird ein Ort anhand der ID abgerufen, wobei die folgenden Parameter übergeben werden:
- Die Orts-ID von
ChIJV4k8_9UodTERU5KXbkYpSYs
. - Eine Feldliste, mit der angegeben wird, dass der Ortsname und die Website-URL zurückgegeben werden sollen.
GMSPlaceResultCallback
um das Ergebnis zu verarbeiten.
Die API ruft die angegebene Callback-Methode auf und übergibt dabei eine
GMSPlace
-Objekt enthält. 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 eine
GMSPlace
-Objekt mit Details zum Ort Im GMSPlace
-Objekt werden nur die in der Feldliste angegebenen Felder ausgefüllt.
Geöffnet-Status abrufen
Das GMSPlacesClient
-Objekt enthält eine Mitgliederfunktion namens isOpenWithRequest
(isOpenRequest
in Swift und isPlaceOpenRequest
in GooglePlacesSwift), die eine Antwort zurückgibt, die basierend auf der im Aufruf angegebenen Zeit angibt, ob der Ort derzeit geöffnet ist.
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 Place Details.
- Ein optionales
NSDate
-Objekt (Obj-C) oderDate
-Objekt (Swift), das die Uhrzeit angibt, die Sie prüfen möchten. Wenn keine Uhrzeit angegeben ist, wird die Standardeinstellung „jetzt“ verwendet. - Eine
GMSPlaceOpenStatusResponseCallback
-Methode zum Verarbeiten 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 vorhanden sind oder Sie eine Orts-ID übergeben, werden sie mithilfe der Methode GMSPlacesClient GMSFetchPlaceRequest:
abgerufen.
isOpenWithRequest
Antwort
isOpenWithRequest
gibt ein GMSPlaceIsOpenResponse
-Objekt mit einem booleschen Wert mit dem Namen status
zurück. Dieser gibt an, ob das Unternehmen geöffnet oder geschlossen ist oder ob der Status unbekannt ist.
Sprache | Wert, falls offen | Wert bei Schließung | Wert, falls 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“ abgerechnet. Der Rest der Öffnungszeiten wird unter der SKU Place Details (Advanced) berechnet. - Wenn das
GMSPlace
-Objekt diese Felder bereits aus einer früheren Anfrage enthält, werden Ihnen keine weiteren Kosten in Rechnung gestellt.
Beispiel: GMSPlaceIsOpenWithRequest
-Anfrage stellen
Das folgende Beispiel zeigt, wie ein 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 Objekt GMSFetchPlaceRequest
, um die erforderlichen Parameter anzugeben.
Orts-ID
Die im Places SDK for iOS verwendete Orts-ID ist die dieselbe Kennung wie in der Places API, Places SDK for Android und andere Google-APIs. Jede Orts-ID kann sich nur auf einen Ort beziehen, aber ein Ort kann mehrere als eine Orts-ID.
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 eine Orts-ID angeben, um einen Ort anzufordern, erhalten Sie in der Antwort immer dieselbe Stelle (wenn der Ort noch existiert). Beachten Sie jedoch, dass die Antwort eine Orts-ID enthalten kann, die die sich von der in Ihrer Anfrage unterscheiden.
Liste der Felder
Wenn Sie Ortsdetails anfordern, müssen Sie die Daten angeben,
im GMSPlace
-Objekt für den Ort als Feldmaske zurückgeben. So definieren Sie die Feldmaske
ein Array von Werten aus
GMSPlaceProperty
an das GMSFetchPlaceRequest
-Objekt an.
Die Maskierung von Feldern ist eine bewährte Methode, um sicherzustellen, dass keine unnötigen Daten angefordert werden,
trägt dazu bei, 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 (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 von zwei
Feldwerte
, um anzugeben, dass das von einer Anfrage zurückgegebene GMSPlace
-Objekt den Parameter
name
und placeID
:
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, angegeben als zweistelligen CLDR-Code eingeben. Dieser Parameter kann auch eine Verzerrung in den Suchergebnissen. Es gibt keinen Standardwert.
Wenn der Ländername des Adressfelds in der Antwort mit der Regionalcode wird der Ländercode bei der Adresse weggelassen.
Die meisten CLDR-Codes entsprechen den ISO 3166-1-Codes, mit einigen nennenswerten Ausnahmen. Die ccTLD des Vereinigten Königreichs lautet beispielsweise „uk“ (.co.uk), während der ISO 3166-1-Code „gb“ lautet (technisch für die Rechtspersönlichkeit des Vereinigten Königreichs Großbritannien und Nordirland“). Der Parameter kann sich gemäß geltendem Recht auf Ergebnisse auswirken.
sessionToken
Sitzungstokens sind vom Nutzer erstellte Strings, die die automatische Vervollständigung erfassen (Neu) Aufrufe als „Sitzungen“. Bei Autocomplete (New) werden Sitzungstokens verwendet, um Die Phasen „Abfrage“ und „Ortsauswahl“ einer Suche mit automatischer Vervollständigung durch Nutzer in einer separaten Sitzung gruppieren zu Abrechnungszwecken. Sitzungstokens werden an „Place Details (New)“ übergeben Aufrufe, die auf „Autocomplete“-Aufrufe („Neu“) folgen. Weitere Informationen finden Sie unter Sitzungstokens
Zuordnungen in der App anzeigen
Wenn Ihre App Informationen anzeigt, die von
GMSPlacesClient
,
wie Fotos und Rezensionen, muss die App auch die erforderlichen Quellenangaben enthalten.
Beispielsweise kann die Eigenschaft reviews
des Objekts GMSPlacesClient
enthält ein Array mit bis zu fünf
GMSPlaceReview
Objekte. Jedes GMSPlaceReview
-Objekt kann Attributionen und Autorenangaben enthalten.
Wenn Sie die Rezension in Ihrer App präsentieren, müssen auch Namensnennungen und Autoren angezeigt werden.
Namensnennung.
Weitere Informationen finden Sie in der Dokumentation zu Quellenangaben.