Anfrage und Antwort für umgekehrte Geocodierung (Adresssuche)

Der Begriff Geocoding bezeichnet im Allgemeinen die Umwandlung einer Adresse in visuell lesbarer Form in einen Ort auf einer Karte. Der umgekehrte Vorgang, also die Umwandlung eines Standorts auf einer Karte in eine Adresse in visuell lesbarer Form, wird als umgekehrte Geocodierung bezeichnet.

Anfragen für umgekehrtes Geocoding

Erforderliche Parameter

  • latlng: Die Breiten- und Längengrade, die den Standort angeben, für den die nächste menschenlesbare Adresse zurückgegeben werden soll.
  • key: Der API-Schlüssel Ihrer Anwendung. Dieser Schlüssel identifiziert Ihre Anwendung zum Zweck der Kontingentverwaltung. Weitere Informationen zum Abrufen eines Schlüssels

Optionale Parameter

Die folgenden optionalen Parameter können in eine Anfrage für die umgekehrte Geocodierung einbezogen werden:

  • language: Die Sprache, in der die Ergebnisse zurückgegeben werden sollen.
    • Hier finden Sie eine Liste der unterstützten Sprachen. Die unterstützten Sprachen werden von Google häufig aktualisiert. Daher ist diese Liste unter Umständen nicht vollständig.
    • Wird language nicht angegeben, versucht der Geocoder, die im Accept-Language-Header angegebene bevorzugte Sprache oder die Muttersprache der Domain zu verwenden, von der die Anfrage gesendet wurde.
    • Der Geocoder versucht möglichst, eine Adresse anzugeben, die sowohl für Nutzer als auch für Ortsansässige lesbar ist. Dazu werden Adressen in der lokalen Sprache zurückgegeben und bei Bedarf in ein für den Nutzer lesbares Skript transkribiert. 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 in der ersten Komponente ausgewählt wird.
    • Wenn ein Name in der bevorzugten Sprache nicht verfügbar ist, verwendet der Geocoder die höchste Übereinstimmung.
  • region: Der Regionscode, der als zweistelliger ccTLD-Wert („Top-Level-Domain“) angegeben wird. Der Parameter kann sich gemäß anwendbarem Recht auch auf die Ergebnisse auswirken.
  • result_type: Ein Filter mit einem oder mehreren Adresstypen, die durch einen senkrechten Strich (|) getrennt sind. Wenn der Parameter mehrere Adresstypen enthält, gibt die API alle Adressen zurück, die einem der Typen entsprechen. Hinweis zur Verarbeitung: Mit dem Parameter result_type wird die Suche nicht auf die angegebenen Adresstypen restrict. Stattdessen fungiert result_type als Post-Search-Filter: Die API ruft alle Ergebnisse für den angegebenen latlng ab und verwirft dann die Ergebnisse, die nicht den angegebenen Adresstypen entsprechen. Die folgenden Werte werden unterstützt:
    • street_address gibt eine genaue Adresse an.
    • route gibt eine Straße mit einer Bezeichnung an, z. B. „B1“.
    • intersection gibt eine größere Kreuzung, üblicherweise von 2 Hauptstraßen an.
    • political gibt eine politische Einheit an. Dieser Typ stellt meistens ein Polygon einer öffentlichen Einrichtung dar.
    • country gibt eine staatliche politische Einheit (Land) an und ist normalerweise der Typ mit dem höchsten Rang, der vom Geocoder zurückgegeben wird.
    • administrative_area_level_1 gibt eine öffentliche Verwaltungseinheit 1 Stufe unterhalb der Landesebene an. In den USA sind diese Verwaltungsebenen z. B. die Bundesstaaten. Diese Verwaltungsebenen gibt es nicht in allen Ländern. In den meisten Fällen sind Kurzbezeichnungen dieses Typs eng an die Untereinheiten des Standards ISO 3166-2 und andere gängige Definitionen angelehnt. Eine Garantie hierfür können wir jedoch nicht geben, da unsere Geocoding-Ergebnisse auf verschiedenen Signalen und Standortdaten basieren.
    • administrative_area_level_2 gibt eine öffentliche Verwaltungseinheit 2 Stufen unterhalb der Landesebene an. In den USA sind diese Verwaltungsebenen z. B. die Countys. Diese Verwaltungsebenen gibt es nicht in allen Ländern.
    • administrative_area_level_3 gibt eine öffentliche Verwaltungseinheit 3 Stufen unterhalb der Landesebene an. Dieser Typ steht für eine kleine Verwaltungseinheit von geringerer Bedeutung. Diese Verwaltungsebenen gibt es nicht in allen Ländern.
    • administrative_area_level_4 gibt eine öffentliche Verwaltungseinheit 4 Stufen unterhalb der Landesebene an. Dieser Typ steht für eine kleine Verwaltungseinheit von geringerer Bedeutung. Diese Verwaltungsebenen gibt es nicht in allen Ländern.
    • administrative_area_level_5 gibt eine öffentliche Verwaltungseinheit 5 Stufen unterhalb der Landesebene an. Dieser Typ steht für eine kleine Verwaltungseinheit von geringerer Bedeutung. Diese Verwaltungsebenen gibt es nicht in allen Ländern.
    • administrative_area_level_6 gibt eine öffentliche Verwaltungseinheit 6 Stufen unterhalb der Landesebene an. Dieser Typ steht für eine kleine Verwaltungseinheit von geringerer Bedeutung. Diese Verwaltungsebenen gibt es nicht in allen Ländern.
    • administrative_area_level_7 gibt eine öffentliche Verwaltungseinheit 7 Stufen unterhalb der Landesebene an. Dieser Typ steht für eine kleine Verwaltungseinheit von geringerer Bedeutung. Diese Verwaltungsebenen gibt es nicht in allen Ländern.
    • colloquial_area gibt eine gängige alternative Bezeichnung für die Einheit an.
    • locality gibt die politische Einheit einer Stadt oder Gemeinde an.
    • sublocality gibt eine öffentliche Verwaltungseinheit eine Stufe unterhalb des Ortes an. Für einige Standorte wird möglicherweise einer der folgenden zusätzlichen Typen ausgegeben: sublocality_level_1 bis sublocality_level_5. Jede dieser Ebenen entspricht einer Verwaltungseinheit. Je höher die Zahl, desto kleiner das geografische Gebiet.
    • neighborhood gibt ein benanntes Stadtviertel an.
    • premise gibt einen benannten Ort an, normalerweise ein Gebäude oder einen Komplex von Gebäuden mit einem gemeinsamen Namen.
    • subpremise gibt eine erstrangige Einheit unterhalb der Ebene eines benannten Ortes an, normalerweise ein einzelnes Gebäude innerhalb eines Gebäudekomplexes mit einem gemeinsamen Namen.
    • plus_code gibt einen codierten Verweis auf den Standort an, der sich aus Breiten- und Längengrad ableiten lässt. Plus Codes können als Ersatz für Adressen verwendet werden, wenn keine Adressen vorhanden sind, z. B. wenn Gebäude keine Hausnummern oder Straßen keine Namen haben. Weitere Informationen finden Sie unter https://plus.codes.
    • postal_code gibt eine Postleitzahl an, wie sie zum Adressieren von Postsendungen innerhalb des Landes verwendet wird.
    • natural_feature gibt ein auffallendes Landschaftsmerkmal an.
    • airport gibt einen Flughafen an.
    • park gibt einen benannten Park an.
    • point_of_interest gibt einen benannten POI an. In der Regel sind diese POIs bekannte lokale Objekte, die sich keiner anderen Kategorie zuordnen lassen, z. B. das Brandenburger Tor oder der Eiffelturm.
  • location_type: Ein Filter mit einem oder mehreren Standorttypen, die durch einen senkrechten Strich (|) getrennt sind. Wenn der Parameter mehrere Standorttypen enthält, gibt die API alle Adressen zurück, die einem der Typen entsprechen. Hinweis zur Verarbeitung: Durch den Parameter location_type wird die Suche nicht auf die angegebenen Standorttypen restrict. Stattdessen fungiert location_type als Post-Search-Filter: Die API ruft alle Ergebnisse für den angegebenen latlng ab und verwirft dann die Ergebnisse, die nicht den angegebenen Standorttypen entsprechen. Folgende Werte werden unterstützt:
    • "ROOFTOP" gibt nur Adressen zurück, für die Google Standortinformationen bis zur Straßenpräzision vorliegen.
    • "RANGE_INTERPOLATED" gibt nur die Adressen zurück, die eine Schätzung widerspiegeln (normalerweise auf einer Straße), die zwischen zwei genauen Punkten (z. B. Kreuzungen) interpoliert wurde. Ein interpolierter Bereich weist in der Regel darauf hin, dass Geocodierungen auf dem Dach für eine Adresse nicht verfügbar sind.
    • "GEOMETRIC_CENTER" gibt nur die geometrischen Mittelpunkte eines Ortes zurück, z. B. einer Polylinie (z. B. einer Straße) oder eines Polygons (einer Region).
    • "APPROXIMATE" gibt nur die Adressen zurück, die als Näherungswerte gekennzeichnet sind.

Wenn sowohl der result_type- als auch der location_type-Filter vorhanden sind, gibt die API nur die Ergebnisse zurück, die sowohl mit dem result_type- als auch mit den location_type-Werten übereinstimmen. Wenn keiner der Filterwerte akzeptabel ist, gibt die API ZERO_RESULTS zurück.

Beispiel für die umgekehrte Geocodierung

Die folgende Abfrage enthält den Breiten- und Längengrad-Wert für einen Ort in Brooklyn:

https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY

Die obige Abfrage gibt folgendes Ergebnis zurück:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "277",
               "short_name" : "277",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Bedford Avenue",
               "short_name" : "Bedford Ave",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Williamsburg",
               "short_name" : "Williamsburg",
               "types" : [ "neighborhood", "political" ]
            },
            {
               "long_name" : "Brooklyn",
               "short_name" : "Brooklyn",
               "types" : [ "sublocality", "political" ]
            },
            {
               "long_name" : "Kings",
               "short_name" : "Kings",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "New York",
               "short_name" : "NY",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "11211",
               "short_name" : "11211",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "277 Bedford Avenue, Brooklyn, NY 11211, USA",
         "geometry" : {
            "location" : {
               "lat" : 40.714232,
               "lng" : -73.9612889
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
               "northeast" : {
                  "lat" : 40.7155809802915,
                  "lng" : -73.9599399197085
               },
               "southwest" : {
                  "lat" : 40.7128830197085,
                  "lng" : -73.96263788029151
               }
            }
         },
         "place_id" : "ChIJd8BlQ2BZwokRAFUEcm_qrcA",
         "types" : [ "street_address" ]
      },

  ... Additional <code>results[]</code> ...

Beachten Sie, dass das umgekehrte Geocoding mehr als ein Ergebnis zurückgegeben hat. Bei den "formatted_address"-Ergebnissen handelt es sich nicht nur um Postanschriften, sondern auch um eine geografische Bezeichnung für einen Ort. Wenn Sie beispielsweise einen Punkt in der Stadt Chicago geocodieren, kann er als Adresse, als Stadt (Chicago), als Bundesstaat (Illinois) oder als Land (USA) angegeben werden. All das wertet der Geocodierer als Adresse. Die umgekehrte Geocodierung gibt jeden dieser Typen als gültige Ergebnisse zurück.

Der umgekehrte Geocoder berücksichtigt politische Einheiten (Länder, Provinzen, Städte und Stadtteile), Adressen und Postleitzahlen.

Die vollständige Liste der formatted_address-Werte, die bei der vorherigen Abfrage zurückgegeben wurden, finden Sie unten.

{
   "plus_code" : {
      "compound_code" : "P27Q+MCM New York, NY, USA",
      "global_code" : "87G8P27Q+MCM"
   },
   "results" : [
      {
         "formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA",
         ...
         "types" : [ "street_address" ]
      },
      {
         "formatted_address" : "279 Bedford Ave, Brooklyn, NY 11211, USA",
         ...
         "types" : [ "premise" ]
      },
      {
         "formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA",
         ...
         "types" : [ "establishment", "point_of_interest" ]
      },
      {
         "formatted_address" : "291-275 Bedford Ave, Brooklyn, NY 11211, USA",
         ...
         "types" : [ "route" ]
      },
      {
         "formatted_address" : "P27Q+MC New York, NY, USA",
         ...
         "types" : [ "plus_code" ]
      },
      {
         "formatted_address" : "South Williamsburg, Brooklyn, NY, USA",
         ...
         "types" : [ "neighborhood", "political" ]
      },
      {
         "formatted_address" : "Brooklyn, NY 11211, USA",
         ...
         "types" : [ "postal_code" ]
      },
      {
         "formatted_address" : "Williamsburg, Brooklyn, NY, USA",
         ...
         "types" : [ "neighborhood", "political" ]
      },
      {
         "formatted_address" : "Kings County, Brooklyn, NY, USA",
         ...
         "types" : [ "administrative_area_level_2", "political" ]
      },
      {
         "formatted_address" : "Brooklyn, NY, USA",
         ...
         "types" : [ "political", "sublocality", "sublocality_level_1" ]
      },
      {
         "formatted_address" : "New York, NY, USA",
         ...
         "types" : [ "locality", "political" ]
      },
      {
         "formatted_address" : "New York, USA",
         ...
         "types" : [ "administrative_area_level_1", "political" ]
      },
      {
         "formatted_address" : "United States",
         ...
         "types" : [ "country", "political" ]
      }
   ],
   "status" : "OK"
}

Die API gibt verschiedene Arten von Adressen zurück, von der Adresse mit der genauesten Adresse bis hin zu weniger spezifischen politischen Einrichtungen wie Stadtteilen, Städten, Landkreisen und Bundesländern. Je genauer die Adresse ist, desto auffälliger ist das Ergebnis, wie es hier der Fall ist. Wenn Sie einen bestimmten Adresstyp abgleichen möchten, lesen Sie den folgenden Abschnitt zum Einschränken von Ergebnissen nach Typ. Aus diesem Grund kann die Position der Ergebnisse zueinander variieren.

Umgekehrte Geocodierung nach Typ gefiltert

Im folgenden Beispiel werden die zurückgegebenen Adressen so gefiltert, dass nur Adressen mit dem Standorttyp ROOFTOP und dem Adresstyp street_address enthalten sind.

https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452
&location_type=ROOFTOP&result_type=street_address&key=YOUR_API_KEY

Hinweis:Diese Filter gelten nur für die umgekehrte Geocodierung.

Antworten beim umgekehrten Geocoding

Das Format der umgekehrten Geocodierungsantwort entspricht dem der Geocoding-Antwort. Siehe Geocoding-Antworten. Im Folgenden finden Sie die Statuscodes, die in den Antworten des umgekehrten Geocoding möglich sind.

Statuscodes der umgekehrten Geocodierung

Das Feld "status" innerhalb des Geocoding-Antwortobjekts enthält den Status der Anfrage sowie möglicherweise Informationen zur Fehlerbehebung, anhand derer Sie herausfinden können, warum die umgekehrte Geocodierung nicht funktioniert. Das Feld "status" kann die folgenden Werte enthalten:

  • "OK" gibt an, dass keine Fehler aufgetreten sind und mindestens eine Adresse zurückgegeben wurde.
  • "ZERO_RESULTS" gibt an, dass die umgekehrte Geocodierung erfolgreich war, aber keine Ergebnisse zurückgegeben wurden. Das kann vorkommen, wenn dem Geocoder ein latlng-Objekt an einem abgelegenen Ort übergeben wurde.
  • "OVER_QUERY_LIMIT" gibt an, dass Sie Ihr Kontingent überschritten haben.
  • "REQUEST_DENIED" gibt an, dass die Anfrage abgelehnt wurde. Möglicherweise, weil die Anfrage den Parameter result_type oder location_type, aber keinen API-Schlüssel enthält.
  • "INVALID_REQUEST" steht im Allgemeinen für einen der folgenden Fälle:
    • Die Abfrage (address, components oder latlng) fehlt.
    • Ein ungültiger result_type oder location_type wurde angegeben.
  • "UNKNOWN_ERROR" gibt an, dass die Anfrage aufgrund eines Serverfehlers nicht verarbeitet werden konnte. Möglicherweise ist die Anfrage erfolgreich, wenn Sie es noch einmal versuchen.

Plus Codes der umgekehrten Geocodierung

Das Feld plus_code in der Geocoding-Antwort enthält einen Plus Code, mit dem sich der Breiten- und Längengrad am besten annähern. Darüber hinaus enthält das JSON-Ergebnisarray in den meisten Fällen ein vollständiges Geocoding-Ergebnis mit dem Typ plus_code und einer Adresse, die einen Plus Code enthält. Die Entfernung zwischen dem decodierten Plus Code und dem Anfragepunkt liegt garantiert unter 10 Metern.