Autocomplete
Die SmartMaps Autocomplete API stellt Endpunkte für die Durchführung von Autocomplete-Suchen auf geografischen Daten bereit. Sie ermöglicht die Suche nach Städten, Straßen, Points of Interest und anderen räumlichen Entitäten.
Authentifizierung
Bearer-Token erforderlich
Die Autocomplete API akzeptiert Ihren API-Key nicht direkt. Sie müssen Ihren API-Key zunächst gegen ein kurzlebiges Bearer-Token eintauschen und dieses in jeder Anfrage mitsenden.
Das Token erhalten Sie über:
Tokens laufen nach 10 Minuten ab — Ihre Anwendung muss vor Ablauf ein neues Token anfordern.
Vollständige Details finden Sie unter Token API. Wenn Sie die manuelle Token-Verwaltung vermeiden möchten, verwenden Sie stattdessen die Autocomplete Library.
Endpunkte
Führt eine Autocomplete-Suche anhand des angegebenen Such-Strings und optionaler Parameter durch.
URL: https://autocomplete.smartmaps.cloud/api/v5/Autocomplete
Methoden: POST
Parameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
query |
string | Der Eingabe-String für die Autocomplete-Anfrage. |
geoJson |
boolean | Legt den Rückgabetyp fest. Bei true werden die Daten als GeoJSON zurückgegeben. Bei false wird die Ergebnisliste als JSON zurückgegeben. Standard ist false. |
boostOptions |
object | Optionen zur Gewichtung der Ergebnisse anhand geografischer Nähe oder einer Bounding Box. |
boostOptions.proximityBoost |
object | Gewichtet die Ergebnisliste anhand einer geografischen Koordinate und eines Radius. |
boostOptions.proximityBoost.radius |
number | Der Radius für den Proximity Boost. |
boostOptions.proximityBoost.value |
number | Der Gewichtungswert für den Proximity Boost. |
boostOptions.boundingBoxBoost |
object | Gewichtet die Ergebnisliste anhand eines Rechtecks. |
boostOptions.boundingBoxBoost.value |
number | Der BoundingBoxBoost gewichtet die Ergebnisliste anhand eines Rechtecks. Das Bounding-Box-Rechteck. Je höher der value in boundingBoxBoost, desto stärker werden Ergebnisse im Rechteck bevorzugt. Das Rechteck wird über den Parameter boundingbox übergeben (siehe unten). |
boundingbox |
object | Definiert das Bounding-Box-Rechteck für boostOptions.boundingBoxBoost. |
boundingbox.leftDown |
object | Die untere linke Ecke der Bounding Box. |
boundingbox.leftDown.latitude |
number | Der Breitengrad der unteren linken Ecke. |
boundingbox.leftDown.longitude |
number | Der Längengrad der unteren linken Ecke. |
boundingbox.rightUp |
object | Die obere rechte Ecke der Bounding Box. |
boundingbox.rightUp.latitude |
number | Der Breitengrad der oberen rechten Ecke. |
boundingbox.rightUp.longitude |
number | Der Längengrad der oberen rechten Ecke. |
center |
object | Definiert die geografische Koordinate für den Mittelpunkt des boostOptions.proximityBoost. |
center.latitude |
number | Der Breitengrad des Mittelpunkts. |
center.longitude |
number | Der Längengrad des Mittelpunkts. |
isoCountries |
array | Ein Array von Ländercodes (ISO-3166-2), um die Suche auf bestimmte Länder zu beschränken. Wird nichts angegeben, wird in allen unterstützten Ländern gesucht. |
isoLanguages |
array | Ein Array von Sprachcodes (ISO-639-1), um die zurückzugebenden Lokalisierungen festzulegen. Wird nichts angegeben, werden alle unterstützten Sprachen zurückgegeben. |
filterOptions |
object | Optionen zum Filtern der Ergebnisse. |
filterOptions.plzSearch |
boolean | Bei true werden nur Ergebnisse mit einer Postleitzahl zurückgegeben. Standard ist false. |
filterOptions.includedGeoEntities |
array | Ein Array räumlicher Datentypen, die in die Ergebnisse einbezogen werden sollen. Unterstützte Typen: AIRPORT, CITY, CITY_WITH_ZIP, CITYPART, CITYPART_WITH_ZIP, COUNTY, COUNTRY, DISTRICT, NEIGHBOURHOOD, STATE, STREET, STREET_WITHOUT_CITY, TRAIN_STATION, ZIP, ISLAND, VILLAGE, ATTRACTION. |
filterOptions.excludedGeoEntities |
array | Ein Array räumlicher Datentypen, die von den Ergebnissen ausgeschlossen werden sollen. Unterstützte Typen sind dieselben wie bei includedGeoEntities. |
filterOptions.inBoundingBox |
boolean | Bei true werden nur Ergebnisse innerhalb der angegebenen Bounding Box zurückgegeben. Standard ist false. |
top |
integer | Begrenzt die Anzahl der Ergebnisse in der Ergebnisliste. Standard ist 5. |
Antwort:
Die Antwort ist je nach geoJson-Parameter entweder ein geoEntities-Array oder eine GeoJSON-FeatureCollection.
| Name | Beschreibung | Datentyp |
|---|---|---|
| geoEntityType | Gibt den betreffenden Typ an: COUNTY, COUNTRY, DISTRICT, NEIGHBOURHOOD, STATE, STREET, STREET_WITHOUT_CITY, TRAIN_STATION, AIRPORT, ZIP | string |
| countryLongName | Gibt das Land an. | string |
| country | Gibt das Land als Alpha-2-Code an. | string |
| state | Gibt das Bundesland an. | string |
| neighbourhood | Gibt den Stadtteil an. | string |
| district | Gibt den Bezirk an. | string |
| county | Gibt den Landkreis an. | string |
| city | Gibt die Stadt an. | string |
| cityPart | Gibt den Ortsteil an. | string |
| zip | Gibt die Postleitzahl an. | string |
| street | Gibt die Straße an. | string |
| village | Gibt den Ort an. | string |
| houseNo | Gibt die Hausnummer an. | string |
| geometry | Gibt einen geografischen Punkt (Längengrad, Breitengrad) an, an dem sich das Element befindet. Dieser kann auf der Karte angezeigt werden, siehe auch die Definition von geoJson. | {} |
| poi | Gibt den Point of Interest an. | string |
| osmid | Gibt die osmid des Objekts an. | int |
| repositoryScore | Zeigt den Score an, der die Relevanz angibt. Je höher, desto relevanter. | double |
| displayValue | Text, der das Element beschreibt. | string |
Beispielantwort
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
13.3814763,
52.5035788
]
},
"properties": {
"geoEntityType": "TRAIN_STATION",
"countryLongName": "Deutschland",
"country": "DE",
"state": "Berlin",
"neighbourhood": null,
"district": null,
"county": null,
"city": "Berlin",
"cityPart": "Kreuzberg",
"zip": "10963",
"street": "Schöneberger Straße",
"village": null,
"houseNo": null,
"poi": "S Anhalter Bahnhof",
"_osmid": 0,
"repositoryScore": 107.5996,
"displayValue": "S Anhalter Bahnhof, Schöneberger Straße, 10963"
}
},
...
]
}
Fehlerbehandlung
Die API kann die folgenden Fehlercodes zurückgeben:
400 Bad Request: Die Anfrage wurde fehlerhaft gestellt, z. B. aufgrund eines Syntaxfehlers im JSON.401 Unauthorized: Das Bearer-Token wurde nicht mitgesendet oder ist ungültig.500 Internal Server Error: Auf der Serverseite ist ein allgemeiner Fehler aufgetreten.
Swagger-Dokumentation
Weitere detaillierte Informationen zu den API-Endpunkten, Parametern und Antwortstrukturen finden Sie in der Swagger-Dokumentation.
Sie können die OpenAPI-Definition (https://autocomplete.smartmaps.cloud/swagger/v1/swagger.json) auch direkt in Postman, Insomnia oder ähnliche API-Clients importieren.