Place Details

Plattform auswählen: Android iOS JavaScript Webdienst

Das Places SDK for Android liefert deiner App umfassende Informationen zu Orten, z. B. den Namen und die Adresse des Ortes, den geografischen Standort (Breiten- und Längengrad), die Art des Ortes (z. B. Nachtclub, Tierhandlung oder 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

Das Objekt Place enthält Informationen zu einem bestimmten Ort. Sie können ein Place-Objekt so abrufen:

Wenn Sie einen Ort anfordern, müssen Sie angeben, welche Ortsdaten zurückgegeben werden sollen. Dazu übergeben Sie eine Liste von Werten für Place.Field, die die zurückzugebenden Daten angeben. Diese Liste ist wichtig, da sie die Kosten für jede Anfrage beeinflusst.

Da die Ergebnisse für „Place“-Daten nicht leer sein dürfen, werden nur Ortsergebnisse mit Daten zurückgegeben. Wenn ein angefragter Ort beispielsweise keine Fotos enthält, ist das Feld photos nicht im Ergebnis enthalten.

Im folgenden Beispiel wird eine Liste von drei Place.Field-Werten übergeben, um die von einer Anfrage zurückgegebenen Daten anzugeben:

Java

// Specify the fields to return.
final List placeFields = Arrays.asList(Place.Field.NAME, Place.Field.RATING, Place.Field.OPENING_HOURS);

Kotlin

// Specify the fields to return.
val placeFields = listOf(Place.Field.NAME, Place.Field.RATING, Place.Field.OPENING_HOURS)

Nachdem Sie das Place-Objekt abgerufen haben, können Sie die Ortsdaten mit den Methoden des Objekts abrufen. Im Folgenden finden Sie einige Beispiele für einige der verfügbaren Methoden. Eine vollständige Liste aller Methoden finden Sie in der API-Referenz zu Place.

  • getAddress(): Die Adresse des Ortes im menschenlesbaren Format.
  • getAddressComponents(): Eine List von Adresskomponenten für diesen Ort. Sie dienen dazu, strukturierte Informationen zur Adresse eines Ortes zu extrahieren, z. B. die Stadt zu finden, in der sich der Ort befindet. Verwende diese Komponenten nicht für die Adressformatierung. Rufe stattdessen getAddress() auf, um eine lokalisierte formatierte Adresse bereitzustellen.
  • getID(): Der Text in ID für den Ort. Weitere Informationen zu Orts-IDs finden Sie weiter unten auf dieser Seite.
  • getLatLng(): Der geografische Standort des Ortes, angegeben in Breiten- und Längengraden.
  • getName(): Der Name des Orts
  • getOpeningHours(): Der OpeningHours des Orts. Rufen Sie OpeningHours.getWeekdayText() auf, um eine Liste von Strings zurückzugeben, die die Öffnungszeiten für jeden Tag der Woche darstellen. Rufen Sie OpeningHours.getPeriods() auf, um eine Liste von period-Objekten mit detaillierteren Informationen zurückzugeben, die den von getWeekdayText() bereitgestellten Daten entsprechen. Hinweis: Wenn ein Ort immer geöffnet ist, wird der Zeitraum als Sonntag um Mitternacht angegeben und closeEvent ist null.
  • isOpen(): Ein boolescher Wert, der angibt, ob der Ort derzeit geöffnet ist. Wenn keine Zeit angegeben ist, wird jetzt die Standardeinstellung verwendet. isOpen wird nur zurückgegeben, wenn sowohl Place.Field.UTC_OFFSET als auch Place.Field.OPENING_HOURS verfügbar sind. Für genaue Ergebnisse sollten Sie die Felder Place.Field.BUSINESS_STATUS und Place.Field.UTC_OFFSET in Ihrer ursprünglichen Ortsanforderung anfordern. Wenn sie nicht angefordert wird, wird angenommen, dass das Unternehmen betriebsbereit ist. In diesem Video erfahren Sie, wie Sie isOpen mit Place Details-Anfragen verwenden.

Einige einfache Beispiele:

Java


final CharSequence name = place.getName();
final CharSequence address = place.getAddress();
final LatLng location = place.getLatLng();

      

Kotlin


val name = place.name
val address = place.address
val location = place.latLng

      

Ort nach ID anfordern

Die Orts-ID ist eine ID in Textform, über die ein Ort eindeutig identifiziert wird. Im Places SDK for Android können Sie die ID eines Ortes abrufen, indem Sie Place.getId() aufrufen. Der Place Autocomplete-Dienst gibt außerdem eine Orts-ID für jeden Ort zurück, der der angegebenen Suchanfrage und dem Filter entspricht. Sie können die Orts-ID speichern und das Objekt Place später noch einmal abrufen.

Um einen Ort anhand der ID abzurufen, rufen Sie PlacesClient.fetchPlace() auf und übergeben Sie einen FetchPlaceRequest.

Die API gibt einen FetchPlaceResponse in einem Task zurück. Der FetchPlaceResponse enthält ein Place-Objekt, das der angegebenen Orts-ID entspricht.

Das folgende Codebeispiel zeigt, wie fetchPlace() aufgerufen wird, um Details für den angegebenen Ort abzurufen.

Java


// Define a Place ID.
final String placeId = "INSERT_PLACE_ID_HERE";

// Specify the fields to return.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);

// Construct a request object, passing the place ID and fields array.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);

placesClient.fetchPlace(request).addOnSuccessListener((response) -> {
    Place place = response.getPlace();
    Log.i(TAG, "Place found: " + place.getName());
}).addOnFailureListener((exception) -> {
    if (exception instanceof ApiException) {
        final ApiException apiException = (ApiException) exception;
        Log.e(TAG, "Place not found: " + exception.getMessage());
        final int statusCode = apiException.getStatusCode();
        // TODO: Handle error with given status code.
    }
});

      

Kotlin


// Define a Place ID.
val placeId = "INSERT_PLACE_ID_HERE"

// Specify the fields to return.
val placeFields = listOf(Place.Field.ID, Place.Field.NAME)

// Construct a request object, passing the place ID and fields array.
val request = FetchPlaceRequest.newInstance(placeId, placeFields)

placesClient.fetchPlace(request)
    .addOnSuccessListener { response: FetchPlaceResponse ->
        val place = response.place
        Log.i(PlaceDetailsActivity.TAG, "Place found: ${place.name}")
    }.addOnFailureListener { exception: Exception ->
        if (exception is ApiException) {
            Log.e(TAG, "Place not found: ${exception.message}")
            val statusCode = exception.statusCode
            TODO("Handle error with given status code")
        }
    }

      

Zuordnungen in der App anzeigen

Wenn in Ihrer App Ortsinformationen angezeigt werden, müssen auch Quellenangaben angezeigt werden. Weitere Informationen finden Sie in der Dokumentation zu Attributionen.

Weitere Informationen zu Orts-IDs

Die im Places SDK for Android verwendete Orts-ID ist mit der in der Places API identisch. Jede Orts-ID kann sich nur auf einen Ort beziehen, ein Ort kann jedoch mehrere Orts-IDs haben. In anderen Fällen kann es vorkommen, dass ein Ort eine neue Orts-ID erhält. Das kann zum Beispiel passieren, wenn ein Unternehmen umzieht.

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.