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:
- Rufen Sie
PlacesClient.findCurrentPlace()
auf – siehe Leitfaden zum Abrufen des aktuellen Orts. - Rufen Sie
PlacesClient.fetchPlace()
auf – siehe Leitfaden zum Abrufen eines Ortes nach ID.
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 ListplaceFields = 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()
: EineList
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 stattdessengetAddress()
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 OrtsgetOpeningHours()
: DerOpeningHours
des Orts. Rufen SieOpeningHours.getWeekdayText()
auf, um eine Liste von Strings zurückzugeben, die die Öffnungszeiten für jeden Tag der Woche darstellen. Rufen SieOpeningHours.getPeriods()
auf, um eine Liste vonperiod
-Objekten mit detaillierteren Informationen zurückzugeben, die den vongetWeekdayText()
bereitgestellten Daten entsprechen. Hinweis: Wenn ein Ort immer geöffnet ist, wird der Zeitraum als Sonntag um Mitternacht angegeben undcloseEvent
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 sowohlPlace.Field.UTC_OFFSET
als auchPlace.Field.OPENING_HOURS
verfügbar sind. Für genaue Ergebnisse sollten Sie die FelderPlace.Field.BUSINESS_STATUS
undPlace.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 SieisOpen
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.