Das Places SDK for iOS stellt Ihrer App umfangreiche Informationen zur Verfügung. 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
Die
GMSPlace
-Klasse Informationen über einen bestimmten Ort bereitstellt. Sie können sich eine
GMSPlace
auf folgende Weise verwenden:
- Anruf
GMSPlacesClient findPlaceLikelihoodsFromUserLocationWithPlaceFields:
Weitere Informationen finden Sie im Leitfaden zur den aktuellen Ort abrufen. - Anruf
GMSPlacesClient fetchPlaceFromPlaceID:
, übergibtGMSPlaceField
, einen Orts-ID und eine Callback-Methode an. Bei „Place Details“-Anfragen, wenn Sie mindestens ein Feld mit einer Anfrage angeben oder wenn Siefields
weglassen einer Anfrage hinzugefügt haben, werden ALLE möglichen Felder zurückgegeben und Sie werden entsprechend abgerechnet. Weitere Informationen finden Sie im Leitfaden zum Beziehen eines nach ID suchen.
Wenn Sie einen Ort anfragen, müssen Sie angeben, welche Arten von Ortsdaten
zurückgeben. Dazu übergeben Sie ein GMSPlaceField
-Objekt und geben dabei die Daten an,
Typen, die zurückgegeben werden sollen. Das ist eine wichtige Überlegung, da sie sich auf die
Kosten pro Anfrage.
Weil Ergebnisse für „Place“-Daten nicht leer sein dürfen, sondern nur für den Ort
Ergebnisse mit Daten zurückgegeben (wenn z. B. ein angefragter Ort keine
Fotos enthält, 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
GMSPlace
kann die folgenden Ortsdaten enthalten:
name
: Der Name des Ortes.editorialSummary
: liefert eine einfache Beschreibung eines Ortes.placeID
: Die Kennung des Orts in Textform. Gelesen über Orts-IDs.coordinate
: der geografische Standort des Orts als Breiten- und Längengrade angegeben.phoneNumber
: Die Telefonnummer des Orts in internationalen Formats.formattedAddress
: Die visuell lesbare Adresse dieses Standort.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 des Orts (wie dargestellt durchGMSOpeningHours
). AnrufGMSOpeningHours.weekdayText
, um eine Liste der lokalisierten Strings zu erhalten der täglichen Öffnungszeiten in der Woche.GMSOpeningHours.Periods
anrufen , um eine Liste vonGMSPeriod
s mit detaillierteren Informationen zurückzugeben. entspricht den vonweekdayText
bereitgestellten Daten. Hinweis:Wenn ein Ort immer geöffnet ist, wird der Zeitraum als Sonntag um Mitternacht und dercloseEvent
ist null.currentOpeningHours
undsecondaryOpeningHours
: Felder, die auf Feiertagsänderungen oder vorübergehende Änderungen des Zeitplans für einen Ort hinweisen.addressComponents
: ein Array vonGMSAddressComponent
-Objekte, die Komponenten des Adresse für einen Ort. Diese Komponenten werden zum Zweck Extrahieren strukturierter Informationen zur Adresse eines Ortes, z. B. um die Stadt zu finden, in der sich ein Ort befindet. Diese Komponenten nicht verwenden für die Adressformatierung; verwenden Sie stattdessenformattedAddress
, das eine lokalisierte Adresse bereitstellt.Beachten Sie die folgenden Fakten zur
addressComponents
Array:- Das Array der Adresskomponenten kann mehr Komponenten enthalten als die Komponenten
formattedAddress
- Das Array enthält nicht unbedingt alle politischen Einheiten,
eine Adresse enthalten, abgesehen von den in den
formattedAddress
- Es ist nicht garantiert, dass das Format der Antwort zwischen
-Anfragen. Insbesondere die Anzahl der
addressComponents
variiert je nach angeforderter Adresse und kann sich im Laufe der Zeit dieselbe Adresse haben. Die Position einer Komponente im Array ändert sich unter Umständen. Auch der Typ der Komponente kann sich ändern. Eine bestimmte Komponente kann in einer späteren Antwort fehlt.
- Das Array der Adresskomponenten kann mehr Komponenten enthalten als die Komponenten
userRatingsTotal
: Gibt an, aus wie vielen Rezensionen auf die Bewertung des Ortes.
Die
GMSPlace
-Klasse enthält die folgenden Member-Funktionen:
- <ph type="x-smartling-placeholder"></ph>
isOpen
berechnet, ob ein Ort zur angegebenen Zeit geöffnet ist. basierend aufopeningHours
undUTCOffsetMinutes
, sowie das aktuelle Datum und die aktuelle Uhrzeit. isOpenAtDate
berechnet, ob ein Ort an einem bestimmten Datum geöffnet ist, basierend aufopeningHours
undUTCOffsetMinutes
, sowie das aktuelle Datum und die aktuelle Uhrzeit.
Wenn Sie mit diesen Funktionen Öffnungszeiten und/oder Datumsangaben abrufen,
fetchPlaceFromPlaceID:
oder findPlaceLikelihoodsFromUserLocationWithPlaceFields:
Anfrage muss sowohl GMSPlaceFieldOpeningHours
als auch GMSPlaceFieldUTCOffsetMinutes
angeben
. Wenn eines dieser Felder fehlt, wird die resultierende GMSPlace
keine Öffnungszeiten oder Datumsangaben enthält und der Aufruf
GMSPlaceOpenStatusUnknown
. Um genaue Ergebnisse zu erhalten, fordern Sie
GMSPlaceFieldBusinessStatus
und GMSPlaceFieldUTCOffsetMinutes
in Ihrer ursprünglichen Ortsanfrage. Wenn keine Anfrage gestellt wird, wird angenommen, dass
ob das Unternehmen betriebsbereit ist.
isOpen
mit Place Details.
Außergewöhnliche Öffnungszeiten
Die regulären Öffnungszeiten sind überopeningHours
verfügbar. currentOpeningHours
und secondaryOpeningHours
unterstützen Feiertags- und vorübergehende Fahrplanänderungen.
Außergewöhnliche Öffnungszeiten an diesen besonderen Tagen können gefiltert und angezeigt werden, sofern verfügbar.
Swift
func examineOpeningHours(place: GMSPlace) { // Check if the current opening hours contains a special day that has exceptional hours guard let currentOpeningHours = place.currentOpeningHours else { return } if let specialDays = currentOpeningHours.specialDays { guard !specialDays.isEmpty else { return } if let specialDay = specialDays.filter { $0.isExceptional }.first { // Indicate exceptional hours } } // Check if current opening hours contains a truncated time period let periods = currentOpeningHours.periods if !periods.isEmpty { for period in periods { let open = period.open let close = period.close if let open = open { let date = open.date if open.isTruncated { // Indicate truncated time period } } } } // Check if the place's secondary opening hours indicate when delivery is available let secondaryOpeningHours = place.secondaryOpeningHours guard let hoursType = secondaryOpeningHours.first?.hoursType else { return } if (hoursType == GMSPlaceHoursTypeDelivery) { // Indicate hours where delivery is available } }
Objective-C
- (void)examineOpeningHours:(GMSPlace *) place { // Check if the current opening hours contains a special day that has exceptional hours GMSOpeningHours *currentOpeningHours = place.currentOpeningHours; if (currentOpeningHours != nil) { NSArray<GMSPlaceSpecialDay *> *specialDays = currentOpeningHours.specialDays; if ([specialDays count] != 0) { for (GMSPlaceSpecialDay *specialDay in specialDays) { NSDate *date = specialDay.date; if ([specialDay isExceptional]) { // Indicate exceptional hours } } } } // Check if current opening hours contains a truncated time period NSArray <GMSPeriod *> * periods = currentOpeningHours.periods; if ([periods count] != 0) { for (GMSPeriod * period in periods) { GMSTimeOfWeek *open = period.open; GMSTimeOfWeek *close = period.close; if (open) { if ([open isTruncated]) { // Indicate truncated time period } } } } // Check if the place's secondary opening hours indicate when delivery is available GMSOpeningHours *secondaryOpeningHours = place.secondaryOpeningHours; GMSPlaceHoursType hoursType = secondaryOpeningHours.getHoursType; if (hoursType == GMSPlaceHoursTypeDelivery) { // Indicate hours where delivery is available } }
Ort nach ID anfordern
Die Orts-ID ist eine Kennung in Textform, die einen Ort eindeutig definiert. In
des Places SDK for iOS können Sie die ID eines Orts anhand einer
GMSPlace
-Objekt enthält. Sie können die Orts-ID speichern und zum Abrufen der
GMSPlace
-Objekt zu erstellen.
Um einen Ort anhand der ID zu erhalten, rufen Sie
GMSPlacesClient
fetchPlaceFromPlaceID:
. Dabei werden folgende Parameter übergeben:
- Ein String, der eine Orts-ID enthält.
- Eine oder mehrere
GMSPlaceField
s, die die zurückzugebenden Datentypen angeben. - Ein Sitzungstoken, wenn der Aufruf zum Abschluss einer Abfrage für die automatische Vervollständigung erfolgt. Andernfalls übergeben Sie „nil“.
- Ein
GMSPlaceResultCallback
zur Verarbeitung des Ergebnisses.
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 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 Ihre App Informationen anzeigt, die von
GMSPlacesClient
lookUpPlaceID:callback:
muss die App auch Quellenangaben anzeigen.
Weitere Informationen finden Sie in der Dokumentation zu
Quellenangaben.
Weitere Informationen zu Orts-IDs
Die im Places SDK for iOS verwendete Orts-ID ist dieselbe ID wie verwendet im Places API, Places SDK for Android und andere Google APIs.
Jede Orts-ID kann sich nur auf einen Ort beziehen, ein Ort kann aber 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.
Weitere Informationen finden Sie in der Orts-ID-Übersicht.