Mit „Text Search (New)“ erhalten Sie Informationen zu Orte basierend auf einem String, z. B. „pizza in new york“ oder „Schuhgeschäfte“ in der Nähe von Ottawa“ oder "Hauptstraße 123". Der Dienst antwortet mit einer Liste von Orten die dem Textstring und der festgelegten Standortgewichtung entsprechen.
Dieser Dienst ist besonders nützlich, um mehrdeutige Adressen Abfragen in einem automatisierten System und Nicht-Adresskomponenten des Strings können sowohl mit Unternehmen als auch Adressen. Beispiele für mehrdeutige Adressabfragen sind schlecht formatierte Adressen oder Anfragen, die Nicht-Adresskomponenten wie etwa Unternehmensnamen enthalten. Anfragen die ersten beiden Beispiele könnten keine Ergebnisse zurückgeben, es sei denn, es handelt sich um einen Standort – wie Region, Standortbeschränkung oder Standortgewichtung – festgelegt ist.
„Text Search (New)“ funktioniert ähnlich wie Nearby Search (Neu). Die wichtigsten der Unterschied zwischen „Text Search (New)“ können Sie eine beliebige Suchzeichenfolge angeben, während für Nearby Search (New) ein in dem Sie suchen möchten.
„Musterstraße 10, 10117 Berlin“ oder "Hauptstraße 123, Deutschland" | Mehrere "High Streets" im Vereinigten Königreich: "Main Street" in den USA. Die Abfrage gibt nur dann die gewünschten Ergebnisse zurück, wenn eine Standortbeschränkung festgelegt ist: festgelegt. |
„ChainRestaurant New York“ | Mehrere „ChainRestaurant“ Standorte in New York keine Adresse oder sogar den Straßennamen. |
„10 High Street, Escher UK“ oder "Hauptstraße 123, München" | Nur eine "Hauptstraße" in der britischen Stadt Escher nur eine "Hauptstraße" in Pleasanton, Kalifornien, USA. |
„UniqueRestaurantName New York“ | Nur eine Einrichtung mit diesem Namen in New York keine Adresse unterscheiden können. |
„pizza restaurants in berlin“ | Diese Abfrage enthält eine Standortbeschränkung und "Pizzerien". ist einen klar definierten Ortstyp haben. Es werden mehrere Ergebnisse zurückgegeben. |
„+49 514 670 8700“ | Diese Abfrage enthält eine Telefonnummer. Es werden mehrere Ergebnisse für Orte, die mit dieser Telefonnummer verknüpft sind. |
Text Search-Anfragen
Eine „Text Search“-Anfrage hat das folgende Format:
// Specify the list of fields to return. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME); // Define latitude and longitude coordinates of the search area. LatLng southWest = new LatLng(37.38816277477739, -122.08813770258874); LatLng northEast = new LatLng(37.39580487866437, -122.07702325966572); // Use the builder to create a SearchByTextRequest object. final SearchByTextRequest searchByTextRequest = SearchByTextRequest.builder("Spicy Vegetarian Food", placeFields) .setMaxResultCount(10) .setLocationRestriction(RectangularBounds.newInstance(southWest, northEast)).build(); // Call PlacesClient.searchByText() to perform the search. // Define a response handler to process the returned List of Place objects. placesClient.searchByText(searchByTextRequest) .addOnSuccessListener(response -> { List<Place> places = response.getPlaces(); });
In diesem Beispiel führen Sie folgende Schritte aus:
Lege die Feldliste so fest, dass sie nur
Place.Field.ID
undPlace.Field.NAME
enthält. Das bedeutet, dass diePlace
-Objekte in der Antwort, die den jeweiligen Abgleich darstellen, Ort nur diese beiden Felder enthalten.SearchByTextRequest.Builder
verwenden zum Erstellen einesSearchByTextRequest
, das die Suche definiert.Setzen Sie den Textabfragestring auf „Scharfes vegetarisches Essen“.
Legen Sie die maximale Anzahl der Ergebnisorte auf 10 fest. Die Standard- und die Maximal 20.
Beschränken Sie den Suchbereich auf das durch Breitengrad und Breitengrad definierte Rechteck. Längengradkoordinaten. Es werden keine Übereinstimmungen außerhalb dieses Bereichs zurückgegeben.
Fügen Sie einen
OnSuccessListener
hinzu und rufen Sie die übereinstimmenden Orte aus derSearchByTextResponse
-Objekt enthält.
Text Search-Antworten
Die
SearchByTextResponse
stellt die Antwort auf eine Suchanfrage dar. Ein SearchByTextResponse
Objekt enthält:
Eine Liste von
Place
-Objekten, die alle übereinstimmenden Orte darstellen, mit einemPlace
Objekt pro übereinstimmendem Ort.Jedes
Place
-Objekt enthält nur die in der Feldliste definierten Felder die in der Anfrage übergeben wurden.
In der Anfrage haben Sie beispielsweise eine Feldliste so definiert:
// Specify the list of fields to return. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);
Diese Feldliste bedeutet, dass jedes Place
-Objekt in der Antwort nur das Objekt
Orts-ID und Name jedes übereinstimmenden Ortes. Sie können dann den Place.getId()
verwenden
und Place.getName()
, um auf diese Felder in jedem Place
-Objekt zuzugreifen.
Weitere Beispiele für den Zugriff auf Daten in einem Place
-Objekt finden Sie unter Auf Ort zugreifen
Objektdatenfelder
Erforderliche Parameter
Die erforderlichen Parameter für
SearchByTextRequest
sind:
-
Liste der Felder
Geben Sie an, welche Felder mit Ortsdaten zurückgegeben werden sollen. Übergeben Sie eine Liste mit
Place.Field
-Werte, die die Datenfelder angeben, die zurückgegeben werden sollen. Es gibt keine Standardliste zurückgegebene Felder in der Antwort.Feldlisten eignen sich gut, um sicherzustellen, um unnötige Daten zu verarbeiten, um unnötige Verarbeitungszeiten zu vermeiden Abrechnungsgebühren.
Geben Sie eines oder mehrere der folgenden Felder an:
Die folgenden Felder lösen die SKU „Text Search (ID Only)“ aus:
Place.Field.ID
,Place.Field.NAME
Die folgenden Felder lösen die SKU „Text Search (Basic)“ aus:
Place.Field.ADDRESS_COMPONENTS
,Place.Field.BUSINESS_STATUS
,Place.Field.ADDRESS
,Place.Field.ICON_BACKGROUND_COLOR
,Place.Field.ICON_URL
,Place.Field.LAT_LNG
,Place.Field.PHOTO_METADATAS
,Place.Field.PLUS_CODE
,Place.Field.TYPES
,Place.Field.UTC_OFFSET
,Place.Field.VIEWPORT
,Place.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE
Die folgenden Felder lösen die SKU „Text Search (Advanced)“ aus:
Place.Field.CURRENT_OPENING_HOURS
,Place.Field.SECONDARY_OPENING_HOURS
,Place.Field.PHONE_NUMBER
,Place.Field.PRICE_LEVEL
,Place.Field.RATING
,Place.Field.OPENING_HOURS
,Place.Field.USER_RATINGS_TOTAL
,Place.Field.WEBSITE_URI
Die folgenden Felder lösen die SKU „Text Search (Preferred)“ aus:
Place.Field.CURBSIDE_PICKUP
,Place.Field.DELIVERY
,Place.Field.DINE_IN
,Place.Field.EDITORIAL_SUMMARY
,Place.Field.RESERVABLE
,Place.Field.REVIEWS
,Place.Field.SERVES_BEER
,Place.Field.SERVES_BREAKFAST
,Place.Field.SERVES_BRUNCH
,Place.Field.SERVES_DINNER
,Place.Field.SERVES_LUNCH
,Place.Field.SERVES_VEGETARIAN_FOOD
,Place.Field.SERVES_WINE
,Place.Field.TAKEOUT
Um den Parameter für die Feldliste festzulegen, rufen Sie beim Erstellen des
SearchByTextRequest
-Objekts die MethodesetPlaceFields()
auf. -
Textabfrage
Die Textzeichenfolge, nach der gesucht werden soll, z. B. "restaurant", „Hauptstraße 123“ oder „beste Sehenswürdigkeit in San Francisco“. Die API gibt mögliche Übereinstimmungen basierend auf diesem String zurück und ordnet die Ergebnisse zu ihrer wahrgenommenen Relevanz.
Um den Textabfrageparameter festzulegen, rufen Sie beim Erstellen des
SearchByTextRequest
-Objekts die MethodesetTextQuery()
auf.
Optionale Parameter
Verwenden Sie die Methode
SearchByTextRequest
-Objekt, um die optionalen Parameter für Ihre Anfrage anzugeben.
Enthaltener Typ
Beschränkt die Ergebnisse auf Orte, die dem angegebenen Typ entsprechen, der durch Tabelle A. Es kann nur ein Typ angegeben werden. Beispiel:
setIncludedType("bar")
setIncludedType("pharmacy")
Zum Festlegen des enthaltenen Typparameters rufen Sie beim Erstellen des
SearchByTextRequest
-Objekts die MethodesetIncludedType()
auf.Standortgewichtung
Gibt das Gebiet an, in dem gesucht werden soll. Dieser Standort dient als Verzerrung, können Ergebnisse im Umkreis des angegebenen Standorts zurückgegeben werden, einschließlich der Ergebnisse außerhalb des angegebenen Bereichs liegt.
Sie können Standortbeschränkung oder Standortgewichtung angeben, aber nicht beides. Stellen Sie sich eine Standortbeschränkung vor, 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, aber auch außerhalb liegen können in der Umgebung.
Legen Sie den Bereich als rechteckigen Darstellungsbereich oder als Kreis fest.
Ein Kreis wird durch einen Mittelpunkt und einen Radius in Metern definiert. Der Radius muss zwischen 0,0 und 50000,0 (einschließlich) liegen. Beispiel:
// Define latitude and longitude coordinates of the center of the search area. LatLng searchCenter = new LatLng(37.38816277477739, -122.08813770258874); // Use the builder to create a SearchByTextRequest object. // Set the radius of the search area to 500.0 meters. final SearchByTextRequest searchByTextRequest = SearchByTextRequest.builder("Spicy Vegetarian Food", placeFields) .setMaxResultCount(10) .setLocationBias(CircularBounds.newInstance(searchCenter, 500.0)).build();
Ein Rechteck ist der Darstellungsbereich mit Breiten- und Längengraden, diagonal gegenüberliegende niedrige und hohe Punkte. Der Tiefstpunkt markiert den Südwesten Ecke des Rechtecks und der höchste Punkt stellt den Nordosten dar. des Rechtecks.
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 folgenden Elementen: einen einzigen Punkt. - Wenn
low.longitude
>high.longitude
, der wird der Längengradbereich invertiert (der Darstellungsbereich überschreitet den 180-Grad-Winkel Längengrad). - Wenn
low.longitude
= -180 Grad undhigh.longitude
= 180 Grad, der Darstellungsbereich umfasst alle Längenangaben. - Wenn
low.longitude
= 180 Grad undhigh.longitude
= -180 Grad, der Längengradbereich ist leer. - Wenn
low.latitude
>high.latitude
, der Breitengradbereich ist leer.
Die Werte für „Niedrig“ und „Hoch“ müssen ausgefüllt werden. Das dargestellte Feld darf nicht leer. Ein leerer Darstellungsbereich führt zu einem Fehler.
Bei einem rechteckigen Darstellungsbereich Text Search-Anfragen
Um den Parameter für die Standortgewichtung festzulegen, rufen Sie beim Erstellen des
SearchByTextRequest
-Objekts die MethodesetLocationBias()
auf.- Wenn
Standortbeschränkung
Gibt das Gebiet an, in dem gesucht werden soll. Ergebnisse außerhalb des angegebenen Bereichs werden nicht zurückgegeben. Legen Sie den Bereich als rechteckigen Darstellungsbereich fest. Beschreibung ansehen der Standortverzerrung finden Sie weitere Informationen zum Definieren des Darstellungsbereichs.
Sie können Standortbeschränkung oder Standortgewichtung angeben, aber nicht beides. Stellen Sie sich eine Standortbeschränkung vor, Region, in der sich die Ergebnisse befinden müssen, und die Standortgewichtung wie Sie geben die Region an, in der sich die Ergebnisse in der Nähe befinden müssen, aber auch außerhalb liegen können in der Umgebung.
Um den Parameter für die Standortbeschränkung festzulegen, rufen Sie beim Erstellen des
SearchByTextRequest
-Objekts die MethodesetLocationRestriction()
auf.-
Maximale Anzahl von Ergebnissen
Gibt die maximale Anzahl der Ortsergebnisse an, die zurückgegeben werden sollen. Muss zwischen folgenden Werten liegen: 1 und 20 (Standardeinstellung) einschließlich.
Um den Parameter für die maximale Ergebnisanzahl festzulegen, rufen Sie beim Erstellen des
SearchByTextRequest
-Objekts die MethodesetMaxResultCount()
auf. Mindestbewertung
Beschränkt die Ergebnisse auf Nutzer, deren durchschnittliche Nutzerbewertung höher ist als oder diesem Limit entsprechen. Die Werte müssen zwischen 0,0 und 5,0 (einschließlich) in von 0,5 zu erhöhen. Beispiel: 0, 0,5, 1,0, ... , 5,0 (jeweils einschließlich). Mögliche Werte: auf 0,5 aufgerundet. Beispielsweise eliminiert ein Wert von 0, 6 alle mit einer Bewertung unter 1,0.
Um den Parameter für die Mindestbewertung festzulegen, rufen Sie beim Erstellen des
SearchByTextRequest
-Objekts die MethodesetMinRating()
auf.Jetzt geöffnet
Wenn
true
, werden nur die Orte zurückgegeben, die geöffnet sind. wenn die Abfrage gesendet wird. Wennfalse
, alle Unternehmen zurückgeben unabhängig vom Öffnungsstatus. Orte, für die in der Google Places-Datenbank keine Öffnungszeiten angegeben sind, sind wird zurückgegeben, wenn Sie diesen Parameter auffalse
festlegen.Zum Festlegen des Parameters „Jetzt öffnen“ rufen Sie beim Erstellen des
SearchByTextRequest
-Objekts die MethodesetOpenNow()
auf.-
Preisstufen
Standardmäßig enthalten die Ergebnisse Orte, an denen Dienstleistungen aller Preisstufen angeboten werden. Einschränkung nur Orte mit bestimmten Preisstufen enthalten, können Sie eine Liste von ganzzahligen Werten, die den Preisstufen für die Orte entsprechen, die Sie zurückgeben möchten:
1
: Der Ort bietet günstige Dienstleistungen.2
: Der Ort bietet Dienste zu moderaten Preisen an.3
: Ort bietet teure Dienstleistungen an.4
: Der Ort bietet sehr teure Dienstleistungen an.
Wenn Sie den Parameter für die Preisstufen festlegen möchten, rufen Sie beim Erstellen des
SearchByTextRequest
-Objekts die MethodesetPriceLevels()
auf. Rangfolgeneinstellung
Gibt an, wie die Ergebnisse in der Antwort basierend auf dem Typ Suchanfrage:
- Für eine kategoriale Suchanfrage wie „Restaurants in New York City“:
SearchByTextRequest.RankPreference.RELEVANCE
(Ergebnisse nach Suchrelevanz sortieren) ist die Standardeinstellung. Sie können die Rangeinstellung aufSearchByTextRequest.RankPreference.RELEVANCE
oderSearchByTextRequest.RankPreference.DISTANCE
(Ergebnisse nach Entfernung sortieren). - Für eine nicht kategoriale Suchanfrage wie „Mountain View, CA“ empfehlen wir Sie den Parameter für die Rangeinstellung nicht konfigurieren.
Wenn Sie den Parameter für die Rangeinstellung festlegen möchten, rufen Sie beim Erstellen des
SearchByTextRequest
-Objekts die MethodesetRankPreference()
auf.- Für eine kategoriale Suchanfrage wie „Restaurants in New York City“:
Regionscode
Der Regionscode, der zum Formatieren der Antwort verwendet wird, angegeben als <ph type="x-smartling-placeholder"></ph> zweistelligen CLDR-Code eingeben. Dieser Parameter kann auch eine Verzerrung in den Suchergebnissen. Es gibt keinen Standardwert.
Wenn der Ländername des Adressfelds in der Antwort mit der Regionalcode wird der Ländercode bei der Adresse weggelassen.
Die meisten CLDR-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“). Der Parameter kann sich gemäß geltendem Recht auf Ergebnisse auswirken.
Wenn Sie den Parameter für den Regionscode festlegen möchten, rufen Sie beim Erstellen des
SearchByTextRequest
-Objekts die MethodesetRegionCode()
auf.Strikte Filterung
Wird mit dem Parameter „Einschließen“-Typ verwendet. Wenn festgelegt auf
true
, nur Orte, die den angegebenen Typen entsprechen, die durch include-Typ zurückgegeben. Wenn die Standardeinstellungfalse
ist, kann die Antwort Orte enthalten, nicht mit den angegebenen Typen übereinstimmen.Um den strikten Typfilterungsparameter festzulegen, rufen Sie beim Erstellen des
SearchByTextRequest
-Objekts die MethodesetStrictTypeFiltering()
auf.