Text Search (New)

Plattform auswählen: Android iOS JavaScript Webdienst

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 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" 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 den GMSPlaceProperty 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 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:

  • <ph type="x-smartling-placeholder"></ph> 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 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

    Wenn true, werden nur die Orte zurückgegeben, die geöffnet sind. wenn die Abfrage gesendet wird. Wenn false, 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 auf false festlegen.

  • isStrictTypeFiltering

    Wird mit dem Parameter includeType verwendet. Wenn festgelegt auf true, nur Orte, die den angegebenen Typen entsprechen, die durch includeType 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 oder locationBias angeben. aber nicht beides. Stellen Sie sich locationRestriction vor, Region, in der sich die Ergebnisse befinden müssen, und locationBias 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 und high.longitude = 180 Grad, der Darstellungsbereich umfasst alle Längenangaben.
      • Wenn low.longitude = 180 Grad und high.longitude = -180 Grad, der Längengradbereich ist leer.
      • Wenn low.latitude > high.latitude, der Der Breitengradbereich ist leer.
  • 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 oder locationBias angeben. aber nicht beides. Stellen Sie sich locationRestriction vor, Region, in der sich die Ergebnisse befinden müssen, und locationBias 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önnen rankPreference 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.
  • regionCode

    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.

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 alle Quellenangaben oder Autoren angezeigt werden. Namensnennung.

Weitere Informationen finden Sie in der Dokumentation zu Quellenangaben.