Place Autocomplete (Legacy) ist ein Webdienst, der Ortsvorschläge als Reaktion auf eine HTTP-Anfrage zurückgibt. Die Anfrage enthält einen textbasierten Suchstring und optionale geografische Grenzen. Der Dienst kann verwendet werden, um die automatische Vervollständigung für textbasierte geografische Suchanfragen zu ermöglichen. Dazu werden Orte wie Unternehmen, Adressen und POIs zurückgegeben, während ein Nutzer tippt.
Place Autocomplete-Anfragen (Legacy)
„Place Autocomplete“ (Legacy) ist Teil der Places API und verwendet einen API-Schlüssel und Kontingente der Places API.
Place Autocomplete (Legacy) findet Übereinstimmungen mit vollständigen Wörtern und Teilstrings, sodass sich Ortsnamen, Adressen und Plus Codes zuordnen lassen. Anwendungen können Abfragen senden, während der Nutzer tippt, und schon bei der Eingabe Ortsvorschläge ausgeben.
Pluscodes müssen richtig formatiert sein. Das bedeutet, dass Sie das Pluszeichen in der URL als %2B und Leerzeichen als %20 darstellen müssen.
- Der Global Code besteht aus einem vierstelligen Code für das Gebiet und einem mindestens sechsstelligen lokalen Code. Der globale Code
849VCWC8+R9für die URL-Escapierung ist beispielsweise849VCWC8%2BR9. - Ein Compound Code ist ein mindestens sechsstelliger lokaler Code mit einem expliziten Ort. Der URL-escapte zusammengesetzte Code
CWC8+R9 Mountain View, CA, USAist beispielsweiseCWC8%2BR9%20Mountain%20View%20CA%20USA.
Die zurückgegebenen Vorhersagen sind so konzipiert, dass sie dem Nutzer angezeigt werden, um ihm bei der Auswahl des gewünschten Orts zu helfen. Sie können eine Place Details (Legacy)-Anfrage senden, um weitere Informationen zu den zurückgegebenen Orten zu erhalten.
Eine Place Autocomplete-Anfrage (Legacy) ist eine HTTP-URL im folgenden Format:
https://maps.googleapis.com/maps/api/place/autocomplete/output?parameters
Dabei kann output einen der folgenden Werte haben:
json(empfohlen) gibt die Ausgabe in JavaScript Object Notation (JSON) an.xmlgibt die Ausgabe als XML an.
Bestimmte Parameter sind erforderlich, um eine Place Autocomplete (Legacy)-Anfrage zu starten.
Wie in URLs üblich, werden alle Parameter mit dem Und-Zeichen (&) getrennt. Die Liste der Parameter und ihrer möglichen Werte finden Sie unten.
Erforderliche Parameter
-
Eingabe
Die Textzeichenfolge, nach der gesucht werden soll. Über den Place Autocomplete-Dienst werden mögliche Übereinstimmungen basierend auf dem String zurückgegeben, die nach erkannter Relevanz sortiert werden.
Optionale Parameter
-
Komponenten
Eine Gruppierung von Orten, auf die Sie Ihre Ergebnisse beschränken möchten. Mit Komponenten können Sie nach bis zu 5 Ländern filtern. Länder müssen als Ländercode mit 2 Zeichen gemäß ISO 3166-1 Alpha-2 übergeben werden. Beispiel:
components=country:frwürde Ihre Ergebnisse auf Orte in Frankreich beschränken. Mehrere Länder müssen als mehrerecountry:XX-Filter mit dem Pipe-Zeichen|als Trennzeichen übergeben werden. Beispiel:components=country:us|country:pr|country:vi|country:gu|country:mpwürde die Ergebnisse auf Orte in den USA und den nicht eingegliederten organisierten Gebieten beschränken.Hinweis:Wenn unerwartete Ergebnisse mit einem Ländercode ausgegeben werden, sollten Sie prüfen, ob Sie einen Code verwenden, der die gewünschten Länder, Außengebiete und besonderen Gebiete von geografischem Interesse umfasst. Informationen zu den Codes finden Sie in der ISO 3166-Ländercodeliste auf Wikipedia oder auf der ISO Online Browsing Platform. -
Sprache
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. Diese Liste ist daher möglicherweise nicht vollständig.
-
Wenn
languagenicht angegeben ist, versucht die API, die bevorzugte Sprache zu verwenden, die imAccept-Language-Header angegeben ist. - Die API versucht, eine Straßenadresse bereitzustellen, die sowohl für den Nutzer als auch für Einheimische lesbar ist. Dazu werden Straßenadressen in der lokalen Sprache zurückgegeben, die bei Bedarf in ein für den Nutzer lesbares Schriftsystem transliteriert werden. Dabei wird die bevorzugte Sprache berücksichtigt. Alle anderen Adressen werden in der bevorzugten Sprache zurückgegeben. Alle Adresskomponenten werden in derselben Sprache zurückgegeben, die anhand der ersten Komponente ausgewählt wird.
- Wenn ein Name in der bevorzugten Sprache nicht verfügbar ist, wird die nächstgelegene Übereinstimmung verwendet.
- Die bevorzugte Sprache hat einen geringen Einfluss auf die Ergebnisse, die von der API zurückgegeben werden, und auf 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 sein können, in einer anderen jedoch nicht. Beispiel: utca und tér sind Synonyme für „Straße“ auf Ungarisch.
-
Standort
Der Punkt, um den herum Ortsinformationen abgerufen werden sollen. Muss als
latitude,longitudeangegeben werden. Der Parameterradiusmuss auch angegeben werden, wenn ein Standort angegeben wird. Wennradiusnicht angegeben ist, wird der Parameterlocationignoriert.Wenn Sie die Text Search API verwenden, kann der Parameter „location“ überschrieben werden, wenn die „query“ einen expliziten Ort wie „Markt in Barcelona“ enthält. -
locationbias
Sie können Ergebnisse in einem bestimmten Gebiet bevorzugen, indem Sie entweder einen Radius plus Breiten-/Längengrad oder zwei Breiten-/Längengradpaare angeben, die die Punkte eines Rechtecks darstellen. Wenn dieser Parameter nicht angegeben ist, verwendet die API standardmäßig die IP-Adressen-Gewichtung.
-
IP-Bias: Weist die API an, IP-Adressen-Bias zu verwenden. Übergeben Sie den String
ipbias(für diese Option sind keine zusätzlichen Parameter erforderlich). -
Kreisförmig: Ein String, der den Radius in Metern sowie den Breiten- und Längengrad in Dezimalgrad angibt. Verwenden Sie das folgende Format:
circle:radius@lat,lng. -
Rechteckig: Ein String, der zwei Breiten-/Längengradpaare in Dezimalgrad angibt, die die Südwest- und Nordostpunkte eines Rechtecks darstellen. Verwenden Sie das folgende Format:
rectangle:south,west|north,east. Hinweis: Ost-/West-Werte werden auf den Bereich -180, 180 begrenzt und Nord-/Süd-Werte auf den Bereich -90, 90.
-
IP-Bias: Weist die API an, IP-Adressen-Bias zu verwenden. Übergeben Sie den String
-
locationrestriction
Sie können die Ergebnisse auf einen bestimmten Bereich beschränken, indem Sie entweder einen Radius plus Breiten-/Längengrad oder zwei Paare aus Breiten-/Längengrad angeben, die die Punkte eines Rechtecks darstellen.
-
Kreisförmig: Ein String, der den Radius in Metern sowie den Breiten- und Längengrad in Dezimalgrad angibt. Verwenden Sie das folgende Format:
circle:radius@lat,lng. -
Rechteckig: Ein String, der zwei Breiten-/Längengradpaare in Dezimalgrad angibt, die die Südwest- und Nordostpunkte eines Rechtecks darstellen. Verwenden Sie das folgende Format:
rectangle:south,west|north,east. Hinweis: Ost-/West-Werte werden auf den Bereich -180, 180 begrenzt und Nord-/Süd-Werte auf den Bereich -90, 90.
-
Kreisförmig: Ein String, der den Radius in Metern sowie den Breiten- und Längengrad in Dezimalgrad angibt. Verwenden Sie das folgende Format:
-
kompensiert
Die Position des letzten Zeichens im Eingabeterm, das vom Dienst zum Abgleichen von Vorhersagen verwendet wird. Wenn die Eingabe beispielsweise
Googleund der Offset 3 ist, wird der DienstGooabgleichen. Der durch den Offset bestimmte String wird nur mit dem ersten Wort im Eingabeterm abgeglichen. Wenn der Eingabeterm beispielsweiseGoogle abcund der Offset 3 ist, versucht der Dienst,Goo abcabzugleichen. Wenn kein Offset angegeben wird, wird der gesamte Zeitraum verwendet. Der Offset sollte in der Regel auf die Position des Textcursors festgelegt werden. -
origin
Der Ausgangspunkt, von dem aus die Luftlinie zum Ziel berechnet wird (als
distance_meterszurückgegeben). Wenn dieser Wert weggelassen wird, wird die Luftlinie nicht zurückgegeben. Muss alslatitude,longitudeangegeben werden. -
Umkreis
Definiert die Entfernung (in Metern), innerhalb derer Ortsangaben zurückgegeben werden sollen. Wenn Sie die Parameter
locationundradiusweitergeben, können Sie die Ergebnisse zugunsten eines festgelegten Kreises gewichten. Dadurch wird der Places-Dienst angewiesen, vorzugsweise Ergebnisse für Orte anzuzeigen, die sich innerhalb dieses Kreises befinden. Ergebnisse außerhalb dieses Bereichs können aber trotzdem angezeigt werden.Der Radius wird automatisch auf einen Höchstwert begrenzt, der vom Suchtyp und anderen Parametern abhängt.
- Automatische Vervollständigung: 50.000 Meter
-
Nearby Search:
- mit
keywordodername: 50.000 Meter -
ohne
keywordodername-
Bis zu 50.000 Meter, dynamisch angepasst basierend auf der Dichte des Gebiets, unabhängig vom Parameter
rankby. -
Wenn Sie
rankby=distanceverwenden, wird der Radiusparameter nicht akzeptiert und es wird einINVALID_REQUESTzurückgegeben.
-
Bis zu 50.000 Meter, dynamisch angepasst basierend auf der Dichte des Gebiets, unabhängig vom Parameter
- mit
- Query Autocomplete: 50.000 Meter
- Textsuche: 50.000 Meter
-
Region
Der Regionscode, angegeben als zweistelliger Ländercode der Top-Level-Domain (ccTLD). Die meisten ccTLD-Codes sind mit den ISO 3166-1-Codes identisch. Es gibt jedoch einige Ausnahmen. Die ccTLD des Vereinigten Königreichs ist beispielsweise „uk“ (.co.uk), der ISO 3166-1-Code dagegen „gb“ (technisch für das Land „Vereinigtes Königreich Großbritannien und Nordirland“).
-
sessiontoken
Ein zufälliger String, der eine Autocomplete-Sitzung zu Abrechnungszwecken identifiziert.
Die Sitzung wird gestartet, wenn der Nutzer mit der Eingabe beginnt, und endet, wenn er einen Ort auswählt und ein Aufruf von „Place Details“ erfolgt. Jede Sitzung kann mehrere Abfragen und eine Ortsauswahl umfassen. Die API-Schlüssel, die für die einzelnen Anfragen innerhalb einer Sitzung verwendet werden, müssen zum selben Google Cloud Console-Projekt gehören. Sobald eine Sitzung beendet wird, ist das Token nicht mehr gültig. Ihre App muss für jede Sitzung ein neues Token generieren. Wenn Sie den
sessiontoken-Parameter weglassen oder ein Sitzungstoken wiederverwenden, wird die Sitzung so in Rechnung gestellt, als wäre kein Sitzungstoken bereitgestellt worden. Jede Anfrage wird separat abgerechnet.Wir empfehlen folgende Richtlinien:
- Verwenden Sie Sitzungstokens für alle Sitzungen, bei denen eine automatische Vervollständigung erfolgt.
- Generieren Sie für jede Sitzung ein neues Token. Die Verwendung eines UUID der Version 4 wird empfohlen.
- Achten Sie darauf, dass die API-Schlüssel, die für alle „Place Autocomplete“- und „Place Details“-Anfragen innerhalb einer Sitzung verwendet werden, zum selben Cloud Console-Projekt gehören.
- Für jede neue Sitzung muss ein eindeutiges Sitzungstoken weitergegeben werden. Wenn Sie dasselbe Token für mehr als eine Sitzung verwenden, wird jede Anfrage separat in Rechnung gestellt.
-
strictbounds
Gibt nur die Orte zurück, die sich genau in der mit
locationundradiusdefinierten Region befinden. Dies ist eine Einschränkung und keine Voreingenommenheit. Das bedeutet, dass Ergebnisse außerhalb dieser Region nicht zurückgegeben werden, selbst wenn sie mit der Nutzereingabe übereinstimmen. -
Typen
Sie können die Ergebnisse einer Place Autocomplete-Anfrage auf einen bestimmten Typ beschränken, indem Sie den Parameter
typesübergeben. Mit diesem Parameter wird ein Typ oder werden mehrere Typen angegeben, wie unter Ortstypen aufgeführt. Wurde nichts angegeben, werden alle Typen zurückgegeben.Ein Ort kann nur einen primären Typ aus den in Tabelle 1 oder Tabelle 2 aufgeführten Typen haben. Ein Hotel, in dem Speisen serviert werden, wird beispielsweise möglicherweise nur mit
types=lodgingund nicht mittypes=restaurantzurückgegeben.Für den Wert des
types-Parameters können Sie Folgendes angeben:-
Bis zu fünf Werte aus Tabelle 1 oder Tabelle 2. Bei mehreren Werten trennen Sie die einzelnen Werte durch einen
|(senkrechten Strich). Beispiel:types=book_store|cafe -
Einen beliebigen unterstützten Filter aus Tabelle 3. Sie können keine Typensammlungen mischen.
Die Anfrage wird mit dem Fehler
INVALID_REQUESTabgelehnt, wenn: -
Beispiele für Place Autocomplete (Legacy)
Eine Anfrage für Einrichtungen, die den String „Amoeba“ in einem Gebiet mit dem Zentrum in San Francisco, Kalifornien, enthalten:
URL
https://maps.googleapis.com/maps/api/place/autocomplete/json ?input=amoeba &types=establishment &location=37.76999%2C-122.44696 &radius=500 &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=amoeba&types=establishment&location=37.76999%2C-122.44696&radius=500&key=YOUR_API_KEY'Dieselbe Anfrage, jedoch auf Ergebnisse im Umkreis von 500 Metern um Ashbury St & Haight St, San Francisco, beschränkt:
URL
https://maps.googleapis.com/maps/api/place/autocomplete/json ?input=amoeba &types=establishment &location=37.76999%2C-122.44696&radius=500 &strictbounds=true &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=amoeba&types=establishment&location=37.76999%2C-122.44696&radius=500&strictbounds=true&key=YOUR_API_KEY'Eine Anfrage für Adressen, die "Vict" enthalten, mit Ergebnissen in Französisch:
URL
https://maps.googleapis.com/maps/api/place/autocomplete/json ?input=Vict &types=geocode &language=fr &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=geocode&language=fr&key=YOUR_API_KEY'Eine Anfrage nach Städten mit „Vict“ mit Ergebnissen auf brasilianischem Portugiesisch:
URL
https://maps.googleapis.com/maps/api/place/autocomplete/json ?input=Vict &types=(cities) &language=pt_BR&key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=(cities)&language=pt_BR&key=YOUR_API_KEY'Sie müssen den API-Schlüssel in diesen Beispielen durch Ihren eigenen Schlüssel ersetzen.
Place Autocomplete-Antwort (Legacy)
Antworten für die automatische Vervollständigung von Orten (Legacy) werden im Format zurückgegeben, das durch das Flag output im URL-Pfad der Anfrage angegeben wird. Die folgenden Ergebnisse sind ein Hinweis darauf, was für eine Anfrage mit den folgenden Parametern zurückgegeben werden kann:
URL
https://maps.googleapis.com/maps/api/place/autocomplete/json ?input=Paris &types=geocode &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Paris&types=geocode&key=YOUR_API_KEY'JSON
{ "predictions": [ { "description": "Paris, France", "matched_substrings": [{ "length": 5, "offset": 0 }], "place_id": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ", "reference": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ", "structured_formatting": { "main_text": "Paris", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "France", }, "terms": [ { "offset": 0, "value": "Paris" }, { "offset": 7, "value": "France" }, ], "types": ["locality", "political", "geocode"], }, { "description": "Paris, TX, USA", "matched_substrings": [{ "length": 5, "offset": 0 }], "place_id": "ChIJmysnFgZYSoYRSfPTL2YJuck", "reference": "ChIJmysnFgZYSoYRSfPTL2YJuck", "structured_formatting": { "main_text": "Paris", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "TX, USA", }, "terms": [ { "offset": 0, "value": "Paris" }, { "offset": 7, "value": "TX" }, { "offset": 11, "value": "USA" }, ], "types": ["locality", "political", "geocode"], }, { "description": "Paris, TN, USA", "matched_substrings": [{ "length": 5, "offset": 0 }], "place_id": "ChIJ4zHP-Sije4gRBDEsVxunOWg", "reference": "ChIJ4zHP-Sije4gRBDEsVxunOWg", "structured_formatting": { "main_text": "Paris", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "TN, USA", }, "terms": [ { "offset": 0, "value": "Paris" }, { "offset": 7, "value": "TN" }, { "offset": 11, "value": "USA" }, ], "types": ["locality", "political", "geocode"], }, { "description": "Paris, Brant, ON, Canada", "matched_substrings": [{ "length": 5, "offset": 0 }], "place_id": "ChIJsamfQbVtLIgR-X18G75Hyi0", "reference": "ChIJsamfQbVtLIgR-X18G75Hyi0", "structured_formatting": { "main_text": "Paris", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "Brant, ON, Canada", }, "terms": [ { "offset": 0, "value": "Paris" }, { "offset": 7, "value": "Brant" }, { "offset": 14, "value": "ON" }, { "offset": 18, "value": "Canada" }, ], "types": ["neighborhood", "political", "geocode"], }, { "description": "Paris, KY, USA", "matched_substrings": [{ "length": 5, "offset": 0 }], "place_id": "ChIJsU7_xMfKQ4gReI89RJn0-RQ", "reference": "ChIJsU7_xMfKQ4gReI89RJn0-RQ", "structured_formatting": { "main_text": "Paris", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "KY, USA", }, "terms": [ { "offset": 0, "value": "Paris" }, { "offset": 7, "value": "KY" }, { "offset": 11, "value": "USA" }, ], "types": ["locality", "political", "geocode"], }, ], "status": "OK", }
XML
<?xml version="1.0" encoding="UTF-8"?> <AutocompletionResponse> <status>OK</status> <prediction> <description>Paris, France</description> <type>locality</type> <type>political</type> <type>geocode</type> <reference>ChIJD7fiBh9u5kcRYJSMaMOCCwQ</reference> <term> <value>Paris</value> <offset>0</offset> </term> <term> <value>France</value> <offset>7</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <place_id>ChIJD7fiBh9u5kcRYJSMaMOCCwQ</place_id> <structured_formatting> <description>Paris</description> <subdescription>France</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> </structured_formatting> </prediction> <prediction> <description>Paris, TX, USA</description> <type>locality</type> <type>political</type> <type>geocode</type> <reference>ChIJmysnFgZYSoYRSfPTL2YJuck</reference> <term> <value>Paris</value> <offset>0</offset> </term> <term> <value>TX</value> <offset>7</offset> </term> <term> <value>USA</value> <offset>11</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <place_id>ChIJmysnFgZYSoYRSfPTL2YJuck</place_id> <structured_formatting> <description>Paris</description> <subdescription>TX, USA</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> </structured_formatting> </prediction> <prediction> <description>Paris, TN, USA</description> <type>locality</type> <type>political</type> <type>geocode</type> <reference>ChIJ4zHP-Sije4gRBDEsVxunOWg</reference> <term> <value>Paris</value> <offset>0</offset> </term> <term> <value>TN</value> <offset>7</offset> </term> <term> <value>USA</value> <offset>11</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <place_id>ChIJ4zHP-Sije4gRBDEsVxunOWg</place_id> <structured_formatting> <description>Paris</description> <subdescription>TN, USA</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> </structured_formatting> </prediction> <prediction> <description>Paris, Brant, ON, Canada</description> <type>neighborhood</type> <type>political</type> <type>geocode</type> <reference>ChIJsamfQbVtLIgR-X18G75Hyi0</reference> <term> <value>Paris</value> <offset>0</offset> </term> <term> <value>Brant</value> <offset>7</offset> </term> <term> <value>ON</value> <offset>14</offset> </term> <term> <value>Canada</value> <offset>18</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <place_id>ChIJsamfQbVtLIgR-X18G75Hyi0</place_id> <structured_formatting> <description>Paris</description> <subdescription>Brant, ON, Canada</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> </structured_formatting> </prediction> <prediction> <description>Paris, KY, USA</description> <type>locality</type> <type>political</type> <type>geocode</type> <reference>ChIJsU7_xMfKQ4gReI89RJn0-RQ</reference> <term> <value>Paris</value> <offset>0</offset> </term> <term> <value>KY</value> <offset>7</offset> </term> <term> <value>USA</value> <offset>11</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <place_id>ChIJsU7_xMfKQ4gReI89RJn0-RQ</place_id> <structured_formatting> <description>Paris</description> <subdescription>KY, USA</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> </structured_formatting> </prediction> </AutocompletionResponse>
PlacesAutocompleteResponse
| Feld | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
|
required | Array<PlaceAutocompletePrediction> |
Enthält ein Array von Vorhersagen. Weitere Informationen finden Sie unter PlaceAutocompletePrediction. |
|
required | PlacesAutocompleteStatus |
Enthält den Status der Anfrage und möglicherweise Debugging-Informationen, mit deren Hilfe Sie herausfinden können, warum die Anfrage fehlgeschlagen ist. Weitere Informationen finden Sie unter PlacesAutocompleteStatus. |
|
optional | String |
Wenn der Dienst einen anderen Statuscode als |
|
optional | Array<string> |
Wenn der Dienst zusätzliche Informationen zur Anfragespezifikation zurückgibt, kann im Antwortobjekt ein zusätzliches |
Besonders interessant in den Ergebnissen sind die place_id-Elemente, mit denen Sie in einer separaten Anfrage genauere Details zum Ort abrufen können. Weitere Informationen finden Sie unter „Place Details“-Anfragen (Legacy).
Eine XML-Antwort besteht aus einem einzelnen <AutocompletionResponse>-Element mit zwei Arten von untergeordneten Elementen:
- Ein einzelnes
<status>-Element enthält Metadaten zur Anfrage. Weitere Informationen finden Sie unten im Abschnitt Statuscodes. - Null oder mehr
<prediction>-Elemente, die jeweils Informationen zu einem einzelnen Ort enthalten. Weitere Informationen zu diesen Ergebnissen finden Sie unter Place Autocomplete (Legacy) Results. Die Places API gibt bis zu fünf Ergebnisse zurück.
Wir empfehlen, json als bevorzugtes Ausgabeflag zu verwenden, es sei denn, Ihre Anwendung erfordert aus irgendeinem Grund xml.
Die Verarbeitung von XML-Strukturen erfordert einige Sorgfalt, damit Sie auf die richtigen Knoten und Elemente verweisen. Weitere Informationen zum Verarbeiten von XML finden Sie unter XML mit XPath verarbeiten.
PlacesAutocompleteStatus
Statuscodes, die vom Dienst zurückgegeben werden.
OK: Die API-Anfrage war erfolgreich.-
ZERO_RESULTSgibt an, dass die Suche erfolgreich war, aber keine Ergebnisse zurückgegeben wurden. Dieser Fehler kann auftreten, wenn bei der Suche Grenzen an einem abgelegenen Ort übergeben wurden. -
INVALID_REQUEST: Die API-Anfrage war fehlerhaft, in der Regel aufgrund des fehlenden Parametersinput. -
OVER_QUERY_LIMIT, die Folgendes angibt:- Sie haben die Limits für die maximal zulässige Anzahl von Abfragen pro Sekunde überschritten.
- Die Abrechnung wurde für Ihr Konto nicht aktiviert.
- Das monatliche Guthaben von 200 $oder das von Ihnen festgelegte Nutzungslimit wurde überschritten.
- Die angegebene Zahlungsmethode ist nicht mehr gültig. Das kann z. B. bei einer abgelaufenen Kreditkarte der Fall sein.
-
REQUEST_DENIEDgibt an, dass Ihre Anfrage abgelehnt wurde. Das liegt in der Regel daran, dass:- In der Anfrage fehlt ein API-Schlüssel.
- Der Parameter
keyist ungültig.
UNKNOWN_ERROR: Ein unbekannter Fehler ist aufgetreten.
Wenn der Places-Dienst JSON-Ergebnisse für eine Suche zurückgibt, werden diese in einem predictions-Array platziert. Auch wenn der Dienst keine Ergebnisse zurückgibt (z. B. wenn location remote ist), wird trotzdem ein leeres predictions-Array zurückgegeben. XML-Antworten bestehen aus null oder mehr <prediction>-Elementen.
PlaceAutocompletePrediction
| Feld | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
|
erforderlich | String |
Enthält den für Menschen lesbaren Namen für das zurückgegebene Ergebnis. Bei |
|
required | Array<PlaceAutocompleteMatchedSubstring> |
Eine Liste mit Teilstrings, die die Position des eingegebenen Begriffs im Text des Vorhersageergebnisses beschreiben, damit der Begriff bei Auswahl hervorgehoben werden kann. Weitere Informationen finden Sie unter PlaceAutocompleteMatchedSubstring. |
|
required | PlaceAutocompleteStructuredFormat |
Stellt vorformatierten Text bereit, der in den Ergebnissen der automatischen Vervollständigung angezeigt werden kann. Dieser Inhalt ist so zu lesen, wie er ist. Die formatierte Adresse darf nicht programmatisch geparst werden. Weitere Informationen finden Sie unter PlaceAutocompleteStructuredFormat. |
|
required | Array<PlaceAutocompleteTerm> |
Enthält ein Array von Begriffen, die die einzelnen Abschnitte der zurückgegebenen Beschreibung identifizieren. Ein Abschnitt der Beschreibung wird in der Regel mit einem Komma abgeschlossen. Jeder Eintrag im Array hat ein Feld Weitere Informationen finden Sie unter PlaceAutocompleteTerm. |
|
optional | integer |
Die Luftlinie in Metern vom Ursprung. Dieses Feld wird nur für Anfragen zurückgegeben, die mit einem |
|
optional | String |
Eine ID in Textform, die einen Ort eindeutig bezeichnet. Wenn Sie Informationen zum Ort abrufen möchten, geben Sie diese ID im Feld „placeId“ einer Places API-Anfrage weiter. Weitere Informationen zu Orts-IDs finden Sie in der Übersicht zu Orts-IDs. |
|
optional | String |
Weitere Informationen finden Sie unter place_id. |
|
optional | Array<string> |
Enthält ein Array von Typen, die für diesen Ort gelten. Beispiel:
|
PlaceAutocompleteMatchedSubstring
| Feld | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
|
erforderlich | Zahl |
Länge des übereinstimmenden Teilstrings im Vorhersageergebnistext. |
|
required | Zahl |
Startposition des übereinstimmenden Teilstrings im Text des Vorhersageergebnisses. |
PlaceAutocompleteStructuredFormat
| Feld | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
|
erforderlich | String |
Enthält den Haupttext einer Vorhersage, in der Regel den Namen des Orts. |
|
required | Array<PlaceAutocompleteMatchedSubstring> |
Enthält ein Array mit dem Wert Weitere Informationen finden Sie unter PlaceAutocompleteMatchedSubstring. |
|
optional | String |
Enthält den sekundären Text einer Vorhersage, in der Regel den Standort des Orts. |
|
optional | Array<PlaceAutocompleteMatchedSubstring> |
Enthält ein Array mit dem Wert Weitere Informationen finden Sie unter PlaceAutocompleteMatchedSubstring. |
PlaceAutocompleteTerm
| Feld | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
|
erforderlich | Zahl |
Definiert die Startposition dieses Begriffs in der Beschreibung, gemessen in Unicode-Zeichen. |
|
required | String |
Der Text des Begriffs. |
Place Autocomplete (Legacy) optimieren
Hier finden Sie Best Practices, damit Sie den Place Autocomplete-Dienst (Legacy) optimal nutzen können.
Allgemeine Richtlinien:
- Am schnellsten lässt sich eine funktionsfähige Benutzeroberfläche mit dem Place Autocomplete (Legacy)-Widget der Maps JavaScript API, dem Place Autocomplete (Legacy)-Widget des Places SDK for Android oder dem Place Autocomplete (Legacy)-UI-Steuerelement des Places SDK for iOS entwickeln.
- Machen Sie sich zu Beginn mit den wichtigsten Datenfeldern von Place Autocomplete (Legacy) vertraut.
- Die Felder zur Standortgewichtung und Standortbeschränkung sind optional, können aber erhebliche Auswirkungen auf die Leistung der automatischen Vervollständigung haben.
- Verwenden Sie die Fehlerbehandlung, wenn die API einen Fehler zurückgibt, damit die Anwendung fehlertolerant reagiert.
- Die Anwendung sollte Anfragen weiter verarbeiten und weiter funktionieren, auch wenn keine Auswahl getroffen wird.
Best Practices für die Kostenoptimierung
Einfache Kostenoptimierung
Wenn Sie die Kosten für die Nutzung des Place Autocomplete-Dienstes (Legacy) optimieren möchten, verwenden Sie Feldmasken in Place Details- (Legacy) und Place Autocomplete-Widgets (Legacy), damit nur die erforderlichen Datenfelder für Place Autocomplete (Legacy) zurückgegeben werden.
Erweiterte Kostenoptimierung
Wenn Sie Place Autocomplete (Legacy) programmatisch implementieren, erhalten Sie Zugriff auf die SKU: Autocomplete – Preise pro Anfrage und können Geocoding API-Ergebnisse für den ausgewählten Ort anstelle von Place Details (Legacy)-Ergebnissen anfordern. Wenn Sie die Kosten pro Anfrage mit der Geocoding API kombinieren, ist das kosteneffizienter als die Verwendung von Kosten pro Sitzung (sitzungsbasiert), sofern die beiden folgenden Bedingungen erfüllt werden:
- Wenn Sie nur den Breiten- und Längengrad oder die Adresse des vom Nutzer ausgewählten Orts abrufen möchten, erhalten Sie entsprechende Informationen über die Geocoding API, für die weniger Kosten anfallen als bei einem Place Details (Legacy)-Aufruf.
- Wenn Nutzer eine automatische Vervollständigung bei durchschnittlich maximal 4 entsprechenden Anfragen auswählen, ist der Preis pro Anfrage möglicherweise kosteneffizienter als der Preis pro Sitzung.
Benötigt Ihre Anwendung weitere Informationen als Adresse und Breiten-/Längengrad des ausgewählten Vorschlags?
Ja, weitere Details sind erforderlich.
Verwenden Sie das sitzungsbasierte Place Autocomplete-Modell (alt) mit Place Details (alt).
Da für Ihre Anwendung „Place Details (Legacy)“ wie Ortsname, Unternehmensstatus oder Öffnungszeiten erforderlich sind, sollte für die Implementierung von „Place Autocomplete (Legacy)“ ein Sitzungstoken (programmatisch oder in die JavaScript-, Android- oder iOS-Widgets integriert) pro Sitzung sowie die entsprechenden Places Data-SKUs verwendet werden, je nachdem, welche Ortsdatenfelder Sie anfordern.1
Widget-Implementierung
Die Sitzungsverwaltung ist automatisch in das
JavaScript,
Android oder iOS
integriert. Das umfasst sowohl Place Autocomplete (Legacy)-Anfragen als auch die Place Details (Legacy)-Anfrage für den ausgewählten Vorschlag. Der fields-Parameter muss festgelegt werden, damit nur die erforderlichen Datenfelder für die automatische Vervollständigung von Orten (Legacy) angefordert werden.
Programmatische Implementierung
Verwenden Sie für Place Autocomplete-Anfragen (Legacy) ein Sitzungstoken. Binden Sie die folgenden Parameter ein, wenn Sie Details zum Ort (Legacy) für den ausgewählten Vorschlag anfordern:
- Die Orts-ID aus der Place Autocomplete (Legacy)-Antwort
- Das Sitzungstoken, das in der Place Autocomplete-Anfrage (Legacy) verwendet wird
- Den
fields-Parameter, mit dem die erforderlichen Datenfelder von Place Autocomplete (Legacy) angegeben werden
Nein, es sind nur Adresse und Standort erforderlich.
Wenn Sie Place Autocomplete (Legacy) in Ihrer Anwendung stark nutzen, kann es kostengünstiger sein, anstelle von Place Details (Legacy) die Geocoding API zu verwenden. Die Effizienz der Place Autocomplete-Funktion (Legacy) jeder Anwendung hängt davon ab, was die Nutzer eingeben, wo die Anwendung verwendet wird und ob die Best Practices zur Leistungsoptimierung implementiert wurden.
Um die folgende Frage beantworten zu können, analysieren Sie, wie viele Zeichen Nutzer durchschnittlich eingeben, bevor sie in Ihrer Anwendung einen Place Autocomplete-Vorschlag (Legacy) auswählen.
Wählen Ihre Nutzer durchschnittlich bei 4 oder weniger Anfragen einen Place Autocomplete-Vorschlag (Legacy) aus?
Ja
Implementieren Sie Place Autocomplete (Legacy) programmatisch ohne Sitzungstokens und rufen Sie die Geocoding API für den ausgewählten Ortsvorschlag auf.
Über die Geocoding API erhalten Sie Adressen und Breiten-/Längenkoordinaten.
Wenn 4 Autocomplete-Anfragen mit Preis pro Anfrage ausgeführt werden, fallen Kosten von 0,01132 $ an. Die Gesamtkosten der 4 Anfragen plus die Kosten für einen Geocoding API-Aufruf zum ausgewählten Ortsvorschlag betragen 0,01632 $, also weniger als der Preis pro Sitzung mit automatischer Vervollständigung von Orten (Legacy) von 0,017 $ pro Sitzung.1
Wenn Sie die Best Practices zur Leistung beachten, erhalten Ihre Nutzer bereits mit weniger eingegebenen Zeichen passende Vorschläge.
Nein
Verwenden Sie das sitzungsbasierte Place Autocomplete-Modell (alt) mit Place Details (alt).
Da die durchschnittliche Anzahl der Anfragen, die Sie voraussichtlich stellen, bevor ein Nutzer einen Place Autocomplete (Legacy)-Vorschlag auswählt, die Kosten für die Preisgestaltung pro Sitzung übersteigt, sollten Sie für die Implementierung von Place Autocomplete (Legacy) ein Sitzungstoken sowohl für die Place Autocomplete (Legacy)-Anfragen als auch für die zugehörige Place Details (Legacy)-Anfrage verwenden.
1
Widget-Implementierung
Die Sitzungsverwaltung ist automatisch in das
JavaScript,
Android oder iOS
integriert. Das umfasst sowohl Place Autocomplete (Legacy)-Anfragen als auch die Place Details (Legacy)-Anfrage für den ausgewählten Vorschlag. Der fields-Parameter muss festgelegt werden, damit nur die erforderlichen Felder angefordert werden.
Programmatische Implementierung
Verwenden Sie für Place Autocomplete-Anfragen (Legacy) ein Sitzungstoken.
Binden Sie die folgenden Parameter ein, wenn Sie Details zum Ort (Legacy) für den ausgewählten Vorschlag anfordern:
- Die Orts-ID aus der Place Autocomplete (Legacy)-Antwort
- Das Sitzungstoken, das in der Place Autocomplete-Anfrage (Legacy) verwendet wird
- Den
fields-Parameter, mit dem grundlegende Datenfelder wie das Feld „Adresse“ oder „Geometrie“ angegeben werden
Place Autocomplete-Anfragen (Legacy) verzögern
Sie können Place Autocomplete-Anfragen (Legacy) verzögern, bis der Nutzer die ersten 3 oder 4 Zeichen eingegeben hat, damit weniger Anfragen über die Anwendung gestellt werden. Wenn Sie beispielsweise Place Autocomplete-Anfragen (Legacy) für jedes Zeichen nach dem dritten Zeichen des Nutzers senden, bedeutet das, dass bei einer Eingabe von sieben Zeichen und einer Auswahl eines Vorschlags, für den Sie eine Geocoding API-Anfrage senden, die Gesamtkosten für 4 Place Autocomplete-Anfragen (Legacy) mit Preis pro Anfrage + Geocoding anfallen.1
Wenn sich durch das Verzögern von Anfragen Ihre durchschnittliche Anzahl programmatischer Anfragen auf unter 4 senken lässt, empfehlen wir, die Anleitung für eine leistungsstarke Place Autocomplete-Funktion (Legacy) mit Geocoding API-Implementierung zu beachten. Das Verzögern von Anfragen wird vom Nutzer, der evtl. bei jedem eingegebenen Zeichen mit Vorschlägen rechnet, möglicherweise als Latenz wahrgenommen.
Wenn Sie die Best Practices zur Leistung beachten, erhalten Ihre Nutzer bereits mit weniger eingegebenen Zeichen passende Vorschläge.
-
Informationen zu den Kosten finden Sie in den Preislisten für die Google Maps Platform.
Best Practices für die Leistung
Im Folgenden finden Sie Tipps zum Optimieren der Place Autocomplete (Legacy)-Leistung:
- Binden Sie in Ihre Place Autocomplete (Legacy)-Implementierung länderspezifische Einschränkungen, eine Standortgewichtung und (bei programmatischen Implementierungen) eine Spracheinstellung ein. Die Spracheinstellung ist bei Widgets nicht erforderlich, weil bei ihnen die Spracheinstellungen aus dem Browser oder vom Mobilgerät des Nutzers übernommen werden.
- Wenn Place Autocomplete (Legacy) mit einer Karte kombiniert wird, können Sie den Standort anhand des Darstellungsbereichs der Karte gewichten.
- Wenn ein Nutzer keinen der Vorschläge von Place Autocomplete (Legacy) auswählt, was in der Regel geschieht, wenn es sich bei keinem Vorschlag um die gewünschte Adresse handelt, können Sie anhand der ursprünglichen Nutzereingabe versuchen, relevantere Ergebnisse zu erhalten:
- Wenn der Nutzer voraussichtlich nur Adressinformationen eingibt, können Sie die ursprüngliche Nutzereingabe bei einem Aufruf der Geocoding API noch einmal verwenden.
- Wenn Sie davon ausgehen, dass der Nutzer Abfragen für einen bestimmten Ort mithilfe von Name oder Adresse eingibt, verwenden Sie eine Place Details-Anfrage (Legacy). Wenn nur in einer bestimmten Region Ergebnisse erwartet werden, nutzen Sie die Standortgewichtung.
- Nutzer geben Adressen für untergeordnete Gebäude ein, z. B. Adressen für bestimmte Einheiten oder Wohnungen innerhalb eines Gebäudes. So wird bei der tschechischen Adresse „Stroupežnického 3191/17, Praha“ z. B. eine teilweise Vervollständigung in Place Autocomplete (Legacy) ausgegeben.
- Wenn Nutzer Adressen mit Präfixen für Straßenabschnitte eingeben, z. B. „23-30 29th St, Queens“ in New York City oder „47-380 Kamehameha Hwy, Kaneohe“ auf der Insel Kauai in Hawaii
Standortgewichtung
Sie können die Ergebnisse zugunsten eines bestimmten Gebiets gewichten, indem Sie einen location-Parameter und einen radius-Parameter übergeben. Dadurch wird Place Autocomplete (Legacy) angewiesen, vorzugsweise Ergebnisse innerhalb des definierten Bereichs anzuzeigen. Ergebnisse außerhalb dieses Bereichs können aber trotzdem angezeigt werden. Mit dem Parameter includedRegionCodes können Sie die Ergebnisse filtern, sodass nur Orte in einem bestimmten Land angezeigt werden.
Standorteinschränkung
Sie können die Ergebnisse auf einen bestimmten Bereich beschränken, indem Sie einen locationRestriction-Parameter übergeben.
Sie können die Ergebnisse auch auf die Region beschränken, die durch location und den Parameter radius definiert wird, indem Sie den Parameter strictbounds hinzufügen. Dadurch wird der Place Autocomplete-Dienst (Legacy) angewiesen, nur Ergebnisse innerhalb dieser Region zurückzugeben.