Eine Textsuche gibt Informationen über eine Reihe von Orten zurück. basierend auf einem String. Beispiele: „Pizza in München“, „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 enthalten, z. B. Unternehmensnamen. Anfragen wie in den ersten beiden Beispielen könnten null Ergebnisse zurückgeben, es sei denn, Standort (wie Region, Standortbeschränkung oder Standortgewichtung) festgelegt ist.
„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. |
„Restaurantkette Berlin“ | Mehrere „Restaurantketten“ 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. |
Liste von Orten per Textsuche abrufen
Stellen Sie eine „Text Search“-Anfrage, indem Sie GMSPlacesClient
searchByTextWithRequest:
aufrufen.
übergeben
GMSPlaceSearchByTextRequest
-Objekt, das die Anfrageparameter und eine Callback-Methode des Typs definiert
GMSPlaceSearchByTextResultCallback
,
um die Antwort zu verarbeiten.
Das Objekt GMSPlaceSearchByTextRequest
gibt alle
Parameter required und optional
für die Anfrage aus. Zu den erforderlichen Parametern gehören:
- Die Liste der Felder, die im
GMSPlace
-Objekt zurückgegeben werden sollen, sowie die sogenannte Feldmaske, wie in denGMSPlaceProperty
Wenn Sie nicht mindestens ein Feld in der Feldliste angeben oder der Feldliste hinzu, gibt der Aufruf einen Fehler zurück. - Die Textabfrage.
In dieser Beispielanfrage für eine Textsuche wird angegeben, dass die Antwort-GMSPlace
-Objekte
enthalten den Ortsnamen und die Orts-ID für jedes GMSPlace
-Objekt in der Suche
Ergebnisse. Außerdem wird die Antwort so gefiltert, dass nur Orte des Typs zurückgegeben werden.
„Restaurant“.
Swift
// Create the GMSPlaceSearchByTextRequest object. let myProperties = [GMSPlaceProperty.name, GMSPlaceProperty.placeID].map {$0.rawValue} let request = GMSPlaceSearchByTextRequest(textQuery:"pizza in New York", placeProperties:myProperties) request.isOpenNow = true request.includedType = "restaurant" request.maxResultCount = 5 request.minRating = 3.5 request.rankPreference = .distance request.isStrictTypeFiltering = true request.locationBias = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(40.7, -74.0), 200.0) // Array to hold the places in the response var placeResults: [GMSPlace] = [] let callback: GMSPlaceSearchByTextResultCallback = { [weak self] results, error in guard let self, error == nil else { if let error { print(error.localizedDescription) } return } guard let results = results as? [GMSPlace] else { return } placeResults = results } GMSPlacesClient.shared().searchByText(with: request, callback: callback)
Objective-C
// Create the GMSPlaceSearchByTextRequest object. GMSPlaceSearchByTextRequest *request = [[GMSPlaceSearchByTextRequest alloc] initWithTextQuery:@"pizza in New York" placeProperties:@[GMSPlacePropertyName, GMSPlacePropertyPlaceID]]; request.isOpenNow = YES; request.includedType = @"restaurant"; request.maxResultCount = 5; request.minRating = 3.5; request.rankPreference = GMSPlaceSearchByTextRankPreferenceDistance; request.isStrictTypeFiltering = YES; request.priceLevels = @[ @(kGMSPlacesPriceLevelFree), @(kGMSPlacesPriceLevelCheap) ]; request.locationBias = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(40.7, -74.0), 200.0); // Array to hold the places in the response _placeResults = [NSArray array]; // Create the GMSPlaceSearchByTextRequest object. [_placesClient searchByTextWithRequest:request callback:^(NSArray<GMSPlace *> *_Nullable placeResults, NSError * _Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } else { if (placeResults.count > 0) { // Get list of places. _placeResults = placeResults; } } } ];
GooglePlacesSwift
let restriction = RectangularLocationRestriction( northEast: CLLocationCoordinate2D(latitude: 20, longitude: 30), southWest: CLLocationCoordinate2D(latitude: 40, longitude: 50) ) let searchByTextRequest = SearchByTextRequest( textQuery: "pizza in New York", placeProperties: [ .name, .placeID ], locationRestriction: restriction, includedType: .restaurant, maxResultCount: 5, minRating: 3.5, priceLevels: [ .moderate, .inexpensive ], isStrictTypeFiltering: true ) switch await placesClient.searchByText(with: searchByTextRequest) { case .success(let places): // Handle places case .failure(let placesError): // Handle error }
Text Search-Antworten
Die Text Search API gibt ein Array mit Übereinstimmungen im
Form von
GMSPlace
-Objekte mit einem GMSPlace
-Objekt pro übereinstimmendem Ort.
Zusammen mit den Datenfeldern hat das GMSPlace
-Objekt im Bereich
Antwort enthält die folgenden Member-Funktionen:
-
isOpen
berechnet, ob ein Ort zur angegebenen Zeit geöffnet ist. isOpenAtDate
berechnet, ob ein Ort an einem bestimmten Datum geöffnet ist.
Erforderliche Parameter
Verwenden Sie das Objekt GMSPlaceSearchByTextRequest
, um die erforderliche
-Parameter für die Suche.
-
Liste der Felder
Geben Sie an, welche Eigenschaften von Ortsdaten zurückgegeben werden sollen. Übergeben Sie eine Liste mit
GMSPlace
Eigenschaften, die die Datenfelder angeben, die zurückgegeben werden sollen. Wenn Sie das Feld -Maske enthält, gibt die Anfrage einen Fehler zurück.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:
GMSPlacePropertyPlaceID
,GMSPlacePropertyName
Die folgenden Felder lösen die SKU „Text Search (Basic)“ aus:
GMSPlacePropertyAddressComponents
,GMSPlacePropertyBusinessStatus
,GMSPlacePropertyFormattedAddress
,GMSPlacePropertyIconBackgroundColor
,GMSPlacePropertyIconImageURL
,GMSPlacePropertyCoordinate
,GMSPlacePropertyPhotos
,GMSPlacePropertyPlusCode
,GMSPlacePropertyTypes
,GMSPlacePropertyUTCOffsetMinutes
,GMSPlacePropertyViewport
,GMSPlacePropertyWheelchairAccessibleEntrance
Die folgenden Felder lösen die SKU „Text Search (Advanced)“ aus:
GMSPlacePropertyCurrentOpeningHours
,GMSPlacePropertySecondaryOpeningHours
,GMSPlacePropertyPhoneNumber
,GMSPlacePropertyPriceLevel
,GMSPlacePropertyRating
,GMSPlacePropertyOpeningHours
,GMSPlacePropertyUserRatingsTotal
,GMSPlacePropertyWebsite
Die folgenden Felder lösen die SKU „Text Search (Preferred)“ aus:
GMSPlacePropertyCurbsidePickup
,GMSPlacePropertyDelivery
,GMSPlacePropertyDineIn
,GMSPlacePropertyEditorialSummary
,GMSPlacePropertyReservable
,GMSPlacePropertyReviews
,GMSPlacePropertyServesBeer
,GMSPlacePropertyServesBreakfast
,GMSPlacePropertyServesBrunch
,GMSPlacePropertyServesDinner
,GMSPlacePropertyServesLunch
,GMSPlacePropertyServesVegetarianFood
,GMSPlacePropertyServesWine
,GMSPlacePropertyTakeout
-
textQuery
Die Textzeichenfolge, nach der gesucht werden soll, z. B. "Restaurant", "Hauptbahnhof 123" Straße" oder "beste Sehenswürdigkeit in San Francisco".
Optionale Parameter
Verwenden Sie das Objekt GMSPlaceSearchByTextRequest
, um die optionale
-Parameter für die Suche.
includedType
Beschränkt die Ergebnisse auf Orte, die dem angegebenen Typ entsprechen, der durch Tabelle A. Es kann nur ein Typ angegeben werden. Beispiel:
request.includedType = "bar"
request.includedType = "pharmacy"
isOpenNow
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.isStrictTypeFiltering
Wird mit dem Parameter
includeType
verwendet. Wenn festgelegt auftrue
, nur Orte, die den angegebenen Typen entsprechen, die durchincludeType
zurückgegeben. Ist die Richtlinie auf „false“ gesetzt, kann die Antwort Orte enthalten, die nicht übereinstimmen. den angegebenen Typen.locationBias
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
locationRestriction
oderlocationBias
angeben. aber nicht beides. Stellen Sie sichlocationRestriction
vor, Region, in der sich die Ergebnisse befinden müssen, undlocationBias
als 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. Der Standardradius ist 0,0. Beispiel:
request.locationBias = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(40.7, -74.0), 200.0)
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. 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 Der Breitengradbereich ist leer.
- Wenn
locationRestriction
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 von
locationBias
finden Sie weitere Informationen zum Definieren des Darstellungsbereichs.Sie können
locationRestriction
oderlocationBias
angeben. aber nicht beides. Stellen Sie sichlocationRestriction
vor, Region, in der sich die Ergebnisse befinden müssen, undlocationBias
als Sie geben die Region an, in der sich die Ergebnisse befinden müssen, aber auch außerhalb liegen können in der Umgebung.-
maxResultCount
Gibt die maximale Anzahl der Ortsergebnisse an, die zurückgegeben werden sollen. Muss zwischen folgenden Werten liegen: 1 und 20 (Standardeinstellung) einschließlich.
minRating
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 in Schritten von 0,5. Beispiel: 0, 0,5, 1,0, ... , 5,0 (jeweils einschließlich). Mögliche Werte: auf 0,5 aufgerundet. Beispiel: Bei einem Wert von 0, 6 werden alle mit einer Bewertung unter 1,0.
-
priceLevels
Sie können die Suche auf Orte beschränken, die mit bestimmten Preisstufen gekennzeichnet sind. Standardmäßig werden alle Preisstufen ausgewählt.
Geben Sie ein Array mit einem oder mehreren Werten an, die durch
PriceLevel
Beispiel:
request.priceLevels = [GMSPlacesPriceLevel.moderate.rawValue, GMSPlacesPriceLevel.cheap.rawValue]
rankPreference
Gibt an, wie die Ergebnisse in der Antwort basierend auf dem Typ Suchanfrage:
- Für eine kategoriale Suchanfrage wie „Restaurants in New York City“:
.relevance
(Ergebnisse nach Suchrelevanz sortieren) ist die Standardeinstellung. Sie könnenrankPreference
auf.relevance
setzen oder.distance
(Ergebnisse nach Entfernung sortieren). - Für eine nicht kategoriale Suchanfrage wie „Mountain View, CA“ empfehlen wir
für die Sie keinen Wert für „
rankPreference
“ festlegen.
- Für eine kategoriale Suchanfrage wie „Restaurants in New York City“:
regionCode
Der Regionscode, der zum Formatieren der Antwort verwendet wird, angegeben als 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.
Zuordnungen in der App anzeigen
Wenn Ihre App Informationen anzeigt, die von
GMSPlacesClient
,
wie Fotos und Rezensionen, muss die App auch die erforderlichen Quellenangaben enthalten.
Beispielsweise kann die Eigenschaft reviews
des Objekts GMSPlacesClient
enthält ein Array mit bis zu fünf
GMSPlaceReview
Objekte. Jedes GMSPlaceReview
-Objekt kann Attributionen und Autorenangaben enthalten.
Wenn Sie die Rezension in Ihrer App präsentieren, müssen auch Namensnennungen und Autoren angezeigt werden.
Namensnennung.
Weitere Informationen finden Sie in der Dokumentation zu Quellenangaben.