„Place Details“

Plattform auswählen: Android iOS JavaScript Webdienst

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:

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 durch GMSOpeningHours). Anruf GMSOpeningHours.weekdayText, um eine Liste der lokalisierten Strings zu erhalten der täglichen Öffnungszeiten in der Woche. GMSOpeningHours.Periods anrufen , um eine Liste von GMSPeriods mit detaillierteren Informationen zurückzugeben. entspricht den von weekdayText bereitgestellten Daten. Hinweis:Wenn ein Ort immer geöffnet ist, wird der Zeitraum als Sonntag um Mitternacht und der closeEvent ist null.
  • currentOpeningHours und secondaryOpeningHours: Felder, die auf Feiertagsänderungen oder vorübergehende Änderungen des Zeitplans für einen Ort hinweisen.
  • addressComponents: ein Array von GMSAddressComponent-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 stattdessen formattedAddress , 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.
  • 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 auf openingHours und UTCOffsetMinutes, sowie das aktuelle Datum und die aktuelle Uhrzeit.
  • isOpenAtDate berechnet, ob ein Ort an einem bestimmten Datum geöffnet ist, basierend auf openingHours und UTCOffsetMinutes, 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.

    Sehen Sie sich dieses Video zur Verwendung von isOpen mit Place Details.

Außergewöhnliche Öffnungszeiten

Die regulären Öffnungszeiten sind über openingHours 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 GMSPlaceFields, 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.