Text Search

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. Bei false werden alle Unternehmen zurückgegeben, unabhängig vom Status „Geöffnet“. Wenn du den Parameter auf false setzt, werden Orte zurückgegeben, für die in der Google Places-Datenbank keine Öffnungszeiten angegeben sind.

  • isStrictTypeFiltering

    Wird mit dem Parameter includeType verwendet. Wenn true festgelegt ist, werden nur Orte zurückgegeben, die den in includeType 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 oder locationBias angeben, aber nicht beides. Stellen Sie sich locationRestriction als die Angabe der Region vor, in der sich die Ergebnisse befinden müssen, und locationBias 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 und high.longitude = 180 Grad, enthält der Darstellungsbereich alle Längengrade.
      • Wenn low.longitude = 180 Grad und high.longitude = -180 Grad ist, ist der Längengradbereich leer.
      • Wenn low.latitude > high.latitude ist, ist der Breitengradbereich leer.
  • 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 oder locationBias angeben, aber nicht beides. Stellen Sie sich locationRestriction als die Angabe der Region vor, in der sich die Ergebnisse befinden müssen, und locationBias 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 beispielsweise RELEVANCE 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.