Completamento automatico (novità)

Seleziona la piattaforma: Android iOS JavaScript Servizio web

Il completamento automatico (nuova) restituisce le previsioni sui luoghi in risposta a una richiesta che include una stringa di ricerca testuale e limiti geografici che controllano l'area di ricerca. Il completamento automatico può corrispondere su parole complete e sottostringhe dell'input, risolvendo i nomi dei luoghi, gli indirizzi plus code. La tua applicazione può inviare query mentre l'utente digita le parole, per fornire previsioni immediate e le query.

Ad esempio, chiami il completamento automatico utilizzando come input un stringa che contiene un input parziale dell'utente, "piz siciliano", con l'area di ricerca solo a Milano, Italia. La risposta contiene quindi un elenco di luoghi previsioni che corrispondono alla stringa di ricerca e all'area di ricerca, come il ristorante chiamata "Sicilian Pizza Kitchen".

Le previsioni dei luoghi restituite sono concepite per essere presentate all'utente per aiutare selezionando la posizione desiderata. Puoi creare Dettagli luogo (Novità) per visualizzarne altri informazioni sulle previsioni dei luoghi restituite.

Richieste di completamento automatico (nuove)

La tua app può ottenere un elenco di nomi di luoghi previsti e/o indirizzi IP dall'API Autocomplete chiamando PlacesClient.findAutocompletePredictions(), passando un FindAutocompletePredictionsRequest . L'esempio seguente mostra una chiamata completa a PlacesClient.findAutocompletePredictions().

Places.initializeWithNewPlacesApiEnabled(context, apiKey);
final List<Field> placeFields = getPlaceFields();
LatLng center = new LatLng(37.7749, -122.4194);
CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000);
final FindAutocompletePredictionsRequest autocompletePlacesRequest =
    FindAutocompletePredictionsRequest.builder()
            .setQuery("Sicilian piz")
            .setRegionCode("ES")
            .setLocationRestriction(circle)
            .build());
placesClient.findAutocompletePredictions(autoCompletePlacesRequest)
    .addOnSuccessListener(
        (response) -> {
            List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions();
          }
    ).addOnFailureListener(
        exception -> {
            Log.e(TAG, "some exception happened" + exception.getMessage());
        })
    );

Risposte di completamento automatico (nuove)

L'API restituisce un FindAutocompletePredictionsResponse in un Task. La FindAutocompletePredictionsResponse contiene un elenco di massimo cinque AutocompletePrediction oggetti che rappresentano luoghi previsti. L'elenco potrebbe essere vuoto, se non sono presenti posto noto corrispondente alla query e ai criteri del filtro.

Per ogni luogo previsto, puoi chiamare i seguenti metodi per recuperare il luogo dettagli:

  • getFullText(CharacterStyle) restituisce il testo completo della descrizione di un luogo. Si tratta di una combinazione principale e secondario. Esempio: "Torre Eiffel, Avenue Anatole France, Parigi, Francia". Inoltre, questo metodo ti consente di evidenziare le sezioni del descrizione che corrisponda alla ricerca con uno stile di tua scelta, utilizzando CharacterStyle. Il parametro CharacterStyle è facoltativo. Impostalo su null se non ti serve con qualsiasi evidenziazione.
  • getPrimaryText(CharacterStyle) restituisce il testo principale che descrive un luogo. Si tratta solitamente del nome del posto. Esempi: "Torre Eiffel" e "Via Cavour 123".
  • getSecondaryText(CharacterStyle) restituisce il testo della società controllata della descrizione di un luogo. Questo è utile per Ad esempio, come seconda riga quando mostri le previsioni di completamento automatico. Esempi: "Avenue Anatole France, Paris, France" e "Sydney, Nuovo Galles del Sud".
  • getPlaceId() restituisce l'ID luogo del luogo previsto. L'ID luogo è una stringa che identifica in modo univoco un luogo, che puoi utilizzare per recuperare il Place di nuovo in seguito. Per ulteriori informazioni sugli ID luogo in Completamento automatico, consulta Dettagli luogo (Nuova). Per informazioni generali informazioni sugli ID luogo, consulta la sezione ID luogo Panoramica.
  • getTypes() restituisce l'elenco dei tipi di luogo associati al luogo.
  • getDistanceMeters() restituisce la distanza retta in metri tra questo luogo e dell'origine specificata nella richiesta.

Parametri obbligatori

  • Query

    La stringa di testo in cui eseguire la ricerca. Specifica parole complete e sottostringhe, nomi di luoghi, indirizzi e plus code. Il servizio Autocomplete (nuovo) restituisce le corrispondenze dei candidati in base a questa stringa e ordina i risultati in base a la loro pertinenza percepita.

    Per impostare il parametro di query, richiama la funzione setQuery() quando si crea l'oggetto FindAutocompletePredictionsRequest.

Parametri facoltativi

  • Tipi principali

    Un elenco di massimo cinque valori per i tipi Tabella A o Tabella B utilizzato per filtrare i luoghi restituiti nella risposta. Un luogo deve corrispondere a uno dei valori di tipo principale specificati da includere nella risposta.

    Un luogo può avere un solo tipo principale tra i tipi Tabella A o la Tabella B associata con essa. Ad esempio, il tipo principale potrebbe essere "mexican_restaurant" o "steak_house".

    La richiesta viene rifiutata con un errore INVALID_REQUEST se:

    • Sono specificati più di cinque tipi.
    • Vengono specificati tipi non riconosciuti.

    Per impostare il parametro dei tipi principali, richiama setTypesFilter() quando si crea l'oggetto FindAutocompletePredictionsRequest.

  • Paesi

    Includi solo i risultati dell'elenco di paesi specificati, specificati come elenco di massimo 15 ccTLD ("dominio di primo livello") valori a due caratteri. Se omesso, non vengono applicate limitazioni alla risposta. Ad esempio: per limitare le regioni a Germania e Francia:

    Se specifichi sia locationRestriction sia includedRegionCodes, i risultati si trovano nell'area di intersezione delle due impostazioni.

    Per impostare il parametro dei paesi, chiama la funzione setCountries() quando si crea l'oggetto FindAutocompletePredictionsRequest.

  • Offset di input

    L'offset Unicode su base zero che indica la posizione del cursore nella query. La posizione del cursore può influire sulle previsioni restituite. Se vuoto, viene utilizzato il valore predefinito la lunghezza della query.

    Per impostare il parametro di offset di input, richiama la funzione setInputOffset() quando si crea l'oggetto FindAutocompletePredictionsRequest.

  • Bias di località o limitazione di località

    Puoi specificare una parzialità per località o una restrizione di località ma non entrambi, per definire l'area di ricerca. Pensa alla limitazione di località come a specificare regione in cui devono trovarsi i risultati e la differenziazione della località che specifica la regione vicina ai risultati. La differenza principale è che con bias di località, i risultati al di fuori della regione specificata potrebbero comunque essere restituiti.

    • Bias località

      Specifica un'area in cui eseguire la ricerca. Questa località funge da bias, non da restrizione, quindi i risultati all'esterno dell'area specificata potrebbero essere comunque restituiti.

      Per impostare il parametro della parzialità di località, chiama la funzione setLocationBias() quando si crea l'oggetto FindAutocompletePredictionsRequest.

    • Restrizione di località

      Specifica un'area in cui eseguire la ricerca. I risultati al di fuori dell'area specificata non sono restituito.

      Per impostare il parametro della limitazione di località, chiama la funzione setLocationRestriction() quando si crea l'oggetto FindAutocompletePredictionsRequest.

    Specifica la bias di località o la regione con limitazioni di località come area visibile rettangolare o come un cerchio.

    • Un cerchio viene definito dal centro e dal raggio in metri. Il raggio deve essere compreso tra 0,0 e 50000,0 inclusi. Il valore predefinito è 0,0. Per la limitazione di località, devi impostare il raggio su un valore maggiore di 0,0. In caso contrario, la richiesta viene restituita nessun risultato.

    • Un rettangolo è un'area visibile di latitudine e longitudine, rappresentata da due diagonalmente opposta a low e high punti. Un'area visibile è considerata un regione chiusa, ovvero include il confine. I limiti di latitudine deve essere compreso tra -90 e 90 gradi inclusi e i limiti di longitudine deve essere compreso tra -180 e 180 gradi inclusi:

      • Se low = high, l'area visibile è composta da quel singolo punto.
      • Se low.longitude > high.longitude, l'intervallo di longitudine è invertito (l'area visibile attraversa la linea di longitudine di 180 gradi).
      • Se low.longitude = -180 gradi e high.longitude = 180 gradi, l'area visibile include tutte le longitudini.
      • Se low.longitude = 180 gradi e high.longitude = -180 gradi, l'intervallo di longitudine è vuoto.

      È necessario compilare entrambi i campi low e high e la casella rappresentata non può essere vuoto. Un'area visibile vuota genera un errore.

  • Origine

    Il punto di origine da cui calcolare la distanza retta alla destinazione (accesso utilizzando getDistanceMeters()). Se questo valore è omessa, la distanza in linea retta non verrà restituita. Deve essere specificato come coordinate di latitudine e longitudine:

    Per impostare il parametro dell'origine, chiama la funzione setOrigin() quando si crea l'oggetto FindAutocompletePredictionsRequest.

  • Codice regione

    Il codice regione utilizzato per formattare la risposta, inclusa la formattazione dell'indirizzo, specificato come ccTLD ("dominio di primo livello") a due caratteri. La maggior parte dei codici ccTLD è identica ai codici ISO 3166-1, con alcune degne di nota. Ad esempio, il ccTLD del Regno Unito è "uk" (.co.uk) mentre il codice ISO 3166-1 è "gb" (tecnicamente per persona giuridica del "Regno Unito di Gran Bretagna e Irlanda del Nord").

    Se specifichi un codice regione non valido, l'API restituisce un INVALID_ARGUMENT . Il parametro può influire sui risultati in base alla legge vigente.

    Per impostare il parametro del codice regione, chiama la funzione setRegionCode() quando si crea l'oggetto FindAutocompletePredictionsRequest.

  • Token di sessione

    I token di sessione sono stringhe generate dall'utente che monitorano Chiamate di completamento automatico (nuove) come "sessioni". Il completamento automatico usa i token di sessione le fasi di query e selezione di una ricerca con completamento automatico da parte di un utente in una sessione discreta per ai fini della fatturazione. La sessione inizia quando inizia a digitare una query e termina quando seleziona un luogo. Ogni sessione può avere più query, seguite dalla selezione di un luogo. Una volta che una sessione ha concluso, il token non è più valido. la tua app deve generare un nuovo token per ogni sessione. Ti consigliamo di utilizzare i token di sessione per tutti i tipi di pubblicità programmatica sessioni di completamento automatico (quando incorpori un frammento o avvii il completamento automatico utilizzando un intent, l'API se ne occupa automaticamente).

    Il completamento automatico utilizza un AutocompleteSessionToken per identificare ogni sessione. L'app deve passare un nuovo token di sessione iniziare ogni nuova sessione e poi trasmettere lo stesso token, insieme a un ID luogo, la chiamata successiva a fetchPlace() per recuperare Place Details per il luogo selezionato dall'utente.

    Per impostare il parametro del token di sessione, chiama la funzione setSessionToken() quando si crea l'oggetto FindAutocompletePredictionsRequest.

    Per ulteriori informazioni, vedi Token di sessione.

Esempi di completamento automatico (nuovi)

Usa limitazione di località e bias per località

Il completamento automatico (nuova) utilizza la differenziazione IP per impostazione predefinita controllare l'area di ricerca. Con la differenziazione per IP, l'API utilizza l'indirizzo IP del dispositivo per differenziare i risultati. Se vuoi, puoi utilizzare location restrizione o bias di località, ma non entrambi, per specificare un'area in cui eseguire la ricerca.

La limitazione di località specifica l'area in cui eseguire la ricerca. Risultati al di fuori dell'intervallo specificato non vengono restituite. L'esempio seguente utilizza la limitazione di località per limitare la richiesta a un limitazione di località circolare con un raggio di 5000 metri centrato su San Francisco:

Places.initializeWithNewPlacesApiEnabled(context, apiKey);
final List<Field> placeFields = getPlaceFields();

LatLng center = new LatLng(37.7749, -122.4194);
CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000);

final FindAutocompletePredictionsRequest autocompletePlacesRequest =
    FindAutocompletePredictionsRequest.builder()
            .setQuery("Amoeba")
            .setLocationRestriction(circle)
            .build());
placesClient.findAutocompletePredictions(autoCompletePlacesRequest)
    .addOnSuccessListener(
        (response) -> {
            List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions();
          }
    ).addOnFailureListener(
        exception -> {
            Log.e(TAG, "some exception happened" + exception.getMessage());
        })
    );

Con la parzialità per località, questa funge da bias, ovvero per i risultati intorno al è possibile restituire la posizione specificata, inclusi i risultati al di fuori del geografica specifica. L'esempio successivo modifica la richiesta precedente in modo da utilizzare la differenziazione per località:

Places.initializeWithNewPlacesApiEnabled(context, apiKey);
final List<Field> placeFields = getPlaceFields();

LatLng center = new LatLng(37.7749, -122.4194);
CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000);

final FindAutocompletePredictionsRequest autocompletePlacesRequest =
    FindAutocompletePredictionsRequest.builder()
            .setQuery("Amoeba")
            .setLocationBias(circle)
            .build());
placesClient.findAutocompletePredictions(autoCompletePlacesRequest)
    .addOnSuccessListener(
        (response) -> {
            List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions();
          }
    ).addOnFailureListener(
        exception -> {
            Log.e(TAG, "some exception happened" + exception.getMessage());
        })
    );

Utilizza tipi principali

Utilizza il parametro tipi principali per limitare i risultati di una devono essere di un certo tipo, come elencato nella Tabella A e Tabella B. Puoi specificare un array con un massimo di cinque valori. Se omesso, vengono restituiti tutti i tipi.

L'esempio seguente specifica una stringa di query "Calcio" e utilizza il modello type per limitare i risultati a strutture di tipo "sporting_goods_store":

Places.initializeWithNewPlacesApiEnabled(context, apiKey);
final List<Field> placeFields = getPlaceFields();

final List<Place.Field> primaryTypes = Arrays.asList("sporting_goods_store");

LatLng center = new LatLng(37.7749, -122.4194);
CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000);

final FindAutocompletePredictionsRequest autocompletePlacesRequest =
    FindAutocompletePredictionsRequest.builder()
            .setQuery("Soccer")
            .setIncludedPrimaryTypes(primaryTypes)
            .setLocationBias(circle)
            .build());
placesClient.findAutocompletePredictions(autoCompletePlacesRequest)
    .addOnSuccessListener(
        (response) -> {
            List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions();
          }
    ).addOnFailureListener(
        exception -> {
            Log.e(TAG, "some exception happened" + exception.getMessage());
        })
    );

Se ometti il parametro dei tipi primari, i risultati possono includere le strutture di un tipo che potrebbe non essere utile, come "athletic_field".

Usa origine

Quando includi il parametro origin nella richiesta, specificato come coordinate di latitudine e longitudine, l'API include la distanza in linea retta dall'origine alla destinazione nella risposta (accessibile utilizzando getDistanceMeters()). Questo esempio imposta l'origine in base al centro di San Francisco:

Places.initializeWithNewPlacesApiEnabled(context, apiKey);
final List<Field> placeFields = getPlaceFields();

LatLng center = new LatLng(37.7749, -122.4194);
CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000);

final FindAutocompletePredictionsRequest autocompletePlacesRequest =
    FindAutocompletePredictionsRequest.builder()
            .setQuery("Amoeba")
            .setOrigin(center)
            .setLocationRestriction(circle)
            .build());
placesClient.findAutocompletePredictions(autoCompletePlacesRequest)
    .addOnSuccessListener(
        (response) -> {
            List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions();
          }
    ).addOnFailureListener(
        exception -> {
            Log.e(TAG, "some exception happened" + exception.getMessage());
        })
    );

Attribuzioni

Puoi utilizzare il completamento automatico (Nuova) anche senza una mappa. Se mostri una mappa, deve essere una mappa di Google. Quando visualizzi previsioni da il servizio Autocomplete (nuovo) senza mappa, deve includere il logo di Google visualizzato in linea con i risultati o i campi di ricerca. Per per ulteriori informazioni, consulta la sezione Visualizzazione del logo Google e attribuzioni.