Text Search (New)

Plattform auswählen: Android iOS JavaScript Webdienst

Entwickler im Europäischen Wirtschaftsraum (EWR)

Einführung

Bei Verwendung von Text Search (New) werden Informationen zu verschiedenen Orten auf Grundlage eines Textstrings zurückgegeben, z. B. „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.

Zusätzlich zu den erforderlichen Parametern unterstützt Text Search (New) die Verfeinerung von Abfragen mit optionalen Parametern, um bessere Ergebnisse zu erzielen.

Mit dem APIs Explorer können Sie Liveanfragen stellen, um sich mit der API und den API-Optionen vertraut zu machen:

Text Search (New)-Anfragen

Eine Text Search (New)-Anfrage ist eine HTTP-POST-Anfrage im folgenden Format:

https://places.googleapis.com/v1/places:searchText

Übergeben Sie alle Parameter im JSON-Anfragetext oder in Headern als Teil der POST-Anfrage. Beispiel:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \
'https://places.googleapis.com/v1/places:searchText'

Text Search (New)-Antworten

Text Search (New) gibt ein JSON-Objekt als Antwort zurück. Die Antwort sieht so aus:

  • Das Array places enthält alle übereinstimmenden Orte.
  • Jeder Ort im Array wird durch ein Place-Objekt dargestellt. Das Place-Objekt enthält detaillierte Informationen zu einem einzelnen Ort.
  • Die in der Anfrage übergebene FieldMask gibt die Liste der Felder an, die im Place-Objekt zurückgegeben werden.
  • Die Liste der zurückgegebenen Orte ist bei identischen Anfragen nicht immer gleich.

Das vollständige JSON-Objekt hat folgendes Format:

{
  "places": [
    {
      object (Place)
    }
  ]
}

Erforderliche Parameter

  • FieldMask

    Geben Sie die Liste der Felder an, die in der Antwort zurückgegeben werden sollen, indem Sie eine Antwortfeldmaske erstellen. Übergeben Sie die Antwortfeldmaske mit dem URL-Parameter $fields oder fields oder mit dem HTTP-Header X-Goog-FieldMask an die Methode. In der Antwort gibt es keine Standardliste der zurückgegebenen Felder. Wenn Sie die Feldmaske weglassen, gibt die Methode einen Fehler zurück.

    Mit der Maskierung von Feldern lässt sich verhindern, dass unnötige Daten angefordert werden, was wiederum hilft, unnötige Verarbeitungszeiten und Gebühren zu vermeiden.

    Geben Sie eine durch Kommas getrennte Liste der Ortsdatentypen an, die zurückgegeben werden sollen. Beispielsweise, um den Anzeigenamen und die Adresse des Ortes abzurufen.

    X-Goog-FieldMask: places.displayName,places.formattedAddress

    Verwenden Sie *, um alle Felder abzurufen.

    X-Goog-FieldMask: *

    Geben Sie eines oder mehrere der folgenden Felder an:

    • Die folgenden Felder lösen die SKU Text Search Essentials ID Only aus:

      places.attributions
      places.id
      places.consumerAlert
      places.name*
      nextPageToken
      places.movedPlace
      places.movedPlaceId

      * Das Feld places.name enthält den Ressourcennamen des Orts in folgendem Format: places/PLACE_ID. Verwenden Sie places.displayName in der Pro-SKU, um auf den Textnamen des Orts zuzugreifen.

      Eine vollständige Liste der Felder und der zugehörigen SKUs finden Sie unter Ortsdatenfelder (neu).

    • Die folgenden Felder lösen die SKU „Text Search Pro“ aus:

      places.accessibilityOptions
      places.addressComponents
      places.addressDescriptor*
      places.adrFormatAddress
      places.businessStatus
      places.containingPlaces
      places.displayName
      places.formattedAddress
      places.googleMapsLinks
      places.googleMapsTypeLabel
      places.googleMapsUri
      places.iconBackgroundColor
      places.iconMaskBaseUri
      places.location
      places.openingDate
      places.photos
      places.plusCode
      places.postalAddress
      places.primaryType
      places.primaryTypeDisplayName
      places.pureServiceAreaBusiness
      places.shortFormattedAddress
      places.searchUri
      places.subDestinations
      places.timeZone
      places.types
      places.utcOffsetMinutes
      places.viewport

      * Adressbeschreibungen sind für Kunden in Indien allgemein verfügbar und werden in anderen Ländern experimentell eingesetzt.

      Eine vollständige Liste der Felder und der zugehörigen SKUs finden Sie unter Ortsdatenfelder (neu).

    • Die folgenden Felder lösen die SKU „Text Search Enterprise“ aus:

      places.currentOpeningHours
      places.currentSecondaryOpeningHours
      places.internationalPhoneNumber
      places.nationalPhoneNumber
      places.priceLevel
      places.priceRange
      places.rating
      places.regularOpeningHours
      places.regularSecondaryOpeningHours
      places.transitStation
      places.userRatingCount
      places.websiteUri

      Eine vollständige Liste der Felder und der zugehörigen SKUs finden Sie unter Ortsdatenfelder (neu).

    • Die folgenden Felder lösen die SKU „Text Search Enterprise + Atmosphere“ aus:

      places.allowsDogs
      places.curbsidePickup
      places.delivery
      places.dineIn
      places.editorialSummary
      places.evChargeAmenitySummary
      places.evChargeOptions
      places.fuelOptions
      places.generativeSummary
      places.goodForChildren
      places.goodForGroups
      places.goodForWatchingSports
      places.liveMusic
      places.menuForChildren
      places.neighborhoodSummary
      places.parkingOptions
      places.paymentOptions
      places.outdoorSeating
      places.reservable
      places.restroom
      places.reviews
      places.reviewSummary
      routingSummaries*
      places.servesBeer
      places.servesBreakfast
      places.servesBrunch
      places.servesCocktails
      places.servesCoffee
      places.servesDessert
      places.servesDinner
      places.servesLunch
      places.servesVegetarianFood
      places.servesWine
      places.takeout

      * Nur Text Search und Nearby Search

      Eine vollständige Liste der Felder und der zugehörigen SKUs finden Sie unter Ortsdatenfelder (neu).

  • textQuery

    Der Textstring, nach dem gesucht werden soll. Beispiele: „Restaurant“, „Hauptstraße 60“ oder „Sehenswürdigkeiten in Berlin“. Die API gibt mögliche Übereinstimmungen basierend auf dem String zurück, die nach erkannter Relevanz sortiert werden.

    „Text Search (New)“ ist nicht für mehrdeutige Suchanfragen gedacht, darunter:

    Abfragetyp Beispiel
    Zu viele Konzepte oder Einschränkungen, z. B. die Namen mehrerer Orte, Straßen oder Städte in einer einzelnen Abfrage „Market Street San Francisco San Jose Airport“
    Elemente der Postanschrift, die nicht in Google Maps dargestellt werden "C/O John Smith 123 Main Street"
    "P.O. Box 13 San Francisco"
    Namen von Unternehmen, Ketten oder Kategorien in Kombination mit Standorten, an denen diese Unternehmen nicht verfügbar sind „Tesco in der Nähe von Dallas, Texas“
    Mehrdeutige Suchanfragen mit mehreren Interpretationen „Ladegerät abgeben“
    Nicht mehr verwendete historische Namen "Middlesex United Kingdom"
    Nicht-geospatial Elemente oder Absichten „Wie viele Boote befinden sich im Ventura Harbor?“
    Inoffizielle oder Vanity-Namen „The Jenga“
    „The Helter Skelter“
    Geografische Koordinaten (Breiten- und Längengrad) "37.422131,-122.084801"

Optionale Parameter

  • includeFutureOpeningBusinesses

    Wenn true, werden Unternehmen zurückgegeben, die voraussichtlich in Zukunft eröffnet werden. Die Standardeinstellung ist false.

    Wenn Sie den Geschäftsstatus abrufen möchten, fügen Sie places.businessStatus in die Feldmaske der Anfrage ein. Wenn Sie das voraussichtliche Eröffnungsdatum des Unternehmens abrufen möchten, fügen Sie places.openingDate in die Feldmaske der Anfrage ein.

  • includedType

    Die Ergebnisse werden auf Orte beschränkt, die dem in Tabelle A angegebenen Typ entsprechen. Sie können nur einen Typ angeben. Beispiel:

    • "includedType":"bar"
    • "includedType":"pharmacy"

    Bei der Textsuche (New) wird je nach Anwendbarkeit für bestimmte Abfragen eine Typfilterung angewendet. Beispielsweise wird die Typfilterung möglicherweise nicht auf Suchanfragen nach bestimmten Adressen („Musterstraße 123“) angewendet, aber fast immer auf kategorische Suchanfragen („Geschäfte in der Nähe“ oder „Einkaufszentren“).

    Wenn Sie die Typfilterung auf alle Abfragen anwenden möchten, setzen Sie strictTypeFiltering auf true.

  • includePureServiceAreaBusinesses

    Wenn der Wert auf true gesetzt ist, enthält die Antwort Unternehmen, die Kunden direkt besuchen oder beliefern, aber keinen physischen Geschäftsstandort haben. Wenn der Wert auf false festgelegt ist, gibt die API nur Unternehmen mit einem physischen Standort zurück.

  • languageCode

    Die Sprache, in der die Ergebnisse zurückgegeben werden sollen.

    • Hier finden Sie eine Liste der unterstützten Sprachen. Die unterstützten Sprachen werden regelmäßig von Google aktualisiert, sodass diese Liste unter Umständen nicht vollständig ist.
    • Wenn languageCode nicht angegeben ist, verwendet die API standardmäßig en. Wenn Sie einen ungültigen Sprachcode angeben, gibt die API den Fehler INVALID_ARGUMENT zurück.
    • Die API versucht, eine Adresse anzugeben, die sowohl für den Nutzer als auch für Einheimische lesbar ist. Dazu werden Adressen in der Landessprache zurückgegeben, die bei Bedarf in eine für den Nutzer lesbare Schrift transkribiert werden. Dabei wird die bevorzugte Sprache berücksichtigt. Alle anderen Adressen werden in der bevorzugten Sprache zurückgegeben. Adresskomponenten werden alle in derselben Sprache zurückgegeben, die von der ersten Komponente ausgewählt wird.
    • Wenn ein Name in der bevorzugten Sprache nicht verfügbar ist, verwendet die API die nächstgelegene Übereinstimmung.
    • Die bevorzugte Sprache hat einen geringen Einfluss auf die von der API zurückgegebenen Ergebnisse und die Reihenfolge, in der sie zurückgegeben werden. Der Geocoder interpretiert Abkürzungen je nach Sprache unterschiedlich, z. B. Abkürzungen für Straßentypen oder Synonyme, die in einer Sprache gültig sind, in einer anderen jedoch nicht.
  • locationBias

    Gibt einen Bereich für die Suche an. Dieser Standort dient als Gewichtung. Das bedeutet, dass Ergebnisse in der Nähe des angegebenen Standorts zurückgegeben werden können, einschließlich Ergebnissen außerhalb des angegebenen Bereichs.

    Sie können locationRestriction oder locationBias angeben, aber nicht beide. Mit locationRestriction wird die Region angegeben, in der die Ergebnisse liegen müssen. Mit locationBias wird die Region angegeben, in der die Ergebnisse wahrscheinlich liegen oder in deren Nähe sie sich befinden, aber sie können auch außerhalb des Bereichs liegen.

    Geben Sie die Region als rechteckigen Darstellungsbereich oder als Kreis an.

    • Ein Kreis wird durch einen Mittelpunkt und einen Radius in Metern definiert. Der Radius muss zwischen 0,0 und 50.000,0 liegen. Der Standardradius beträgt 0,0. Beispiel:

      "locationBias": {
        "circle": {
          "center": {
            "latitude": 37.7937,
            "longitude": -122.3965
          },
          "radius": 500.0
        }
      }
    • Ein Rechteck ist ein Darstellungsbereich mit Breiten- und Längengrad, der durch zwei diagonal gegenüberliegende Tief- und Hochpunkte dargestellt wird. Der Tiefpunkt markiert die südwestliche Ecke des Rechtecks und der Höchstpunkt die nordöstliche Ecke.

      Ein Darstellungsbereich gilt als geschlossene Region, d. h., er schließt seine Grenze ein. Die Grenzen für den Breitengrad müssen zwischen -90 und 90 Grad liegen, die Grenzen für den Längengrad zwischen -180 und 180 Grad:

      • Wenn low = high ist, besteht der Darstellungsbereich aus diesem einzelnen Punkt.
      • Wenn low.longitude > high.longitude, wird der Längengradbereich invertiert (der Darstellungsbereich kreuzt den 180. Längengrad).
      • Wenn low.longitude = -180 Grad und high.longitude = 180 Grad ist, umfasst 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 der Breitengradbereich leer.

      Sowohl der niedrige als auch der hohe Wert müssen angegeben werden und das dargestellte Feld darf nicht leer sein. Ein leerer Darstellungsbereich führt zu einem Fehler.

      Dieser Darstellungsbereich umschließt beispielsweise New York City vollständig:

      "locationBias": {
        "rectangle": {
          "low": {
            "latitude": 40.477398,
            "longitude": -74.259087
          },
          "high": {
            "latitude": 40.91618,
            "longitude": -73.70018
          }
        }
      }
  • locationRestriction

    Gibt einen Bereich an, in dem nur nach kategorischen Suchanfragen gesucht werden soll, die mehrere Orte zurückgeben können (z. B. „Restaurants in New York“ oder „Einkaufszentren“). Ergebnisse außerhalb des angegebenen Bereichs werden nicht zurückgegeben.

    Geben Sie die Region als rechteckigen Darstellungsbereich an. Ein Beispiel für die Definition des Darstellungsbereichs finden Sie in der Beschreibung von locationBias.

    Sie können locationRestriction oder locationBias angeben, aber nicht beide. Mit locationRestriction wird die Region angegeben, in der die Ergebnisse liegen müssen. Mit locationBias wird die Region angegeben, in der die Ergebnisse wahrscheinlich liegen oder in deren Nähe sie sich befinden, aber sie können auch außerhalb des Bereichs liegen.

  • evOptions

    Gibt Parameter zum Identifizieren verfügbarer Ladeanschlüsse und Ladetarife für Elektrofahrzeuge an.

    • connectorTypes

      Filtert nach dem Typ des Ladesteckers für Elektrofahrzeuge, der an einem Ort verfügbar ist. Orte, die keinen der Steckertypen unterstützen, werden herausgefiltert. Zu den unterstützten Ladeanschlüssen für Elektrofahrzeuge gehören kombinierte Ladegeräte (Wechsel- und Gleichstrom), Tesla-Ladegeräte, GB/T-kompatible Ladegeräte (für das schnelle Laden von Elektrofahrzeugen in China) und Ladegeräte für Wandsteckdosen. Weitere Informationen finden Sie in der Referenzdokumentation.

      • Wenn Sie die Ergebnisse für einen bestimmten unterstützten Connector filtern möchten, legen Sie connectorTypes auf diesen Wert fest. Wenn Sie beispielsweise nach J1772-Typ-1-Anschlüssen suchen möchten, setzen Sie connectorTypes auf EV_CONNECTOR_TYPE_J1772.
      • Wenn Sie die Ergebnisse nach nicht unterstützten Connectors filtern möchten, setzen Sie connectorTypes auf EV_CONNECTOR_TYPE_OTHER.
      • Wenn Sie die Ergebnisse nach einem Steckertyp filtern möchten, der eine Wandsteckdose ist, setzen Sie connectorTypes auf EV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET.
      • Wenn Sie die Ergebnisse für einen beliebigen Connectortyp filtern möchten, setzen Sie connectorTypes entweder auf EV_CONNECTOR_TYPE_UNSPECIFIED oder legen Sie keinen Wert für connectorTypes fest.
    • minimumChargingRateKw

      Filtert Orte nach der Mindestladeleistung für Elektrofahrzeuge in Kilowatt (kW). Alle Orte mit einer Ladeleistung, die unter der Mindestladeleistung liegt, werden herausgefiltert. Wenn Sie beispielsweise nach Ladestationen für Elektrofahrzeuge mit einer Ladeleistung von mindestens 10 kW suchen, können Sie diesen Parameter auf „10“ festlegen.

  • minRating

    Beschränkt die Ergebnisse auf diejenigen, deren durchschnittliche Nutzerbewertung größer oder gleich diesem Limit ist. Die Werte müssen zwischen 0,0 und 5,0 (einschließlich) in Schritten von 0,5 liegen. Beispiel: 0, 0,5, 1,0, ... , 5,0 einschließlich. Die Werte werden auf die nächsten 0,5 aufgerundet. Beispiel: Ein Wert von 0,6 entfernt alle Ergebnisse mit einer Bewertung von weniger als 1,0.

  • openNow

    Wenn true, werden nur die Orte zurückgegeben, die beim Senden der Anfrage geöffnet haben. Wenn false, werden alle Unternehmen unabhängig vom Öffnungsstatus zurückgegeben. Wenn Sie diesen Parameter auf false festlegen, werden auch Orte zurückgegeben, für die in der Google Places-Datenbank keine Öffnungszeiten hinterlegt sind.

  • pageSize

    Gibt die Anzahl der Ergebnisse (zwischen 1 und 20) an, die auf jeder Seite angezeigt werden sollen. Wenn Sie beispielsweise den Wert pageSize auf 5 festlegen, werden auf der ersten Seite bis zu 5 Ergebnisse zurückgegeben. Wenn die Abfrage mehr Ergebnisse zurückgeben kann, enthält die Antwort ein nextPageToken, das Sie in einer nachfolgenden Anfrage übergeben können, um auf die nächste Seite zuzugreifen.

    Dieses Feld ersetzt das verworfene Feld maxResultCount. Wenn Sie sowohl pageSize als auch maxResultCount angeben, verwendet die API pageSize und ignoriert maxResultCount.

  • pageToken

    Gibt das nextPageToken aus dem Antworttext der vorherigen Seite an.

  • priceLevels

    Schränken Sie die Suche auf Orte ein, die mit bestimmten Preisstufen gekennzeichnet sind. Standardmäßig sind alle Preisstufen ausgewählt.

    Für Orte der folgenden Typen können Preisstufen erwartet werden:

    Orte, die nicht zu den unterstützten Typen gehören, werden nicht in die Antwort aufgenommen, wenn priceLevels angegeben ist.

    Geben Sie ein Array mit einem oder mehreren Werten an, die durch PriceLevel definiert sind.

    Beispiel:

    "priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
  • rankPreference

    Gibt an, wie die Ergebnisse in der Antwort basierend auf dem Abfragetyp sortiert werden:

    • Bei einer kategorischen Suchanfrage wie „Restaurants in New York City“ ist RELEVANCE (Ergebnisse nach Suchrelevanz sortieren) die Standardeinstellung. Sie können rankPreference auf RELEVANCE oder DISTANCE (Ergebnisse nach Entfernung sortieren) festlegen.
    • Bei einer nicht kategorischen Abfrage wie „Mountain View, CA“ empfehlen wir, rankPreference nicht festzulegen.
  • regionCode

    Der Regionscode, der zum Formatieren der Antwort verwendet wird, angegeben als zweistelliger CLDR-Code. Dieser Parameter kann sich auch auf die Suchergebnisse auswirken. Es gibt keinen Standardwert.

    Wenn der Ländername des Felds formattedAddress in der Antwort mit dem regionCode übereinstimmt, wird der Ländercode in formattedAddress weggelassen. Dieser Parameter hat keine Auswirkungen auf adrFormatAddress, das immer den Ländernamen enthält, sofern verfügbar, oder auf shortFormattedAddress, das ihn nie enthält.

    Die meisten CLDR-Codes sind mit den ISO 3166-1-Codes identisch, es gibt jedoch einige Ausnahmen. So lautet beispielsweise die ccTLD des Vereinigten Königreichs „uk“ (.co.uk), der ISO-3166-1-Code dagegen „gb“ (technisch gesehen für die Entität „Vereinigtes Königreich Großbritannien und Nordirland“). Der Parameter kann sich je nach anwendbarem Recht auf die Ergebnisse auswirken.

  • strictTypeFiltering

    Wird mit dem Parameter includedType verwendet. Wenn der Wert auf true festgelegt ist, werden nur Orte zurückgegeben, die den von includedType angegebenen Typen entsprechen. Wenn der Wert „false“ ist (Standard), kann die Antwort Orte enthalten, die nicht den angegebenen Typen entsprechen.

Beispiele für Text Search (New)

Ort per Abfragestring suchen

Im folgenden Beispiel sehen Sie eine Text Search (New)-Anfrage für „Scharfes vegetarisches Essen in Sydney, Australien“:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress' \
'https://places.googleapis.com/v1/places:searchText'

Beachten Sie, dass im Header X-Goog-FieldMask angegeben ist, dass die Antwort die folgenden Datenfelder enthält: places.displayName,places.formattedAddress. Die Antwort hat dann folgendes Format:

{
  "places": [
    {
      "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia",
      "displayName": {
        "text": "Mother Chu's Vegetarian Kitchen",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "175 First Ave, Five Dock NSW 2046, Australia",
      "displayName": {
        "text": "Veggo Sizzle - Vegan & Vegetarian Restaurant, Five Dock, Sydney",
        "languageCode": "en"
      }
    },
    ...
  ]
}

Fügen Sie der Feldmaske weitere Datentypen hinzu, um zusätzliche Informationen zurückzugeben. Fügen Sie beispielsweise places.types,places.websiteUri hinzu, um den Restauranttyp und die Webadresse in die Antwort aufzunehmen:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.types,places.websiteUri' \
'https://places.googleapis.com/v1/places:searchText'

Die Antwort hat jetzt folgendes Format:

{
  "places": [
    {
      "types": [
        "vegetarian_restaurant",
        "vegan_restaurant",
        "chinese_restaurant",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia",
      "websiteUri": "http://www.motherchusvegetarian.com.au/",
      "displayName": {
        "text": "Mother Chu's Vegetarian Kitchen",
        "languageCode": "en"
      }
    },
    {
      "types": [
        "vegan_restaurant",
        "thai_restaurant",
        "vegetarian_restaurant",
        "indian_restaurant",
        "italian_restaurant",
        "american_restaurant",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "formattedAddress": "175 First Ave, Five Dock NSW 2046, Australia",
      "websiteUri": "http://www.veggosizzle.com.au/",
      "displayName": {
        "text": "Veggo Sizzle - Vegan & Vegetarian Restaurant, Five Dock, Sydney",
        "languageCode": "en"
      }
    },
    ...
  ]
}

Orte nach Preisniveau filtern

Mit der Option priceLevel können Sie die Ergebnisse auf Restaurants filtern, die als preiswert oder mäßig teuer definiert sind:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \
'https://places.googleapis.com/v1/places:searchText'

In diesem Beispiel wird auch der Header X-Goog-FieldMask verwendet, um das Datenfeld places.priceLevel der Antwort hinzuzufügen, sodass es folgendes Format hat:

{
  "places": [
    {
      "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Mother Chu's Vegetarian Kitchen",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "115 King St, Newtown NSW 2042, Australia",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Green Mushroom",
        "languageCode": "en"
      }
    },
    ...
  ]
}

Fügen Sie zusätzliche Optionen hinzu, um die Suche zu verfeinern, z. B. includedType, minRating, rankPreference, openNow und andere Parameter, die unter Optionale Parameter beschrieben werden.

Suche auf einen bestimmten Bereich beschränken

Verwenden Sie locationRestriction oder locationBias, aber nicht beide, um eine Suche auf einen Bereich einzugrenzen. Mit locationRestriction wird die Region angegeben, in der sich die Ergebnisse befinden müssen. Mit locationBias wird die Region angegeben, in deren Nähe sich die Ergebnisse befinden müssen, wobei sie sich auch außerhalb des Bereichs befinden können.

Bereich mit „locationRestriction“ einschränken

Verwenden Sie den Parameter locationRestriction, um die Abfrageergebnisse auf eine bestimmte Region zu beschränken. Geben Sie im Anfragetext die Breiten- und Längengradwerte für low und high an, die die Regionsgrenze definieren.

Das folgende Beispiel zeigt eine Text Search (New)-Anfrage für „vegetarisches Essen“ in New York City. Diese Anfrage gibt nur die ersten 10 Ergebnisse für geöffnete Orte zurück.

curl -X POST -d '{
  "textQuery" : "vegetarian food",
  "pageSize" : "10",
  "locationRestriction": {
    "rectangle": {
      "low": {
        "latitude": 40.477398,
        "longitude": -74.259087
      },
      "high": {
        "latitude": 40.91618,
        "longitude": -73.70018
      }
    }
  }
}' \
  -H 'Content-Type: application/json' \
  -H 'X-Goog-Api-Key: API_KEY' \
  -H 'X-Goog-FieldMask: places.id,places.formattedAddress' \
  'https://places.googleapis.com/v1/places:searchText'

Gewichtung auf einen Bereich mit „locationBias“

Im folgenden Beispiel sehen Sie eine Text Search (New)-Anfrage für „vegetarisches Essen“, die auf einen Ort im Umkreis von 500 Metern um einen Punkt in der Innenstadt von San Francisco ausgerichtet ist. Diese Anfrage gibt nur die ersten 10 Ergebnisse für geöffnete Orte zurück.

curl -X POST -d '{
  "textQuery" : "vegetarian food",
  "openNow": true,
  "pageSize": 10,
  "locationBias": {
    "circle": {
      "center": {"latitude": 37.7937, "longitude": -122.3965},
      "radius": 500.0
    }
  },
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress' \
'https://places.googleapis.com/v1/places:searchText'

Nach Ladestationen für Elektrofahrzeuge mit einer Mindestladeleistung suchen

Mit minimumChargingRateKw und connectorTypes können Sie nach Orten mit verfügbaren Ladestationen suchen, die mit Ihrem Elektrofahrzeug kompatibel sind.

Das folgende Beispiel zeigt eine Anfrage für Tesla- und J1772-Typ-1-Anschlussstecker für Ladestationen für Elektrofahrzeuge mit einer Mindestladeleistung von 10 kW in Mountain View, Kalifornien. Es werden nur vier Ergebnisse zurückgegeben.

curl -X POST -d '{
    "textQuery": "EV Charging Station Mountain View",
    "pageSize": 4,
    "evOptions": {
      "minimumChargingRateKw": 10,
      "connectorTypes": ["EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TESLA"]
    }
  }' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H "X-Goog-FieldMask: places.displayName,places.evChargeOptions" \
'https://places.googleapis.com/v1/places:searchText'

Die Anfrage gibt die folgende Antwort zurück:

{
  "places": [
    {
      "displayName": {
        "text": "EVgo Charging Station",
        "languageCode": "en"
      },
      "evChargeOptions": {
        "connectorCount": 16,
        "connectorAggregation": [
          {
            "type": "EV_CONNECTOR_TYPE_CHADEMO",
            "maxChargeRateKw": 100,
            "count": 8,
            "availableCount": 5,
            "outOfServiceCount": 0,
            "availabilityLastUpdateTime": "2024-01-10T19:10:00Z"
          },
          {
            "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1",
            "maxChargeRateKw": 100,
            "count": 2,
            "availableCount": 2,
            "outOfServiceCount": 0,
            "availabilityLastUpdateTime": "2024-01-10T19:10:00Z"
          },
          ...
        ]
      }
    },
    {
      "displayName": {
        "text": "EVgo Charging Station",
        "languageCode": "en"
      },
      "evChargeOptions": {
        "connectorCount": 6,
        "connectorAggregation": [
          {
            "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1",
            "maxChargeRateKw": 100,
            "count": 4,
            "availableCount": 3,
            "outOfServiceCount": 0,
            "availabilityLastUpdateTime": "2024-01-10T19:10:00Z"
          },
          {
            "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1",
            "maxChargeRateKw": 350,
            "count": 2,
            "availableCount": 0,
            "outOfServiceCount": 2,
            "availabilityLastUpdateTime": "2024-01-10T19:10:00Z"
          }
        ]
      }
    },
    ...
  ]
}

Nach Unternehmen ohne festen Standort in einem Einzugsgebiet suchen

Verwenden Sie den Parameter includePureServiceAreaBusinesses, um nach Unternehmen ohne physische Adresse zu suchen (z. B. ein mobiler Reinigungsdienst oder ein Foodtruck).

Das folgende Beispiel zeigt eine Anfrage für Klempner in San Francisco:

curl -X POST -d '{
  "textQuery" : "plumber San Francisco",
  "includePureServiceAreaBusinesses": true
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress' \
'https://places.googleapis.com/v1/places:searchText'

In der Antwort enthalten Unternehmen ohne physische Geschäftsadresse nicht das Feld formattedAddress:

{
  "places": [
    {
      "formattedAddress": "3450 Sacramento St #204, San Francisco, CA 94118, USA",
      "displayName": {
        "text": "Advanced Plumbing & Drain",
        "languageCode": "en"
      }
    },
    {
      "displayName": {
        "text": "Starboy Plumbing Inc.",
        "languageCode": "en"
      }
    },
    ...
  ]
}

Anzahl der Ergebnisse pro Seite angeben

Verwenden Sie den Parameter pageSize, um die Anzahl der Ergebnisse anzugeben, die pro Seite zurückgegeben werden sollen. Der Parameter nextPageToken im Antworttext stellt ein Token bereit, das in nachfolgenden Aufrufen verwendet werden kann, um auf die nächste Ergebnisseite zuzugreifen.

Im folgenden Beispiel wird eine Anfrage für „pizza in New York“ auf 5 Ergebnisse pro Seite beschränkt:

 curl -X POST -d '{
  "textQuery": "pizza in New York",
  "pageSize": 5
  }' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H "X-Goog-FieldMask: places.id,nextPageToken" \
'https://places.googleapis.com/v1/places:searchText'
{
  "places": [
    {
      "id": "ChIJifIePKtZwokRVZ-UdRGkZzs"
    },
    {
      "id": "ChIJPxPd_P1YwokRfzLhSiACEoU"
    },
    ...
  ],
  "nextPageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q"
}

Wenn Sie auf die nächste Ergebnisseite zugreifen möchten, verwenden Sie pageToken, um nextPageToken im Anfragetext zu übergeben:

 curl -X POST -d '{
  "textQuery": "pizza in New York",
  "pageSize": 5,
  "pageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q"
  }' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H "X-Goog-FieldMask: places.id,nextPageToken" \
'https://places.googleapis.com/v1/places:searchText'
{
  "places": [
    {
      "id": "ChIJL-LN1N1ZwokR8K2jACu6Ydw"
    },
    {
      "id": "ChIJjaD94kFZwokR-20CXqlpy_4"
    },
    ...
  ],
  "nextPageToken": "AeCrKXvPd6uUy-oj96W2OaqEe2pUD8QTxOM8-sKfUcFsC9t2Wey5qivrKGoGSxcZnyc7RPmaFfAktslrKbUh31ZDTkL0upRmaxA7c_c"
}

Adressdeskriptoren abrufen

Adressbeschreibungen enthalten relationale Informationen zur Lage eines Ortes, einschließlich Sehenswürdigkeiten in der Nähe und umliegender Gebiete.

Das folgende Beispiel zeigt eine „Text Search (New)“-Anfrage für Orte in der Nähe eines Einkaufszentrums in San Jose. In diesem Beispiel fügen Sie addressDescriptors in die Feldmaske ein:

curl -X POST -d '{
  "textQuery": "clothes",
  "maxResultCount": 5,
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.321328,
        "longitude": -121.946275
      }
    }
  },
  "rankPreference":"RANK_PREFERENCE_UNSPECIFIED"
}' \
-H 'Content-Type: application/json' \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName,places.addressDescriptor" \
https://places.googleapis.com/v1/places:searchText

Die Antwort enthält den in der Anfrage angegebenen Ort, eine Liste der Sehenswürdigkeiten in der Nähe und ihre Entfernung zum Ort sowie eine Liste der Gebiete und ihre Beziehung zum Ort:

  {
  "places": [
    {
      "displayName": {
        "text": "Urban Outfitters",
        "languageCode": "en"
      },
      "addressDescriptor": {
        "landmarks": [
          {
            "name": "places/ChIJVVVVUB7Lj4ARXyb4HFVDV8s",
            "placeId": "ChIJVVVVUB7Lj4ARXyb4HFVDV8s",
            "displayName": {
              "text": "Westfield Valley Fair",
              "languageCode": "en"
            },
            "types": [
              "clothing_store",
              "department_store",
              "establishment",
              "food",
              "movie_theater",
              "point_of_interest",
              "restaurant",
              "shoe_store",
              "shopping_mall",
              "store"
            ],
            "spatialRelationship": "WITHIN",
            "straightLineDistanceMeters": 133.72855
          },
          {
            "name": "places/ChIJ62_oCR7Lj4AR_MGWkSPotD4",
            "placeId": "ChIJ62_oCR7Lj4AR_MGWkSPotD4",
            "displayName": {
              "text": "Nordstrom",
              "languageCode": "en"
            },
            "types": [
              "clothing_store",
              "department_store",
              "establishment",
              "point_of_interest",
              "shoe_store",
              "store"
            ],
            "straightLineDistanceMeters": 250.99161
          },
          ...
        ],
        "areas": [
          {
            "name": "places/ChIJb3F-EB7Lj4ARnHApQ_Hu1gI",
            "placeId": "ChIJb3F-EB7Lj4ARnHApQ_Hu1gI",
            "displayName": {
              "text": "Westfield Valley Fair",
              "languageCode": "en"
            },
            "containment": "WITHIN"
          },
          {
            "name": "places/ChIJXYuykB_Lj4AR1Ot8nU5q26Q",
            "placeId": "ChIJXYuykB_Lj4AR1Ot8nU5q26Q",
            "displayName": {
              "text": "Valley Fair",
              "languageCode": "en"
            },
            "containment": "WITHIN"
          },
          ...
        ]
      }
    },
    ...
  ]
}

Unternehmen finden, die in Zukunft eröffnen

Das folgende Beispiel zeigt eine Text Search (New)-Anfrage für Unternehmen, die in Zukunft in New Meadows, Idaho, USA, eröffnen:

curl -X POST \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.id,places.displayName,places.businessStatus,places.openingDate" \
-d '{
  "textQuery": "Roberts Greenhouse and Tree Farm",
  "includeFutureOpeningBusinesses": true,
  "maxResultCount": 20,
  "locationBias": {
    "circle": {
      "center": {"latitude": 44.9755100, "longitude": -116.2842180},
      "radius": 20
    }
  }
}' \
"https://places.googleapis.com/v1/places:searchText"

Die Antwort enthält Unternehmen, die in Zukunft eröffnet werden, sowie deren Unternehmensstatus und voraussichtliches Eröffnungsdatum:

{
  "places": [
    {
      "id": "ChIJp1-VoKWJplQRMz8g-7Wa3Do",
      "businessStatus": "FUTURE_OPENING",
      "displayName": {
        "text": "Roberts Greenhouse and Tree Farm",
        "languageCode": "en"
      },
      "openingDate": {
        "year": 2026,
        "month": 4,
        "day": 15
      }
    }
  ]
}

Informationen zu Bahnhöfen und Haltestellen abrufen

Mit der Textsuche (neu) können Sie nach Haltestellen suchen. Der Antworttext enthält Informationen zur Station, einschließlich des Stationsnamens, der zugehörigen Verkehrsverbünde und der ÖPNV-Linien, die die Station bedienen. Außerdem enthält die Antwort ein Fahrzeugsymbol und Farben, die Sie verwenden können, um die Informationen zur Haltestelle anzuzeigen.

Das folgende Beispiel zeigt eine Anfrage für „Grand Central Station“:

curl -X POST \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.id,places.displayName,places.transitStation" \
-d '{
  "textQuery": "Grand Central Station"
}' \
"https://places.googleapis.com/v1/places:searchText"

Der Antworttext enthält Informationen zu jeder Station innerhalb des Radius, zu den Linien, die die Station bedienen, zu Meldungen von Verkehrsverbünden an dieser Haltestelle und zu Abfahrtsinformationen:

{
  "places": [
    {
      "id": "ChIJhRwB-yFawokRi0AhGH87UTc",
      "displayName": {
        "text": "Grand Central",
        "languageCode": "en"
      },
      "transitStation": {
        "displayName": {
          "text": "Grand Central",
          "languageCode": "en"
        },
        "agencies": [
          {
            "displayName": {
              "text": "Metro-North Railroad",
              "languageCode": "en"
            },
            "url": "http://www.mta.info/mnr",
            "lines": [
              {
                "id": "ChIJOXpD29y2wokRryDO0CocwK0",
                "vehicleType": "HEAVY_RAIL",
                "displayName": {
                  "text": "Harlem",
                  "languageCode": "en"
                },
                "textColor": "#FFFFFF",
                "backgroundColor": "#0061AA",
                "vehicleIcon": {
                  "url": "https://maps.gstatic.com/mapfiles/transit/iw2/svg/rail2.svg"
                },
                "alerts": [
                  {
                    "effect": "OTHER",
                    "texts": [
                      {
                        "headline": {
                          "text": "Information",
                          "languageCode": "en"
                        },
                        "summary": {
                          "text": "Temporary platforms are in place at Botanical Garden, Williams Bridge, and Woodlawn for northbound travel. Build in extra travel time to reach the platform.",
                          "languageCode": "en"
                        },
                        "fullDescription": {
                          "text": "What's Happening? We are renovating some Harlem Line stations in the Bronx. Learn more about the project here.",
                          "languageCode": "en"
                        }
                      }
                    ],
                    "detailsUrls": [
                      {
                        "url": "https://new.mta.info/"
                      }
                    ],
                    "cause": "OTHER_CAUSE",
                    "startTime": "2026-04-16T04:00:00Z",
                    "endTime": "2026-12-01T04:45:00Z",
                    "attribution": {
                      "link": {
                        "text": "new.mta.info",
                        "url": "https://new.mta.info/"
                      }
                    },
                    "createTime": "2026-05-15T22:39:30Z",
                    "severityLevel": "INFO"
                  }
                ]
              },
              ...
            ]
          },
          ...
        ]
        "stops": [
          {
            "id": "ChIJOfdrigFZwokRJPllLwfPrJY",
            "location": {
              "latitude": 40.752823,
              "longitude": -73.977195999999992
            },
            "wheelchairAccessibleEntrance": true
          }
        ],
        "departureBoards": [
          {
            "displayType": "TIME_CENTRIC",
            "rows": [
              {
                "departures": [
                  {
                    "timedDeparture": {
                      "scheduledTime": "2026-05-15T22:42:00Z",
                      "timingType": "SCHEDULED",
                      "predictedTime": "2026-05-15T22:42:00Z",
                      "updateTime": "2026-05-15T22:38:50Z"
                    },
                    "originallyScheduledStopId": "ChIJOfdrigFZwokRJPllLwfPrJY",
                    "lineId": "ChIJAfBuQhwg6IkRYnFpClHxFrM"
                  }
                ]
              },
              ...
            ]
          }
        ]
      }
    },
    {
      "id": "ChIJ_4EAi-pZwokRWe5T1JmmWmc",
      "displayName": {
        "text": "Grand Central Station",
        "languageCode": "en"
      }
    }
  ]
}

Eingänge und Navigationspunkte abrufen

Sie können Eingänge und Navigationspunkte für ein Ziel anfordern. Eingänge definieren Ein- und Ausgänge für einen Ort (z. B. verschiedene Gates an einem Flughafen oder Eingänge in einem Einkaufszentrum). Navigationspunkte definieren Orte am Straßenrand, an denen die Navigation enden soll. Das ist nützlich, um Nutzer zur richtigen Straßenseite oder zu einem bestimmten Absetzpunkt zu leiten.

Navigationspunkte geben einen navigationPointToken zurück. Sie können dieses Token an das Navigation SDK (verfügbar für Android oder iOS) oder die Routes API übergeben, um Fahrer zu diesem bestimmten Ort zu leiten. Weitere Informationen finden Sie unter Tokens für Navigationspunkte.

Das folgende Beispiel zeigt eine Text Search (New)-Anfrage für „San Francisco International Airport“, die entrances und navigationPoints in der Feldmaske enthält:

curl -X POST \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.id,places.displayName,places.entrances,places.navigationPoints" \
-d '{
  "textQuery": "San Francisco International Airport",
  "pageSize": 1
}' \
"https://places.googleapis.com/v1/places:searchText"

Die Antwort enthält die Eingänge und Navigationspunkte für den Ort:

{
  "places": [
    {
      "id": "ChIJVVVVVYx3j4ARP-3NGldc8qQ",
      "displayName": {
        "text": "San Francisco International Airport",
        "languageCode": "en"
      },
      "entrances": [
        {
          "location": {
            "latitude": 37.6172154,
            "longitude": -122.3839724
          }
        },
        {
          "location": {
            "latitude": 37.6174073,
            "longitude": -122.384196
          }
        },
        ...
      ],
      "navigationPoints": [
        {
          "navigationPointToken": "ChIJoioBjMLOQkAR0A3yH_eYXsA...",
          "displayName": {
            "text": "International Terminal Departures Level",
            "languageCode": "en"
          },
          "location": {
            "latitude": 37.6153121,
            "longitude": -122.3900833
          },
          "travelModes": ["WALK"]
        },
        {
          "navigationPointToken": "ChIJy5JKws_OQkAROx0jNN2YXsA...",
          "displayName": {
            "text": "Domestic Garage - SFO Short Term Parking",
            "languageCode": "en"
          },
          "location": {
            "latitude": 37.6157153,
            "longitude": -122.3885012
          },
          "travelModes": ["DRIVE", "WALK"],
          "usages": ["PARKING"]
        },
        ...
      ]
    }
  ]
}

Testen!

Mit dem APIs Explorer können Sie Beispielanfragen erstellen, um sich mit der API und den API-Optionen vertraut zu machen.

  1. Wählen Sie rechts auf der Seite das API-Symbol api aus.

  2. Bearbeiten Sie optional die Anfrageparameter.

  3. Wählen Sie den Button Ausführen aus. Wählen Sie im Dialogfeld das Konto aus, das Sie für die Anfrage verwenden möchten.

  4. Wählen Sie im APIs Explorer-Bereich das Vollbildsymbol fullscreen aus, um das APIs Explorer-Fenster zu maximieren.