Ortsdetails (neu)

Plattform auswählen: Android iOS JavaScript Webdienst

Das Places SDK for iOS (New) bietet Ihrer App umfangreiche Informationen zu Orten, darunter Name und Adresse des Ortes, die als Breiten- und Längengrad angegebene geografische Lage sowie die Art des Ortes (z. B. Nachtclub, Tierhandlung, Museum) und vieles 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 Klasse GMSPlace enthält Informationen zu einem bestimmten Ort, einschließlich aller Datenfelder, die unter Ortsdatenfelder (neu) zu sehen sind. Sie können ein GMSPlace-Objekt abrufen, indem Sie GMSPlacesClient fetchPlaceWithRequest: aufrufen und ein GMSFetchPlaceRequest-Objekt sowie eine Callback-Methode vom Typ GMSPlaceResultCallback übergeben.

Das GMSFetchPlaceRequest-Objekt 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 GMSPlace-Objekt zurückgegeben werden sollen. Sie wird auch als Feldmaske bezeichnet und durch GMSPlaceProperty definiert. Wenn Sie mindestens ein Feld in der Feldliste nicht angeben oder die Feldliste auslassen, gibt der Aufruf einen Fehler zurück.
  • (Optional) Der zum Formatieren der Antwort verwendete Regionscode.
  • Optional: Das Sitzungstoken, mit dem eine Sitzung mit der automatischen Vervollständigung (neu) beendet wird.

„Place Details“-Anfrage stellen

In diesem Beispiel wird ein Ort nach ID abgerufen. Dabei werden die folgenden Parameter übergeben:

  • Die Orts-ID von ChIJV4k8_9UodTERU5KXbkYpSYs.
  • Feldliste, die angibt, ob der Ortsname und die Website-URL zurückgegeben werden sollen
  • Ein GMSPlaceResultCallback zur Verarbeitung 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.

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);
  }
}];

GooglePlacesSwift

// 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 in das GMSPlace-Objekt gefüllt.

Zusammen mit den Datenfeldern enthält das GMSPlace-Objekt in der Antwort die folgenden Mitgliederfunktionen:

  • isOpen berechnet, ob ein Ort zu diesem Zeitpunkt geöffnet ist.
  • isOpenAtDate berechnet, ob ein Ort an einem bestimmten Datum geöffnet ist.

Erforderliche Parameter

Verwenden Sie das Objekt GMSFetchPlaceRequest, um die erforderlichen Parameter anzugeben.

Orts-ID

Die Orts-ID, die im Places SDK for iOS verwendet wird, ist 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, aber ein Ort kann 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 durch Angabe einer Orts-ID einen Ort anfordern, können Sie sicher sein, dass Sie in der Antwort immer denselben Ort erhalten (sofern er noch vorhanden ist). Die Antwort kann jedoch eine Orts-ID enthalten, die sich von der in Ihrer Anfrage unterscheidet.

Feldliste

Wenn Sie Ortsdetails anfordern, müssen Sie die Daten angeben, die im GMSPlace-Objekt für den Ort als Feldmaske zurückgegeben werden sollen. Zum Definieren der Feldmaske übergeben Sie ein Array von Werten aus GMSPlaceProperty an das GMSFetchPlaceRequest-Objekt. Die Maskierung von Feldern hat sich bewährt, um sicherzustellen, dass keine unnötigen Daten angefordert werden. So lassen sich unnötige Verarbeitungszeiten und Gebühren vermeiden.

Geben Sie eines oder mehrere der folgenden Felder an:

  • Durch die folgenden Felder wird die SKU „Place Details (ID Only)“ ausgelöst:

    GMSPlacePropertyPlaceID, GMSPlacePropertyName, GMSPlacePropertyPhotos

  • Durch die folgenden Felder wird die SKU Place Details (Location Only) ausgelöst:

    GMSPlacePropertyAddressComponents, GMSPlacePropertyFormattedAddress, GMSPlacePropertyCoordinate, GMSPlacePropertyPlusCode, GMSPlacePropertyTypes, GMSPlacePropertyViewport

  • Durch die folgenden Felder wird die SKU Place Details (Basic) ausgelöst:

    GMSPlacePropertyBusinessStatus, GMSPlacePropertyIconBackgroundColor, GMSPlacePropertyIconImageURL, GMSPlacePropertyUTCOffsetMinutes, GMSPlacePropertyWheelchairAccessibleEntrance

  • Durch die folgenden Felder wird die SKU Place Details (Advanced) ausgelöst:

    GMSPlacePropertyCurrentOpeningHours, GMSPlacePropertySecondaryOpeningHours, GMSPlacePropertyPhoneNumber, GMSPlacePropertyPriceLevel, GMSPlacePropertyRating, GMSPlacePropertyOpeningHours, GMSPlacePropertyUserRatingsTotal, GMSPlacePropertyWebsite

  • Durch die folgenden Felder wird die SKU Place Details (Preferred) ausgelöst:

    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 von einer Anfrage zurückgegebene GMSPlace-Objekt 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];
  

GooglePlacesSwift

// 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 zum Formatieren der Antwort verwendete Regionscode, angegeben als zweistelliger CLDR-Code-Wert. Dieser Parameter kann sich auch negativ auf die Suchergebnisse auswirken. Es gibt keinen Standardwert.

Wenn der Ländername des Adressfelds in der Antwort mit dem Regionscode übereinstimmt, wird der Ländercode in der Adresse weggelassen.

Die meisten CLDR-Codes sind mit ISO 3166-1-Codes identisch. Es gibt jedoch einige 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 „The United Kingdom of Great Britain and Northern Ireland“). Der Parameter kann sich gemäß anwendbarem Recht auf Ergebnisse auswirken.

sessionToken

Sitzungstokens sind vom Nutzer generierte Strings, die Aufrufe der automatischen Vervollständigung (New) als „Sitzungen“ erfassen. Die Funktion „Autocomplete (neu)“ verwendet Sitzungstokens, um die Abfrage zu gruppieren und die Auswahlphasen einer automatischen Vervollständigung durch den Nutzer zu Abrechnungszwecken in eine separate Sitzung zu verschieben. Sitzungstokens werden an „Place Details (New)“-Aufrufe übergeben, die „Autocomplete (New)“-Aufrufen folgen. Weitere Informationen finden Sie unter Sitzungstokens.

Zuordnungen in der App anzeigen

Wenn in Ihrer App Informationen aus GMSPlacesClient angezeigt werden, z. B. Fotos und Rezensionen, müssen auch die erforderlichen Quellenangaben vorhanden sein.

Beispielsweise enthält das Attribut reviews des GMSPlacesClient-Objekts ein Array mit bis zu fünf GMSPlaceReview-Objekten. Jedes GMSPlaceReview-Objekt kann Quellenangaben und Autoreninformationen enthalten. Wenn Sie die Rezension in Ihrer App präsentieren, müssen Sie auch die Quellenangabe oder den Autor angeben.

Weitere Informationen finden Sie in der Dokumentation zu Attributionen.