Automatische Vervollständigung (neu)

Plattform auswählen: Android iOS JavaScript Webdienst

Autocomplete (New) gibt Ortsvorschläge in Antwort auf eine Anfrage, die eine Textsuchzeichenfolge und geografische Grenzen enthält die den Suchbereich steuern. Automatische Vervollständigung kann übereinstimmen auf vollständige Wörter und Teilzeichenfolgen der Eingabe, die Auflösung von Ortsnamen, Adressen und Plus Codes. Ihre Anwendung kann Abfragen senden während der Nutzer tippt, um spontan Vorschläge für Orte und Suchanfragen bereitzustellen.

Beispiel: Sie rufen Autocomplete mit einer String, der die Teileingabe des Nutzers „Sicilian piz“ mit Suchbereich enthält in San Francisco, Kalifornien. Die Antwort enthält dann eine Liste der Orte, Vervollständigungen, die mit der Suchzeichenfolge und dem Suchbereich übereinstimmen, z. B. das Restaurant namens „Sicilian Pizza Kitchen“.

Die zurückgegebenen Ortsvorschläge sind so konzipiert, dass sie dem Nutzer angezeigt werden, um Ihnen zu helfen, den gewünschten Ort auswählen. Sie können Place Details (Neu) Anforderung, mehr zu erhalten Informationen zu allen zurückgegebenen Ortsvorschlägen

Autocomplete (New)-Anfragen

Ihre App kann eine Liste mit vervollständigten Ortsnamen und/oder der API für die automatische Vervollständigung, indem Sie PlacesClient.findAutocompletePredictions(), übergeben FindAutocompletePredictionsRequest -Objekt enthält. Im Beispiel unten sehen Sie einen vollständigen Aufruf 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());
        })
    );
<ph type="x-smartling-placeholder">

Autocomplete (New) – Antworten

Die API gibt eine FindAutocompletePredictionsResponse in einem Task Die FindAutocompletePredictionsResponse enthält eine Liste mit bis zu fünf AutocompletePrediction -Objekte, die vorhergesagte Orte darstellen. Die Liste ist möglicherweise leer, wenn der Abfrage und den Filterkriterien entspricht.

Für jeden vorgeschlagenen Ort können Sie die folgenden Methoden aufrufen, um einen Ort abzurufen Details:

  • getFullText(CharacterStyle) den vollständigen Text einer Ortsbeschreibung zurück. Dabei handelt es sich um eine Kombination Primär- und Sekundärtext. Beispiel: "Eiffelturm, Avenue Anatole France, Paris, France. Außerdem können Sie mit dieser Methode die Abschnitte der die der Suchanfrage einem Stil Ihrer Wahl entsprechen. CharacterStyle Der Parameter CharacterStyle ist optional. Setzen Sie es auf null, wenn Sie irgendwelche Hervorhebungen.
  • getPrimaryText(CharacterStyle) gibt den Haupttext zurück, der einen Ort beschreibt. Dies ist normalerweise der Name des Beispiele: Eiffel Tower und 123 Pitt Street
  • getSecondaryText(CharacterStyle) gibt den Nebentext einer Ortsbeschreibung zurück. Dies ist nützlich, Beispiel: als zweite Zeile, wenn automatisch vervollständigte Suchanfragen angezeigt werden. Beispiele: Avenue Anatole France, Paris, France und Sydney, New South Wales.
  • getPlaceId() gibt die Orts-ID des vorhergesagten Orts zurück. Eine Orts-ID ist eine Kennung zur eindeutigen Identifizierung eines Ortes, die Sie verwenden können, um die Place -Objekt zu erstellen. Weitere Informationen zu Orts-IDs finden Sie unter Autocomplete, siehe Place Details (Neu). Allgemein Informationen zu Orts-IDs finden Sie unter Orts-IDs Übersicht.
  • getTypes() gibt die Liste der mit diesem Ort verknüpften Ortstypen zurück.
  • getDistanceMeters() gibt die Entfernung zwischen diesem Ort und dem in der Anfrage angegebener Ursprung.

Erforderliche Parameter

  • Abfrage

    Die Textzeichenfolge, nach der gesucht werden soll. Geben Sie vollständige Wörter und Teilzeichenfolgen an, Ortsnamen, Adressen und Plus Codes. „Autocomplete (New)“-Dienst gibt mögliche Übereinstimmungen basierend auf diesem String zurück und ordnet die Ergebnisse basierend auf ihre wahrgenommene Relevanz.

    Rufen Sie zum Festlegen des Abfrageparameters die Methode setQuery() auf. beim Erstellen des FindAutocompletePredictionsRequest-Objekts.

Optionale Parameter

  • Primäre Typen

    Eine Liste mit bis zu fünf Typwerten aus Typen Tabelle A oder Tabelle B zum Filtern der in der Antwort zurückgegebenen Orte. Ein Ort muss mit einem der angegebenen Werte des primären Typs übereinstimmen, um in die Antwort aufgenommen zu werden.

    Ein Ort kann nur einen primären Typ vom Typ haben. Tabelle A oder Tabelle B verknüpft ist, damit nichts. Der primäre Typ kann beispielsweise "mexican_restaurant" oder "steak_house".

    In folgenden Fällen wird die Anfrage mit dem Fehler INVALID_REQUEST abgelehnt:

    • Es sind mehr als fünf Typen angegeben.
    • Alle nicht erkannten Typen wurden angegeben.

    Rufen Sie zum Festlegen des primären Typenparameters die Methode setTypesFilter() auf. beim Erstellen des FindAutocompletePredictionsRequest-Objekts.

  • Länder

    Nur Ergebnisse aus der Liste bestimmter Länder einschließen (eine Liste von bis zu 15 Ländern) ccTLD („Top-Level-Domain“) aus zwei Zeichen bestehen. Wenn keine Angabe gemacht wird, werden keine Einschränkungen auf die Antwort angewendet. Beispiel: zur Beschränkung der Regionen auf Deutschland und Frankreich:

    Wenn Sie sowohl locationRestriction als auch includedRegionCodes angeben, befinden sich die Ergebnisse im Schnittbereich der beiden Einstellungen.

    Rufen Sie zum Festlegen des Länderparameters die Methode setCountries() auf. beim Erstellen des FindAutocompletePredictionsRequest-Objekts.

  • Eingabe-Offset

    Der nullbasierte Unicode-Zeichen-Offset, der die Cursorposition in der Abfrage angibt. Die Cursorposition kann beeinflussen, welche Vorhersagen zurückgegeben werden. Wenn das Feld leer ist, wird standardmäßig das Länge der Abfrage.

    Rufen Sie zum Festlegen des Eingabe-Offset-Parameters die Methode setInputOffset() auf. beim Erstellen des FindAutocompletePredictionsRequest-Objekts.

  • Standortgewichtung oder Standortbeschränkung

    Sie können eine Standortgewichtung oder aber nicht beides, um den Suchbereich zu definieren. Stellen Sie sich eine Standortbeschränkung die Region, in der sich die Ergebnisse befinden müssen, und die Standortgewichtung wie Sie geben die Region an, in der sich die Ergebnisse befinden müssen. Der Hauptunterschied besteht darin, mit Standortverzerrung können trotzdem Ergebnisse außerhalb der angegebenen Region zurückgegeben werden.

    • Standortgewichtung

      Gibt das Gebiet an, in dem gesucht werden soll. Dieser Standort dient als Verzerrung und nicht als Einschränkung, sodass die Ergebnisse außerhalb des angegebenen Bereichs liegt, kann trotzdem zurückgegeben werden.

      Rufen Sie zum Festlegen des Parameters für die Standortgewichtung die setLocationBias() auf. beim Erstellen des FindAutocompletePredictionsRequest-Objekts.

    • Standortbeschränkung

      Gibt das Gebiet an, in dem gesucht werden soll. Ergebnisse außerhalb des angegebenen Bereichs werden nicht zurückgegeben.

      Rufen Sie zum Festlegen des Parameters für die Standortbeschränkung den Parameter setLocationRestriction() auf. beim Erstellen des FindAutocompletePredictionsRequest-Objekts.

    Geben Sie die Standortgewichtung oder Region für die Standortbeschränkung als rechteckigen Darstellungsbereich oder als Kreis.

    • Ein Kreis wird durch einen Mittelpunkt und einen Radius in Metern definiert. Der Radius muss zwischen 0,0 und 50000,0 (einschließlich). Der Standardwert ist 0,0. Zur Standortbeschränkung: müssen Sie den Radius auf einen Wert größer als 0,0 festlegen. Andernfalls gibt die Anfrage Keine Ergebnisse.

    • Ein Rechteck ist der Darstellungsbereich mit Breiten- und Längengraden, diagonal gegenüberliegende low- und high-Punkte. Ein Darstellungsbereich wird als geschlossene Region, d. h., sie umfasst ihre Begrenzung. Die Breitengradgrenzen muss zwischen -90 und einschließlich 90 Grad liegen und die Längengrenzen muss zwischen -180 und 180 Grad liegen:

      • Wenn low = high, besteht der Darstellungsbereich aus diesem einzelnen Punkt.
      • Wenn low.longitude > high.longitude, der Längengradbereich ist invertiert (der Darstellungsbereich überschreitet die 180-Grad-Längenlinie).
      • Wenn low.longitude = -180 Grad und high.longitude = 180 Grad ist, enthält der Darstellungsbereich alle Längengrade.
      • Wenn low.longitude = 180 Grad und high.longitude = -180 Grad, Längengradbereich ist leer.

      Sowohl low als auch high müssen ausgefüllt werden und das dargestellte Feld darf nicht leer sein. Ein leerer Darstellungsbereich führt zu einem Fehler.

  • Ursprung

    Der Ursprungspunkt, von dem aus die direkte Entfernung zum Ziel (Zugriff über getDistanceMeters()) Wenn dieser Wert gleich ausgelassen, wird keine geradlinige Entfernung zurückgegeben. Muss angegeben werden als Längen- und Breitengrade:

    Rufen Sie zum Festlegen des Parameters „origin“ den setOrigin() auf. beim Erstellen des FindAutocompletePredictionsRequest-Objekts.

  • Regionscode

    Der Regionscode, mit dem die Antwort formatiert wurde, einschließlich der Adressformatierung, angegeben als ccTLD („Top-Level-Domain“) aus zwei Zeichen bestehen. Die meisten ccTLD-Codes entsprechen den ISO 3166-1-Codes, mit einigen nennenswerten Ausnahmen. Die ccTLD des Vereinigten Königreichs lautet beispielsweise „uk“ (.co.uk), während der ISO 3166-1-Code „gb“ lautet (technisch für die Rechtspersönlichkeit des Vereinigten Königreichs Großbritannien und Nordirland“).

    Wenn Sie einen ungültigen Regionscode angeben, gibt die API ein INVALID_ARGUMENT zurück. Fehler. Der Parameter kann sich gemäß geltendem Recht auf Ergebnisse auswirken.

    Rufen Sie zum Festlegen des Regionscodeparameters die Methode setRegionCode() auf. beim Erstellen des FindAutocompletePredictionsRequest-Objekts.

  • Sitzungstoken

    Sitzungstokens sind vom Nutzer erstellte Strings, Autocomplete (New)-Aufrufe werden als „Sitzungen“ bezeichnet. Bei der Autocomplete-Funktion werden Sitzungstokens verwendet, Gruppieren Sie die Abfrage- und Auswahlphasen einer Nutzersuche mit automatischer Vervollständigung in einer separaten Sitzung Abrechnungszwecke. Die Sitzung beginnt, wenn die Der Nutzer beginnt mit der Eingabe einer Suchanfrage und endet, wenn er einen Ort auswählt. Jede Sitzung kann mehrere Abfragen enthalten, gefolgt von einer Ortsauswahl. Sobald eine Sitzung abgeschlossen ist, ist das Token nicht mehr gültig; Ihre Anwendung muss ein neues Token generieren. für jede Sitzung. Wir empfehlen, Sitzungstokens für alle programmatischen Sitzungen mit automatischer Vervollständigung (wenn Sie ein Fragment einbetten oder die automatische Vervollständigung mithilfe von Intent erstellt wird, erledigt die API dies automatisch.

    Für die automatische Vervollständigung wird ein AutocompleteSessionToken um jede Sitzung zu identifizieren. Ihre App sollte ein neues Sitzungstoken Beginn jeder neuen Sitzung. Übergeben Sie dann dasselbe Token zusammen mit einer Orts-ID beim nachfolgenden Aufruf von fetchPlace() , um Ortsdetails für den vom Nutzer ausgewählten Ort abzurufen.

    Rufen Sie zum Festlegen des Sitzungstoken-Parameters die Methode setSessionToken() auf. beim Erstellen des FindAutocompletePredictionsRequest-Objekts.

    Weitere Informationen finden Sie unter Sitzungstokens

Beispiele für Autocomplete (New)

Standortbeschränkung und Standortgewichtung verwenden

Bei „Autocomplete (New)“ wird standardmäßig die IP-Gewichtung verwendet. den Suchbereich anpassen. Bei der IP-Gewichtung verwendet die API die IP-Adresse der verwendet, um die Ergebnisse zu gewichten. Optional können Sie location Einschränkung oder Standortverzerrung, aber nicht , um ein zu durchsuchendes Gebiet anzugeben.

Durch die Standortbeschränkung wird das zu durchsuchende Gebiet angegeben. Ergebnisse außerhalb des angegebenen werden nicht zurückgegeben. Im folgenden Beispiel wird die Anfrage mit einer Standortbeschränkung auf einen kreisförmige Standortbeschränkung mit einem Radius von 5.000 Metern um 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());
        })
    );

Bei der Standortgewichtung dient der Standort als Verzerrung, d. h. Ergebnisse um den angegebene Position zurückgegeben werden kann, einschließlich Ergebnissen außerhalb des angegebenen Bereich. Im nächsten Beispiel wird die Standortgewichtung für die vorherige Anfrage geändert:

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());
        })
    );

Primäre Typen verwenden

Verwenden Sie den Parameter primary types, um die Ergebnisse eines bestimmten Anfrage eines bestimmten Typs sein, wie in der Tabelle A und Tabelle B. Sie können angeben, Array mit bis zu fünf Werten. Wenn keine Angabe gemacht wird, werden alle Typen zurückgegeben.

Im folgenden Beispiel wird der Abfragestring „Fußball“ angegeben. und verwendet die primäre types-Parameter, um Ergebnisse auf Einrichtungen des Typs zu beschränken "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());
        })
    );

Wenn Sie den Parameter „primary types“ weglassen, können die Ergebnisse Einrichtungen enthalten eines Typs, den Sie möglicherweise nicht haben möchten, wie z. B. "athletic_field".

Ursprung verwenden

Wenn Sie den Parameter origin in die Anfrage aufnehmen, der als Längen- und Breitengradkoordinaten angezeigt wird, enthält die API die Entfernung vom Start bis zum Ziel in der Antwort (Zugriff über getDistanceMeters()) In diesem Beispiel wird als Startpunkt das Zentrum von San Francisco festgelegt:

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());
        })
    );

Attribution

Sie können „Autocomplete (New)“ auch ohne Karte verwenden. Wenn aber es muss eine Google Maps-Karte sein. Wenn Sie Vorhersagen von „Autocomplete (New)“ ohne Karte verwenden, können Sie muss das Google-Logo enthalten, das im Suchfeld bzw. in den Suchergebnissen angezeigt wird. Für Weitere Informationen finden Sie unter Google-Logo und Quellenangaben.