Das Places SDK for iOS bietet Ihrer App umfassende Informationen zu Orten, z. B. den Namen und die Adresse des Orts, die als Breitengrad/Längengrad-Koordinaten angegebenen geografischen Orte und die Art des Ortes (z. B. Nachtclub, Tierhandlung, Museum). Wenn Sie auf diese Informationen für einen bestimmten Ort zugreifen möchten, können Sie die Orts-ID verwenden. Dabei handelt es sich um eine stabile ID, die einen Ort eindeutig identifiziert.
Ortsdetails
Die Klasse GMSPlace
enthält Informationen zu einem bestimmten Ort. Sie können ein GMSPlace
-Objekt so abrufen:
- Rufe
GMSPlacesClient findPlaceLikelihoodsFromUserLocationWithPlaceFields:
auf. Weitere Informationen finden Sie in der Anleitung zum Abrufen des aktuellen Orts. - Rufe
GMSPlacesClient fetchPlaceFromPlaceID:
auf und übergib einGMSPlaceField
, eine Orts-ID und eine Callback-Methode. Wenn Sie für Place Details-Anfragen nicht mindestens ein Feld mit einer Anfrage angeben oder den Parameterfields
in einer Anfrage weglassen, werden ALLE möglichen Felder zurückgegeben und Ihnen entsprechend in Rechnung gestellt. Weitere Informationen finden Sie in der Anleitung zum Abrufen eines Ortes nach ID.
Wenn Sie einen Ort anfordern, müssen Sie angeben, welche Arten von Ortsdaten zurückgegeben werden sollen. Übergeben Sie dazu einen GMSPlaceField
und geben Sie die zurückzugebenden Datentypen an. Dies ist ein wichtiger Aspekt, da sich das auf die Kosten für jede Anfrage auswirkt.
Da die Ergebnisse für „Place“-Daten nicht leer sein dürfen, werden nur Ortsergebnisse mit Daten zurückgegeben. Wenn für einen angeforderten Ort beispielsweise keine Fotos vorliegen, ist das Feld photos
nicht im Ergebnis enthalten.
Im folgenden Beispiel wird eine Liste von zwei Feldwerten übergeben, um die von einer Anfrage zurückgegebenen Daten anzugeben:
Swift
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) | UInt(GMSPlaceField.placeID.rawValue))!
Objective-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);
Sehen Sie sich weitere Informationen zu Feldern mit Ortsdaten an. Weitere Informationen zur Abrechnung von Anfragen für Ortsdaten finden Sie unter Nutzung und Abrechnung.
Die Klasse GMSPlace
kann die folgenden Ortsdaten enthalten:
name
: Der Name des OrtsplaceID
: Der Text in ID für den Ort. Weitere Informationen zu Orts-IDs finden Sie weiter unten auf dieser Seite.coordinate
: Der geografische Standort des Ortes, angegeben in Breiten- und Längengraden.phoneNumber
: Die Telefonnummer des Orts im internationalen Format.formattedAddress
: Die für Menschen lesbare Adresse dieses Standorts.Diese Adresse stimmt häufig mit der Postanschrift überein. In einigen Ländern, z. B. dem Vereinigten Königreich, ist die Weitergabe echter Postanschriften aufgrund von Lizenzeinschränkungen nicht zulässig.
Die formatierte Adresse besteht aus einer oder mehreren Adresskomponenten. Die Adresse „111 8th Avenue, New York, NY“ besteht z. B. aus den folgenden Komponenten: „111“ (Hausnummer), „8th Avenue“ (Straße), „New York“ (Stadt) und „NY“ (US-Bundesstaat).
Wir raten davon ab, die formatierte Adresse programmatisch zu parsen. Verwenden Sie stattdessen die einzelnen Adresskomponenten, die zusätzlich zur formatierten Adresse in der API-Antwort enthalten sind.
openingHours
: Die Öffnungszeiten für den Ort (wie inGMSOpeningHours
angegeben). RufeGMSOpeningHours.weekdayText
auf, um eine Liste der lokalisierten Strings der täglichen Öffnungszeiten für die Woche zu erhalten. Rufen SieGMSOpeningHours.Periods
auf, um eine Liste vonGMSPeriod
s mit detaillierteren Informationen zurückzugeben, die den vonweekdayText
bereitgestellten Daten entsprechen. Hinweis: Wenn ein Ort immer geöffnet ist, wird der Zeitraum als Sonntag um Mitternacht angegeben undcloseEvent
ist null.addressComponents
: ein Array vonGMSAddressComponent
-Objekten, die Komponenten der Adresse für einen Ort darstellen Diese Komponenten werden zur Verfügung gestellt, um strukturierte Informationen über die Adresse eines Ortes zu extrahieren, z. B. die Stadt, in der sich ein Ort befindet. Verwende diese Komponenten nicht für die Adressformatierung, sondern verwende die PropertyformattedAddress
, die eine lokalisierte formatierte Adresse bietet.Hinweise zum
addressComponents
-Array:- Das Array der Adresskomponenten kann mehr Komponenten als
formattedAddress
enthalten. - Das Array enthält nicht unbedingt alle politischen Einheiten, die eine Adresse enthalten, mit Ausnahme der in
formattedAddress
enthaltenen Entitäten. - Es wird nicht garantiert, dass das Format zwischen den Anfragen gleich bleibt. Insbesondere die Anzahl der
addressComponents
variiert je nach angeforderter Adresse und kann sich im Laufe der Zeit für dieselbe Adresse ändern. Die Position einer Komponente im Array ändert sich unter Umständen. Auch der Typ der Komponente kann sich ändern. Eine bestimmte Komponente fehlt möglicherweise in einer späteren Antwort.
- Das Array der Adresskomponenten kann mehr Komponenten als
userRatingsTotal
: Gibt an, wie viele Rezensionen die Bewertung des Orts darstellen.
Die Klasse GMSPlace
enthält die folgenden Mitgliederfunktionen:
isOpen
berechnet anhand vonopeningHours
undUTCOffsetMinutes
und dem aktuellen Datum und der Uhrzeit, ob ein Ort zum angegebenen Zeitpunkt geöffnet ist.isOpenAtDate
berechnet anhand vonopeningHours
undUTCOffsetMinutes
sowie dem aktuellen Datum und der Uhrzeit, ob ein Ort an einem bestimmten Datum geöffnet ist.
Wenn Sie mit diesen Funktionen Öffnungszeiten und/oder Datumsangaben abrufen, müssen in der ursprünglichen fetchPlaceFromPlaceID:
- oder findPlaceLikelihoodsFromUserLocationWithPlaceFields:
-Anfrage sowohl GMSPlaceFieldOpeningHours
als auch GMSPlaceFieldUTCOffsetMinutes
-Felder angegeben werden. Wenn eines dieser Felder fehlt, enthält das resultierende GMSPlace
-Objekt keine Öffnungszeiten oder Datumsangaben und der Aufruf gibt GMSPlaceOpenStatusUnknown
zurück. Damit die Ergebnisse richtig sind, müssen Sie die Felder GMSPlaceFieldBusinessStatus
und GMSPlaceFieldUTCOffsetMinutes
in Ihrer ursprünglichen Ortsanforderung anfordern. Wenn sie nicht angefordert wird, wird davon ausgegangen, dass das Unternehmen betriebsbereit ist.
isOpen
mit Place Details-Anfragen verwenden.
Ort nach ID anfordern
Die Orts-ID ist eine ID in Textform, über die ein Ort eindeutig identifiziert wird. Im Places SDK for iOS können Sie die ID eines Orts aus einem GMSPlace
-Objekt abrufen. Sie können die Orts-ID speichern und das Objekt GMSPlace
später noch einmal abrufen.
Um einen Ort über die ID abzurufen, rufen Sie GMSPlacesClient
fetchPlaceFromPlaceID:
auf und übergeben dabei die folgenden Parameter:
- Ein String mit einer Orts-ID.
- Ein oder mehrere
GMSPlaceField
s, die die zurückzugebenden Datentypen angeben. - Ein Sitzungstoken, wenn der Aufruf zum Abschluss einer Autocomplete-Abfrage erfolgt. Andernfalls übergeben Sie nil.
- Ein
GMSPlaceResultCallback
, um das Ergebnis zu verarbeiten.
Die API ruft die angegebene Callback-Methode auf und übergibt ihr ein GMSPlace
-Objekt. 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 fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) | UInt(GMSPlaceField.placeID.rawValue))! placesClient?.fetchPlace(fromPlaceID: placeID, placeFields: fields, sessionToken: nil, callback: { (place: GMSPlace?, error: Error?) in if let error = error { print("An error occurred: \(error.localizedDescription)") return } if let place = place { self.lblName?.text = place.name print("The selected place is: \(place.name)") } })
Objective-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID); [_placesClient fetchPlaceFromPlaceID:placeID placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } if (place != nil) { NSLog(@"The selected place is: %@", [place name]); } }];
Zuordnungen in der App anzeigen
Wenn deine App Informationen aus GMSPlacesClient
lookUpPlaceID:callback:
anzeigt, muss sie auch Quellenangaben enthalten.
Weitere Informationen finden Sie in der Dokumentation zu Attributionen.
Weitere Informationen zu Orts-IDs
Die im Places SDK for iOS verwendete Orts-ID hat dieselbe Kennung, die in der Places API, dem Places SDK for Android und anderen Google APIs verwendet wird.
Jede Orts-ID kann sich nur auf einen Ort beziehen, ein Ort kann jedoch mehrere Orts-IDs haben.
Unter bestimmten Umständen erhält ein Ort eine neue Orts-ID. Zum Beispiel kann dies der Fall sein, wenn ein Unternehmen seinen Sitz verlagert.
Wenn Sie eine Orts-ID anfordern, können Sie sicher sein, dass Sie immer denselben Ort in der Antwort erhalten, sofern der Ort noch vorhanden ist. Die Antwort kann jedoch eine Orts-ID enthalten, die von der in Ihrer Anfrage abweicht.
Weitere Informationen finden Sie in der Übersicht zur Orts-ID.