Eine Textsuche gibt Informationen über eine Reihe von Orten zurück. basierend auf einem String. Beispiel: „Pizza in München“, „Schuhgeschäfte in der Nähe von Hamburg“ oder „Hauptstraße 123“. Der Dienst gibt eine Liste mit Orten zurück, die dem Textstring und ggf. der festgelegten Standortgewichtung entsprechen.
Der Dienst ist besonders nützlich, um mehrdeutige Adressabfragen in einem automatisierten System durchzuführen. Nicht-Adresskomponenten des Strings können sowohl mit Unternehmen als auch mit Adressen übereinstimmen. 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. |
„Kettenrestaurant New York“ | Mehrere „Restaurantketten“ Standorte in New York keine Adresse oder sogar den Straßennamen. |
„10 High Street, Escher UK“ oder "Hauptstraße 123, München" | Es gibt nur eine „High Street“ in der britischen Stadt Escher und nur eine „Main Street“ in der US-amerikanischen Stadt Pleasanton, Kalifornien. |
„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 die Textsuche wird angegeben, dass die GMSPlace
-Objekte in der Antwort den Ortsnamen und die Orts-ID für jedes GMSPlace
-Objekt in den Suchergebnissen enthalten sollen. Außerdem wird die Antwort so gefiltert, dass nur Orte vom Typ „Restaurant“ zurückgegeben werden.
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; } } } ];
Places Swift SDK for iOS (Vorabversion)
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.
Status „Offen“ abrufen
Das GMSPlacesClient
-Objekt enthält eine Mitgliederfunktion namens isOpenWithRequest
(isOpenRequest
in Swift und isPlaceOpenRequest
in GooglePlacesSwift), die eine Antwort zurückgibt, die basierend auf der im Aufruf angegebenen Zeit angibt, ob der Ort derzeit geöffnet ist.
Diese Methode verwendet ein einzelnes Argument vom Typ GMSPlaceIsOpenWithRequest
, das Folgendes enthält:
- Ein
GMSPlace
-Objekt oder ein String, der eine Orts-ID angibt. Weitere Informationen zum Erstellen des „Place“-Objekts mit den erforderlichen Feldern finden Sie unter Place Details.
- Ein optionales
NSDate
-Objekt (Obj-C) oderDate
-Objekt (Swift), das die Uhrzeit angibt, die Sie prüfen möchten. Wenn keine Uhrzeit angegeben ist, wird die Standardeinstellung „jetzt“ verwendet. - Eine
GMSPlaceOpenStatusResponseCallback
-Methode zum Verarbeiten der Antwort. >
Für die Methode GMSPlaceIsOpenWithRequest
müssen die folgenden Felder im Objekt GMSPlace
festgelegt werden:
GMSPlacePropertyUTCOffsetMinutes
GMSPlacePropertyBusinessStatus
GMSPlacePropertyOpeningHours
GMSPlacePropertyCurrentOpeningHours
GMSPlacePropertySecondaryOpeningHours
Wenn diese Felder nicht im Ortsobjekt enthalten sind oder Sie eine Orts-ID übergeben, werden sie mithilfe von GMSPlacesClient GMSFetchPlaceRequest:
abgerufen.
isOpenWithRequest
Antwort
isOpenWithRequest
gibt ein GMSPlaceIsOpenResponse
-Objekt mit einem booleschen Wert mit dem Namen status
zurück. Dieser gibt an, ob das Unternehmen geöffnet oder geschlossen ist oder ob der Status unbekannt ist.
Sprache | Wert, falls offen | Wert bei Schließung | Wert, falls Status unbekannt |
---|---|---|---|
Swift | .open |
.closed |
.unknown |
Objective-C | GMSPlaceOpenStatusOpen |
GMSPlaceOpenStatusClosed |
GMSPlaceOpenStatusUnknown |
GooglePlacesSwift (Vorabversion) | true |
false |
nil |
Abrechnung für isOpenWithRequest
- Die Felder
GMSPlacePropertyUTCOffsetMinutes
undGMSPlacePropertyBusinessStatus
werden unter der SKU „Basic Data“ abgerechnet. Der Rest der Öffnungszeiten wird unter der SKU Place Details (Advanced) berechnet. - Wenn Ihr
GMSPlace
-Objekt bereits diese Felder aus einer früheren Anfrage enthält, werden Ihnen keine zusätzlichen Kosten in Rechnung gestellt.
Beispiel: GMSPlaceIsOpenWithRequest
-Anfrage stellen
Das folgende Beispiel zeigt, wie ein GMSPlaceIsOpenWithRequest
in einem vorhandenen GMSPlace
-Objekt initialisiert wird.
Swift
let isOpenRequest = GMSPlaceIsOpenRequest(place: place, date: nil) GMSPlacesClient.shared().isOpen(with: isOpenRequest) { response, error in if let error = error { // Handle Error } switch response.status { case .open: // Handle open case .closed: // Handle closed case .unknown: // Handle unknown } }
Objective-C
GMSPlaceIsOpenRequest *isOpenRequest = [[GMSPlaceIsOpenRequest alloc] initWithPlace:place date:nil]; [[GMSPlacesClient sharedClient] isOpenWithRequest:isOpenRequest callback:^(GMSPlaceIsOpenResponse response, NSError *_Nullable error) { if (error) { // Handle error } switch (response.status) { case GMSPlaceOpenStatusOpen: // Handle open case GMSPlaceOpenStatusClosed: // Handle closed case GMSPlaceOpenStatusUnknown: // Handle unknown } }];
GooglePlacesSwift
let isOpenRequest = IsPlaceOpenRequest(place: place) switch await placesClient.isPlaceOpen(with: isOpenRequest) { case .success(let isOpenResponse): switch isOpenResponse.status { case true: // Handle open case false: // Handle closed case nil: // Handle unknown case .failure(let placesError): // Handle error }
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 auslassen, -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
Bei
true
werden nur Orte zurückgegeben, die zum Zeitpunkt des Sendens der Anfrage geöffnet haben. 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 „true
“ festgelegt ist, werden nur Orte zurückgegeben, die den mit „includeType
“ angegebenen Typen entsprechen. 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 ist verzerrt, d. h., 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 den Mittelpunkt und den 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 ein Darstellungsbereich mit Breiten- und Längengrad, der durch zwei 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 müssen zwischen -90 und 90 Grad liegen und die Längengradgrenzen zwischen -180 und 180 Grad:
- 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 ist, ist der Längengradbereich leer. - Wenn
low.latitude
>high.latitude
, der Der Breitengradbereich ist leer.
- Wenn
locationRestriction
Gibt einen Bereich für die Suche an. 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. MitlocationRestriction
wird die Region angegeben, in der sich die Ergebnisse befinden müssen, und mitlocationBias
die Region, in deren Nähe sich die Ergebnisse befinden müssen, sie dürfen sich aber auch außerhalb des Gebiets befinden.-
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. Bei einem Wert von 0,6 werden beispielsweise alle Ergebnisse mit einer Bewertung unter 1,0 entfernt.
-
priceLevels
Beschränken Sie die Suche auf Orte, die mit bestimmten Preisniveaus 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 Abfragetyp sortiert werden:
- Für eine kategoriale Suchanfrage wie „Restaurants in New York City“:
.relevance
(Ergebnisse nach Suchrelevanz sortieren) ist die Standardeinstellung. Sie könnenrankPreference
auf.relevance
oder.distance
festlegen, um die Ergebnisse nach Entfernung zu 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. So lautet beispielsweise die ccTLD des Vereinigten Königreichs „uk“ (.co.uk), der ISO 3166-1-Code dagegen „gb“ (technisch für die Entität „Vereinigtes Königreich von Großbritannien und Nordirland“). Der Parameter kann sich auf die Ergebnisse auswirken, die gemäß anwendbarem Recht angezeigt werden.
Zuordnungen in der App anzeigen
Wenn in Ihrer App Informationen angezeigt werden, die von GMSPlacesClient
stammen, z. B. Fotos und Rezensionen, müssen auch die erforderlichen Quellenangaben eingeblendet werden.
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 anzeigen, müssen Sie auch alle Quellen- oder Autorenangaben anzeigen.
Weitere Informationen finden Sie in der Dokumentation zu Quellenangaben.