Place Details

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.
Seleziona piattaforma: Android iOS JavaScript Servizio web

L'SDK Places per Android fornisce alla tua app informazioni dettagliate sui luoghi, inclusi il nome e l'indirizzo del luogo, la posizione geografica specificata come coordinate di latitudine/longitudine, il tipo di luogo (ad esempio discoteca, negozio di animali, museo) e altro ancora. Per accedere a queste informazioni relative a un luogo specifico, puoi utilizzare l'ID luogo, un identificatore stabile che identifica in modo univoco un luogo.

Dettagli luogo

L'oggetto Place fornisce informazioni su un luogo specifico. Puoi recuperare un oggetto Place nei seguenti modi:

Quando richiedi un luogo, devi specificare i tipi di dati di un luogo da restituire. A tale scopo, passa un elemento List<Place.Field>, specificando i tipi di dati da restituire. Questo è un aspetto importante da considerare, perché influirà sul costo di ogni richiesta. Poiché i risultati dei dati dei luoghi non possono essere vuoti, vengono restituiti solo i risultati dei luoghi con dati (ad esempio, se un luogo richiesto non ha foto, il campo photos non sarà presente nel risultato). Puoi specificare uno o più dei seguenti campi:

  • Place.Field.ADDRESS
  • Place.Field.ADDRESS_COMPONENTS
  • Place.Field.BUSINESS_STATUS
  • Place.Field.ID
  • Place.Field.LAT_LNG
  • Place.Field.NAME
  • Place.Field.OPENING_HOURS
  • Place.Field.PHONE_NUMBER
  • Place.Field.PHOTO_METADATAS
  • Place.Field.PLUS_CODE
  • Place.Field.PRICE_LEVEL
  • Place.Field.RATING
  • Place.Field.TYPES
  • Place.Field.USER_RATINGS_TOTAL
  • Place.Field.ICON_URL
  • Place.Field.ICON_BACKGROUND_COLOR
  • Place.Field.VIEWPORT
  • Place.Field.UTC_OFFSET
  • Place.Field.WEBSITE_URI

Scopri di più sui campi luogo. Per ulteriori informazioni sulla modalità di fatturazione delle richieste di dati dei luoghi, consulta Utilizzo e fatturazione.

Utilizza i seguenti metodi per recuperare i dati da una Place:

  • getAddress(): l'indirizzo del luogo, in formato leggibile.
  • getAddressComponents() - Un List di componenti dell'indirizzo per questo luogo. Questi componenti vengono forniti allo scopo di estrarre informazioni strutturate sull'indirizzo di un luogo, ad esempio per trovare la città in cui si trova un luogo. Non utilizzare questi componenti per la formattazione dell'indirizzo; chiama invece getAddress(), che fornisce un indirizzo formattato localizzato.
  • getBusinessStatus(): lo stato operativo del luogo, se si tratta di un'attività. Può contenere uno dei seguenti valori: OPERATIONAL, CLOSED_TEMPORARILY, CLOSED PERMANENTLY.
  • getAttributions(): le attribuzioni che devono essere mostrate all'utente se vengono utilizzati i dati del luogo.
  • getID(): l'identificatore testuale della località. Scopri di più sugli ID luogo nel resto di questa pagina.
  • getLatLng(): la posizione geografica del luogo, specificata come coordinate di latitudine e longitudine.
  • getName(): il nome del luogo.
  • getOpeningHours(): il OpeningHours del luogo. Richiama OpeningHours.getWeekdayText() per restituire un elenco di stringhe che rappresentano l'orario di apertura e di chiusura per ogni giorno della settimana. Chiama OpeningHours.getPeriods() per restituire un elenco di oggetti period con informazioni più dettagliate equivalenti ai dati forniti da getWeekdayText(). Nota: se un luogo è sempre aperto, il periodo di tempo è rappresentato come domenica a mezzanotte e il valore closeEvent è nullo.
  • getPhoneNumber(): il numero di telefono del luogo.
  • getPhotoMetadatas(): i metadati associati a una foto associata al luogo, inclusa l'immagine bitmap.
  • getPlusCode(): la posizione del PlusCode di questo luogo.
  • getPriceLevel(): il livello di prezzo per questo luogo, restituito come numero intero con valori compresi tra 0 (più economico) e 4 (più costoso).
  • getRating(): una valutazione complessiva del luogo, restituita come floating con valori compresi tra 1,0 e 5,0, basata sulle recensioni aggregate degli utenti.
  • getTypes(): un elenco dei tipi di luogo che caratterizzano questo luogo. Per un elenco dei tipi di luoghi disponibili, consultate la documentazione per l'interfaccia di Place.
  • getUserRatingsTotal(): il numero totale di valutazioni degli utenti di questo luogo.
  • getIconUrl(): l'URL di una maschera con un'icona nera che rappresenta il tipo di luogo.
  • getIconBackgroundColor: il colore di sfondo dell'icona per il tipo di luogo.
  • getUtcOffsetMinutes(): la differenza in UTC, in minuti.
  • getViewport(): un'area visibile, restituita come oggetto LatLngBounds, utile per visualizzare il luogo su una mappa. Può restituire null se la dimensione del luogo non è nota.
  • getWebsiteUri(): l'URI del sito web del luogo, se noto. Si tratta del sito web gestito dall'attività o dall'altra persona giuridica associata al luogo. Restituisce null se non è noto alcun sito web.
  • isOpen(): un valore booleano che indica se il luogo è attualmente aperto. Se non viene specificato alcun orario, il valore predefinito è ora. isOpen verrà restituito solo se Place.Field.UTC_OFFSET e Place.Field.OPENING_HOURS sono disponibili. Per ottenere risultati precisi, richiedi i campi Place.Field.BUSINESS_STATUS e Place.Field.UTC_OFFSET nella richiesta di luogo originale. Se non viene richiesto, si presume che l'attività sia operativa. Guarda questo video per informazioni sull'utilizzo di isOpen con i dettagli del luogo.

Ecco alcuni semplici esempi:

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

      

Ottieni un luogo in base all'ID

L'ID luogo è un identificatore testuale che identifica in modo univoco un luogo. Nell'SDK Places per Android, puoi recuperare l'ID di un luogo chiamando Place.getId(). Il servizio Place Autocomplete restituisce anche un ID luogo per ogni luogo che corrisponde alla query di ricerca e al filtro forniti. Puoi memorizzare l'ID luogo e utilizzarlo di nuovo per recuperare l'oggetto Place.

Per ottenere un luogo tramite ID, chiama PlacesClient.fetchPlace(), passando un FetchPlaceRequest.

L'API restituisce un FetchPlaceResponse in un Task. FetchPlaceResponse contiene un oggetto Place corrispondente all'ID luogo fornito.

L'esempio di codice seguente mostra una chiamata a fetchPlace() per ricevere i dettagli del luogo specificato.

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")
        }
    }

      

Attribuzioni display nell'app

Quando la tua app visualizza informazioni sui luoghi, deve mostrare anche le attribuzioni. Consulta la documentazione sulle attribuzione.

Scopri di più sugli ID luogo

L'ID luogo utilizzato nell'SDK Places per Android è lo stesso identificatore utilizzato nell'API Places. Ogni ID luogo può fare riferimento a un solo luogo, ma un singolo luogo può avere più di un ID luogo. Esistono altre circostanze che potrebbero far sì che un luogo riceva un nuovo ID luogo. Ad esempio, ciò può accadere se un'attività si trasferisce in una nuova sede.

Quando richiedi un luogo specificando un ID luogo, puoi avere la certezza che riceverai sempre lo stesso luogo nella risposta (se il luogo esiste ancora). Tieni presente, tuttavia, che la risposta potrebbe contenere un ID luogo diverso da quello indicato nella richiesta.

Per ulteriori informazioni, consulta la panoramica dell'ID luogo.