Eine Textsuche gibt Informationen zu einer Reihe von Orten basierend auf einem String zurück. Beispiele: „Pizza in Hamburg“, „Schuhgeschäfte in der Nähe von Hamburg“ oder „Hauptstraße 123“. Der Dienst gibt eine Liste von Orten zurück, die dem Textstring und eventuell festgelegter 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 wie Unternehmensnamen enthalten. Anfragen wie die ersten beiden Beispiele geben möglicherweise null Ergebnisse zurück, es sei denn, ein Standort (z. B. Region, Standortbeschränkung oder Standortgewichtung) ist festgelegt.
„Hauptstraße 10, Deutschland“ oder „Hauptstraße 12, USA“ | Mehrere „High Streets“ im Vereinigten Königreich und mehrere „Main Streets“ in den USA. Die Abfrage gibt nur dann die gewünschten Ergebnisse zurück, wenn eine Standortbeschränkung festgelegt ist. |
„restaurant kette new york“ | Mehrere Standorte von „Kettenrestaurant“ in New York, weder Adresse noch Straßenname. |
„10 High Street, Escher UK“ oder „123 Main Street, Pleasanton US“ | In der britischen Stadt Escher gibt es nur eine "High Street" und in der US-amerikanischen Stadt Pleasanton, nur eine "Main Street". |
„UniqueRestaurantName New York“ | Nur ein Unternehmen mit diesem Namen in New York; keine Adresse zur Unterscheidung erforderlich. |
„pizza restaurants in new york“ | Diese Abfrage enthält die Standortbeschränkung. „Pizzarestaurants“ ist ein klar definierter Ortstyp. Es werden mehrere Ergebnisse zurückgegeben. |
„+49 514 670 8700“ | Diese Abfrage enthält eine Telefonnummer. Es werden mehrere Ergebnisse für Orte zurückgegeben, die mit dieser Telefonnummer verknüpft sind. |
Liste von Orten per Textsuche abrufen
Eine Text Search-Anfrage im Places SDK for iOS (New) hat das folgende Format:
Swift
func testPlaceSearchByTextRequestGMPSRequestCreationWithProperties() {
let placeProperties: [GMSPlaceProperty] = [GMSPlacePropertyName, GMSPlacePropertyPlaceID];
let request = GMSPlaceSearchByTextRequest(textQuery:"pizza in New York" placeProperties:placeProperties)
request.isOpenNow = true
request.includedType = "restaurant"
request.maxResultCount = 5
request.minRating = 3.5
request.rankPreference = .distance
request.isStrictTypeFiltering = true
request.priceLevels = [GMSPlacesPriceLevel.moderate.rawValue, GMSPlacesPriceLevel.cheap.rawValue]
request.locationRestriction = GMSPlaceRectangularLocationOption(
CLLocationCoordinate2D(latitude: 20, longitude: 30),
CLLocationCoordinate2D(latitude: 40, longitude: 50)
)
}
Objective-C
- (void)testPlaceSearchByTextRequestGMPSRequestCreationWithProperties {
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.locationRestriction = GMSPlaceRectangularLocationOption(
CLLocationCoordinate2DMake(20, 30), CLLocationCoordinate2DMake(40, 50));
request.locationBias = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(20, 30), 2.0);
}
Erforderliche Parameter
-
Feldliste
Geben Sie an, welche Eigenschaften von Ortsdaten zurückgegeben werden sollen. Übergeben Sie eine Liste von
GMSPlace
-Attributen, in denen Sie die Datenfelder angeben, die zurückgegeben werden sollen. Wenn Sie die Feldmaske weglassen, gibt die Anfrage einen Fehler zurück.Mithilfe von Feldlisten können Sie verhindern, dass unnötige Daten angefordert werden. So lassen sich unnötige Verarbeitungszeiten und Gebühren vermeiden.
Geben Sie eines oder mehrere der folgenden Felder an:
Durch die folgenden Felder wird die SKU „Text Search (ID Only)“ ausgelöst:
GMSPlacePropertyPlaceID
,GMSPlacePropertyName
Durch die folgenden Felder wird die SKU „Text Search (Basic)“ ausgelöst:
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
,GMSPlacePropertyServesBeer
,GMSPlacePropertyServesBreakfast
,GMSPlacePropertyServesBrunch
,GMSPlacePropertyServesDinner
,GMSPlacePropertyServesLunch
,GMSPlacePropertyServesVegetarianFood
,GMSPlacePropertyServesWine
,GMSPlacePropertyTakeout
-
textQuery
Der Textstring, nach dem gesucht werden soll, z. B. „Restaurant“, „Hauptstraße 123“ oder „bester Ort in San Francisco“.
Optionale Parameter
includedType
Beschränkt die Ergebnisse auf Orte, die dem in Tabelle A definierten Typ entsprechen. Es kann nur ein Typ angegeben werden. Beispiel:
request.includedType = "bar"
request.includedType = "pharmacy"
isOpenNow
Bei
true
werden nur die Orte zurückgegeben, die beim Senden der Abfrage geöffnet sind. Beifalse
werden alle Unternehmen zurückgegeben, unabhängig vom Status „Geöffnet“. Wenn du den Parameter auffalse
setzt, werden Orte zurückgegeben, für die in der Google Places-Datenbank keine Öffnungszeiten angegeben sind.isStrictTypeFiltering
Wird mit dem Parameter
includeType
verwendet. Wenntrue
festgelegt ist, werden nur Orte zurückgegeben, die den inincludeType
angegebenen Typen entsprechen. Ist der Wert „false“, kann die Antwort standardmäßig Orte enthalten, die nicht den angegebenen Typen entsprechen.locationBias
Gibt einen zu durchsuchenden Bereich an. Dieser Standort dient als Verzerrung, das heißt, dass Ergebnisse rund um den angegebenen Standort zurückgegeben werden können, auch Ergebnisse außerhalb des angegebenen Bereichs.
Sie können
locationRestriction
oderlocationBias
angeben, aber nicht beides. Stellen Sie sichlocationRestriction
als die Angabe der Region vor, in der sich die Ergebnisse befinden müssen, undlocationBias
als die Angabe der Region, in der sich die Ergebnisse in der Nähe, aber außerhalb dieses Bereichs befinden müssen.Legen Sie den Bereich als rechteckigen Darstellungsbereich oder als Kreis fest.
Ein Kreis wird durch den Mittelpunkt und einen Radius in Metern definiert. Der Radius muss zwischen 0,0 und 50000,0 (jeweils einschließlich) liegen. Der Standardradius ist 0,0. Beispiel:
request.locationBias = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(latitude: 20, longitude: 30), radius: 2.0)
Ein Rechteck ist ein Darstellungsbereich aus Breiten- und Längengrad, der als zwei diagonal gegenüberliegende niedrige und hohe Punkte dargestellt wird. Der Tiefpunkt markiert die südwestliche Ecke des Rechtecks und der höchste Punkt die nordöstliche Ecke des Rechtecks.
Ein Darstellungsbereich wird als geschlossener Bereich betrachtet, d. h. er enthält seine Begrenzung. Die Breitengradgrenzen müssen zwischen -90 und 90 Grad liegen und die Längengradgrenzen zwischen -180 und 180 Grad (jeweils einschließlich):
- Wenn
low
=high
ist, besteht der Darstellungsbereich aus diesem einzelnen Punkt. - Wenn
low.longitude
>high.longitude
ist, wird der Längengradbereich invertiert (der Darstellungsbereich kreuzt die 180-Grad-Längengradlinie). - Ist
low.longitude
= -180 Grad undhigh.longitude
= 180 Grad, enthält der Darstellungsbereich alle Längengrade. - Wenn
low.longitude
= 180 Grad undhigh.longitude
= -180 Grad ist, ist der Längengradbereich leer. - Wenn
low.latitude
>high.latitude
ist, ist der Breitengradbereich leer.
- Wenn
locationRestriction
Gibt einen zu durchsuchenden Bereich an. Ergebnisse außerhalb des angegebenen Bereichs werden nicht zurückgegeben. Geben Sie die Region als rechteckigen Darstellungsbereich an. Informationen zum Definieren des Darstellungsbereichs finden Sie in der Beschreibung von
locationBias
.Sie können
locationRestriction
oderlocationBias
angeben, aber nicht beides. Stellen Sie sichlocationRestriction
als die Angabe der Region vor, in der sich die Ergebnisse befinden müssen, undlocationBias
als die Angabe der Region, in der sich die Ergebnisse in der Nähe, aber außerhalb dieses Bereichs befinden müssen.-
maxResultCount
Gibt die maximale Anzahl der Ortsergebnisse an, die zurückgegeben werden sollen. Der Wert muss zwischen 1 und 20 (Standardwert) liegen.
minRating
Beschränkt die Ergebnisse auf die Nutzer, deren durchschnittliche Nutzerbewertung größer oder gleich dieser Grenze ist. Werte müssen zwischen 0,0 und 5,0 (einschließlich) in Schritten von 0,5 liegen. Beispiel: 0, 0,5, 1,0, ... , einschließlich 5,0. Die Werte werden auf den nächsten 0,5 aufgerundet. Beispielsweise werden bei einem Wert von 0,6 alle Ergebnisse mit einer Bewertung unter 1,0 ausgeschlossen.
-
priceLevels
Schränken Sie die Suche auf Orte ein, die mit bestimmten Preisstufen gekennzeichnet sind. Standardmäßig werden alle Preisstufen ausgewählt.
Geben Sie ein Array mit einem oder mehreren durch
PriceLevel
definierten Werten an.Beispiel:
request.priceLevels = [GMSPlacesPriceLevel.moderate.rawValue, GMSPlacesPriceLevel.cheap.rawValue]
rankPreference
Gibt an, wie die Ergebnisse in der Antwort eingestuft werden. Die API verwendet standardmäßig
RELEVANCE
. Bei einer Abfrage wie „Restaurants in New York City“ ist beispielsweiseRELEVANCE
die Standardeinstellung. Bei geografischen Abfragen wie „Mountain View, CA“ oder anderen Abfragetypen wird kein Standardwert angewendet. Die Ergebnisse werden in der Reihenfolge angezeigt, in der sie vom Back-End zurückgegeben werden.Zu den Werten gehören:
.distance
: Ergebnisse nach Entfernung sortieren..relevance
: Ergebnisse nach Relevanz sortieren
regionCode
Der zum Formatieren der Antwort verwendete Regionscode, angegeben als zweistelliger CLDR-Code-Wert. Dieser Parameter kann sich auch negativ auf die Suchergebnisse auswirken. Es gibt keinen Standardwert.
Wenn der Ländername des Adressfelds in der Antwort mit dem Regionscode übereinstimmt, wird der Ländercode in der Adresse weggelassen.
Die meisten CLDR-Codes sind mit ISO 3166-1-Codes identisch. Es gibt jedoch einige 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 „The United Kingdom of Great Britain and Northern Ireland“). Der Parameter kann sich gemäß anwendbarem Recht auf Ergebnisse auswirken.
Text Search-Antworten
Die Text Search API gibt ein Array von Übereinstimmungen in Form von GMSPlace
-Objekten mit einem GMSPlace
-Objekt pro übereinstimmendem Ort zurück.