Die Google Maps Geocoding API

Dieser Dienst ist auch als Teil der Google Maps JavaScript API oder der Java- und Python-Clientbibliotheken verfügbar.

Was ist Geocoding?

Geocoding bezeichnet die Umwandlung von Adressen wie „1600 Amphitheatre Parkway, Mountain View, CA“ in geografische Koordinaten wie „37.423021 Breite und -122.083739 Länge“, die Sie zum Platzieren von Markern auf einer Karte oder zum Positionieren der Karte verwenden können.

Umgekehrtes Geocoding bezeichnet die Umwandlung geografischer Koordinaten in menschenlesbare Adressen. Der Dienst der Google Maps Geocoding API zum umgekehrten Geocoding ermöglicht es Ihnen auch, anhand einer Orts-ID nach einer Adresse zu suchen.

Die Google Maps Geocoding API bietet die Möglichkeit zum direkten Zugriff auf diese Dienste über eine HTTP-Anforderung.

Vor dem Start

Dieses Dokument richtet sich an Entwickler von Websites und mobilen Anwendungen, die die Geocodierung von Daten in Karten verwenden möchten, die von einer der Google Maps APIs bereitgestellt werden.

Dieser Dienst dient zum Geocoding statischer (bekannter) Adressen, um App-Inhalte in einer Karte zu platzieren. Er dient nicht dazu, in Echtzeit auf Benutzereingaben zu reagieren. Hinweise zum dynamischen Geocoding (z. B. in einem UI-Element) erhalten Sie in der Dokumentation zum Google Maps JavaScript API Client Geocoder und/oder den Location APIs der Google Play-Dienste.

Geocoding ist eine aufwändige Aufgabe. Geocodieren Sie bekannte Adressen daher mithilfe der hier vorgestellten Google Maps Geocoding API oder eines anderen Geocoding-Dienstes soweit möglich im Voraus und speichern Sie die Ergebnisse in einem Cache.

Um die Google Maps Geocoding API verwenden zu können, benötigen Sie einen API-Schlüssel.

Schlüssel anfordern Nutzungsbeschränkungen

Google Maps Geocoding API Format der Anforderungen

Eine Google Maps Geocoding API-Anforderung hat folgende Form:

https://maps.googleapis.com/maps/api/geocode/output?parameters

wobei output einen der folgenden Werte haben kann:

  • json (empfohlen) gibt die Ausgabe in JavaScript Object Notation (JSON) an
  • xml gibt die Ausgabe in XML an

Um über HTTP auf die Google Maps Geocoding API zuzugreifen, verwenden Sie:

http://maps.googleapis.com/maps/api/geocode/output?parameters

Für Anwendungen, die in den Anforderungen persönliche Daten von Benutzern wie z. B. Standortangaben enthalten, wird HTTP nicht empfohlen.

Einige Parameter sind erforderlich, während andere optional verwendet werden können. Standardmäßig werden alle Parameter in URLs durch ein kaufmännisches Und (&) getrennt.

Benutzer von Google Maps API for Work müssen ihren Geocoding-Anforderungen gültige client- und signature-Parameter hinzufügen. Weitere Informationen erhalten Sie im Kapitel Google Maps API for Work Webdienste.

Im Folgenden werden Geocoding und umgekehrtes Geocoding getrennt behandelt, da für jede dieser Anforderungsarten verschiedene Parameter verfügbar sind.

Geocoding (Suche nach Längen- und Breitengrad)

Erforderliche Parameter einer Geocoding-Anforderung:

  • address — die Anschrift, die geocodiert werden soll, im vom Postdienst des jeweiligen Landes verwendeten Format. Zusätzliche Elemente wie Unternehmensname und -einheit oder Angaben zu Stockwerk und Lage im Gebäude sollten vermieden werden. Weiterführende Hinweise finden Sie in den FAQ.
         oder
    components — ein Komponentenfilter, mit dem Sie einen Geocode anfordern. Weitere Informationen finden Sie unter Komponentenfilter. Wird eine Adresse (address) angegeben, so wird der Komponentenfilter auch als optionaler Parameter akzeptiert.
  • key: der API-Schlüssel Ihrer Anwendung. Dieser Schlüssel identifiziert Ihre Anwendung für das Kontingentmanagement. So fordern Sie einen Schlüssel an.

Optionale Parameter einer Geocoding-Anforderung:

  • bounds — der Begrenzungsrahmen des Anzeigebereichs, in dem die Geocoding-Ergebnisse beeinflusst werden sollen. Durch diesen Parameter werden die Ergebnisse des Geocoders nur beeinflusst, aber nicht vollständig eingeschränkt. Weitere Informationen finden Sie unter Viewport-Biasing.
  • language: die Sprache, in der Ergebnisse zurückgegeben werden. Weitere Informationen finden Sie in der Liste der unterstützten Domänensprachen. Beachten Sie, dass die unterstützten Sprachen häufig aktualisiert werden. Die Liste ist ggf. nicht vollständig. Wurde language nicht angegeben, versucht der Geocoder die native Sprache der Domäne zu verwenden, aus der die Anforderung gesendet wurde.
  • region — der Regionscode als zweistelliger Ländercode der Top-Level-Domain (ccTLD). Durch diesen Parameter werden die Ergebnisse des Geocoders nur beeinflusst, aber nicht vollständig eingeschränkt. Weitere Informationen finden Sie unter Anforderung mit Regionsangabe.
  • components — die durch senkrechten Strich (|) getrennten Komponentenfilter. Jeder Komponentenfilter besteht aus einem component:value-Paar und schränkt die Ergebnisse des Geocoders vollständig ein. Weitere Informationen finden Sie unter Komponentenfilter.

Geocoding-Antworten

Geocoding-Antworten werden in dem Format zurückgegeben, das im Flag output im URL-Pfad der Anforderung angegeben wurde.

In diesem Beispiel wird durch die Google Maps Geocoding API eine json-Antwort auf die Abfrage „1600 Amphitheatre Parkway, Mountain View, CA“ angefordert.

In dieser Anforderung wird die Verwendung des JSON-Flags output gezeigt:

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY

In dieser Anforderung wird die Verwendung des XML-Flags output gezeigt:

https://maps.googleapis.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY

Klicken Sie unten auf die jeweilige Registerkarte, um sich die Beispielantworten in JSON und XML anzusehen.

JSON
{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "1600",
               "short_name" : "1600",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Amphitheatre Pkwy",
               "short_name" : "Amphitheatre Pkwy",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Mountain View",
               "short_name" : "Mountain View",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Santa Clara County",
               "short_name" : "Santa Clara County",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "California",
               "short_name" : "CA",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "94043",
               "short_name" : "94043",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "1600 Amphitheatre Parkway, Mountain View, CA 94043, USA",
         "geometry" : {
            "location" : {
               "lat" : 37.4224764,
               "lng" : -122.0842499
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
               "northeast" : {
                  "lat" : 37.4238253802915,
                  "lng" : -122.0829009197085
               },
               "southwest" : {
                  "lat" : 37.4211274197085,
                  "lng" : -122.0855988802915
               }
            }
         },
         "place_id" : "ChIJ2eUgeAK6j4ARbn5u_wAGqWA",
         "types" : [ "street_address" ]
      }
   ],
   "status" : "OK"
}

Beachten Sie, dass die JSON-Antwort zwei Stammelemente enthält:

  • "status" enthält Metadaten zur Anforderung. Weitere Informationen finden Sie unten in Statuscodes.
  • "results" enthält ein Array mit geocodierten Adressdaten und geometrischen Informationen.

Normalerweise wird bei Adressabfragen nur ein Eintrag im Array "results" zurückgegeben. Sind die Abfragen mehrdeutig, kann der Geocoder jedoch auch mehrere Ergebnisse zurückgeben.

Wenn Sie aus diesen Ergebnissen Werte extrahieren möchten, müssen Sie sie parsen. Das Parsen von JSON ist relativ einfach. Unter JSON parsen finden Sie einige empfohlene Entwurfsmuster.

XML
<GeocodeResponse>
 <status>OK</status>
 <result>
  <type>street_address</type>
  <formatted_address>1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA</formatted_address>
  <address_component>
   <long_name>1600</long_name>
   <short_name>1600</short_name>
   <type>street_number</type>
  </address_component>
  <address_component>
   <long_name>Amphitheatre Pkwy</long_name>
   <short_name>Amphitheatre Pkwy</short_name>
   <type>route</type>
  </address_component>
  <address_component>
   <long_name>Mountain View</long_name>
   <short_name>Mountain View</short_name>
   <type>locality</type>
   <type>political</type>
  </address_component>
  <address_component>
   <long_name>San Jose</long_name>
   <short_name>San Jose</short_name>
   <type>administrative_area_level_3</type>
   <type>political</type>
  </address_component>
  <address_component>
   <long_name>Santa Clara</long_name>
   <short_name>Santa Clara</short_name>
   <type>administrative_area_level_2</type>
   <type>political</type>
  </address_component>
  <address_component>
   <long_name>California</long_name>
   <short_name>CA</short_name>
   <type>administrative_area_level_1</type>
   <type>political</type>
  </address_component>
  <address_component>
   <long_name>United States</long_name>
   <short_name>US</short_name>
   <type>country</type>
   <type>political</type>
  </address_component>
  <address_component>
   <long_name>94043</long_name>
   <short_name>94043</short_name>
   <type>postal_code</type>
  </address_component>
  <geometry>
   <location>
    <lat>37.4217550</lat>
    <lng>-122.0846330</lng>
   </location>
   <location_type>ROOFTOP</location_type>
   <viewport>
    <southwest>
     <lat>37.4188514</lat>
     <lng>-122.0874526</lng>
    </southwest>
    <northeast>
     <lat>37.4251466</lat>
     <lng>-122.0811574</lng>
    </northeast>
   </viewport>
  </geometry>
  <place_id>ChIJ2eUgeAK6j4ARbn5u_wAGqWA</place_id>
 </result>
</GeocodeResponse>

Die XML-Antwort besteht aus einer einzelnen <GeocodeResponse> und zwei Elementen der obersten Ebene:

  • <status> enthält Metadaten zur Anforderung. Weitere Informationen finden Sie unten in Statuscodes.
  • Null oder mehrere <result>-Elemente, jedes mit einem Satz geocodierter Adressdaten und geometrischer Informationen.

Beachten Sie, dass diese Antwort erheblich länger als die JSON-Antwort ist. Daher sollten Sie json als das bevorzugte Ausgabe-Flag verwenden, sofern Ihr Dienst nicht aus irgendeinem Grund xml verlangt. Außerdem erfordert die Verarbeitung von XML-Strukturen einige Sorgfalt. Knoten und Elemente müssen präzise referenziert werden. Unter XML mit XPath parsen finden Sie einige empfohlene Entwurfsmuster für die Ausgabeverarbeitung.

Im verbleibenden Teil dieser Dokumentation wird JSON-Syntax verwendet. In den meisten Fällen ist das Ausgabeformat für die Darstellung von Konzepten oder Feldnamen in der Dokumentation nicht ausschlaggebend. Beachten Sie jedoch die folgenden Unterschiede:

  • XML-Ergebnisse sind von dem Stammelement <GeocodeResponse> umschlossen.
  • JSON gibt Einträge mit mehreren Elementen durch Pluralarrays (types) an, während XML dafür mehrere einzelne Elemente (<type>) verwendet.
  • Leere Elemente werden in JSON durch leere Arrays angegeben, in XML dagegen durch keines dieser Elemente. Antworten, die keine Ergebnisse generieren, geben in JSON das leere Array results zurück, in XML jedoch keine <result>-Elemente.

Statuscodes

Das Feld "status" im Geocoding-Antwortobjekt enthält den Status der Anforderung und kann auch Debuginformationen enthalten, die Ihnen helfen sollen, herauszufinden, warum das Geocoding nicht erfolgreich war. Das Feld "status" kann folgende Werte enthalten:

  • "OK" gibt an, dass keine Fehler aufgetreten sind. Die Adresse wurde erfolgreich geparst, und es wurde mindestens ein Geocode zurückgegeben.
  • "ZERO_RESULTS" gibt an, dass das Geocoding erfolgreich war, aber keine Ergebnisse zurückgegeben hat. Dies kann eintreten, wenn dem Geocoder eine nicht existierende Adresse (address) übergeben wurde.
  • "OVER_QUERY_LIMIT" gibt an, dass Sie das Kontingent überschritten haben.
  • "REQUEST_DENIED" gibt an, dass die Anforderung abgelehnt wurde.
  • "INVALID_REQUEST" gibt normalerweise an, dass die Abfrage (address, components oder latlng) fehlt.
  • "UNKNOWN_ERROR" gibt an, dass die Anforderung aufgrund eines Serverfehlers nicht verarbeitet werden konnte. Möglicherweise ist die Anforderung beim nächsten Versuch erfolgreich.

Fehlermeldungen

Wenn der Geocoder einen anderen Statuscode als OK zurückgibt, wird ggf. das zusätzliche Feld error_message im Geocoding-Antwortobjekt angezeigt. Dieses Feld enthält weitere detaillierte Informationen zu den Gründen für den zurückgegebenen Statuscode.

Hinweis: Dieses Feld wird nicht immer angezeigt, und sein Inhalt unterliegt Änderungen.

Ergebnisse

Gibt der Geocoder Ergebnisse zurück, so werden diese in das JSON-Array routes platziert. Auch wenn der Geocoder keine Ergebnisse zurückgibt (z. B. wenn die Adresse nicht existiert), gibt er dennoch ein leeres results-Array zurück. (XML-Antworten bestehen dagegen aus keinem oder mehreren <result>-Elementen.)

Ein typisches Ergebnis besteht aus den folgenden Feldern:

  • Das Array types[] zeigt den Typ des zurückgegebenen Ergebnisses an. Dieses Array enthält einen Satz mit null oder mehreren Tags, die den Typ der im Ergebnis zurückgegebenen Eigenschaft bestimmen. So gibt bspw. die Geocodierung von „Chicago“ „locality“ zurück, das angibt, dass es sich bei „Chicago“ um eine Stadt handelt, sowie „political“, das „Chicago“ als Verwaltungseinheit identifiziert.

  • formatted_address ist eine Zeichenfolge mit der Adresse dieses Orts in menschenlesbarer Form. Diese Adresse stimmt häufig mit der „Postanschrift“ überein, die von Land zu Land variieren kann. (Beachten Sie, dass einige Länder wie das Vereinigte Königreich die Weitergabe echter Postanschriften nicht zulassen.) Diese Adresse besteht in der Regel aus mindestens einer Adresskomponente. Beispiel: Die Adresse „111 8th Avenue, New York, NY“ enthält separate Adresskomponenten für „111“ (Hausnummer), „8th Avenue“ (Straße), „New York“ (Stadt) und „NY“ (US-Bundesstaat). Diese Adresskomponenten enthalten die unten beschriebenen zusätzlichen Informationen.

  • address_components[] ist ein Array, das wie oben beschrieben die einzelnen Adresskomponenten enthält. Jede address_component enthält normalerweise Folgendes:

    • types[] ist ein Array, das den Typ der Adresskomponente angibt.
    • long_name ist die vom Geocoder zurückgegebene vollständige Beschreibung oder der Name der Adresskomponente in Textform.
    • short_name ist, falls vorhanden, der abgekürzte Name der Adresskomponente in Textform. Beispiel: Eine Adresskomponente für den Bundesstaat Alaska hat den long_name „Alaska“ und den short_name „AK“ gemäß dem aus zwei Buchstaben bestehenden postalischen Ländercode.

    Beachten Sie, dass address_components[] mehr Adresskomponenten enthalten kann, als in formatted_address vermerkt.

  • postcode_localities[] ist ein Array, der alle in einer Postleitzahl enthaltenen Orte angibt. Das Array ist nur vorhanden, wenn das Ergebnis eine Postleitzahl mit mehreren Orten ist.
  • geometry enthält die folgenden Informationen:

    • location enthält die geocodierten Breiten- und Längengradwerte. Normalerweise ist dieses Feld bei Addressabfragen das wichtigste.
    • location_type enthält zusätzliche Daten über den angegebenen Ort. Folgende Werte werden derzeit unterstützt:

      • "ROOFTOP" gibt an, dass das zurückgegebene Ergebnis ein präziser Geocode mit Informationen bis hin zur Postanschrift ist.
      • "RANGE_INTERPOLATED" gibt an, dass es sich bei dem Ergebnis um eine Näherungsangabe (meist auf einer Straße) handelt, die sich zwischen zwei präzisen Punkten (bspw. Kreuzungen) befindet. Interpolierte Ergebnisse werden zurückgegeben, wenn präzise Geocodes für eine Postanschrift nicht verfügbar sind.
      • "GEOMETRIC_CENTER" gibt an, dass es sich bei dem Ergebnis um die geometrische Mitte eines Ergebnisses wie z. B. einer Polylinie (bspw. einer Straße) oder eines Polygons (einer Region) handelt.
      • "APPROXIMATE" gibt an, dass das zurückgegebene Ergebnis eine Näherungsangabe ist.
    • viewport enthält den empfohlenen Viewport zur Anzeige des Ergebnisses. Er wird durch zwei Breiten- und Längengradwerte angegeben, die die Ecken southwest und northeast des Begrenzungsrahmens definieren. Der Viewport wird als Rahmen für das Ergebnis verwendet, das dem Benutzer angezeigt wird.
    • bounds (optional) enthält den Begrenzungsrahmen, der das Ergebnis vollständig enthalten kann. Beachten Sie, dass diese Begrenzung evtl. nicht mit dem empfohlenen Viewport übereinstimmt. (Beispielsweise gehören zu San Francisco auch die Farallon-Inseln, die aber wahrscheinlich nicht im Viewport zurückgegeben werden sollen.)
  • partial_match gibt an, dass der Geocoder kein genaues Ergebnis für die Anforderung zurückgegeben hat, jedoch eine Übereinstimmung mit einem Teil der angeforderten Adresse gefunden hat. Überprüfen Sie ggf. die Anforderung auf Tippfehler und/oder Unvollständigkeit.

    Teilübereinstimmungen treten am häufigsten bei Anschriften auf, die an dem von Ihnen in der Anforderung übergebenen Ort nicht existieren. Teilübereinstimmungen können auch zurückgegeben werden, wenn eine Anforderung mit mehr als einem Standort am selben Ort übereinstimmt. So wird für „21 Henr St, Bristol, UK“ eine Teilübereinstimmung für Henry Street und Henrietta Street zurückgegeben. Enthält eine Anforderung einen Adressbestandteil mit Tippfehlern, schlägt der Geocoder möglicherweise eine andere Adresse vor. Auf diese Weise ausgelöste Vorschläge werden ebenfalls als Teilübereinstimmung gekennzeichnet.

  • place_id ist ein eindeutiger Bezeichner, der für andere Google APIs verwendet werden kann. Beispielsweise können Sie die place_id in einer Anforderung in der Google Places API verwenden, um Informationen über ein lokales Unternehmen, wie Telefonnummer, Öffnungszeiten, Bewertungen usw. zu erhalten. Weitere Informationen finden Sie unter Orts-IDs – Übersicht.

Da das genaue Format einer Antwort auf eine Anforderung in der Google Maps Geocoding API jedoch nicht garantiert ist, sollten Sie nicht davon ausgehen, dass sich die Elemente in absoluten Positionen befinden. So kann die Zahl der address_components in einer Antwort der Geocoding API je nach angeforderter Adresse unterschiedlich sein und sich im Laufe der Zeit ändern. Daher sollten Sie die Antwort parsen und die jeweiligen Werte mithilfe von Ausdrücken auswählen. Weitere Informationen erhalten Sie unter Parsen von Webdienst-Antworten.

Typen von Adressen und Adresskomponenten

Das Array types[] im Ergebnis gibt den Adresstyp an. Beispiele für Adresstypen sind Postanschrift, Land oder Verwaltungseinheit. Auch in den address_components[] gibt es ein Array types[], das den Typ jedes Teils der Adresse angibt. Dazu gehören bspw. Hausnummer oder Land. Im Folgenden finden Sie die vollständige Liste. Adressen können mehrere Typen aufweisen. Die Typen können als „Tags“ betrachtet werden. So sind viele Städte bspw. mit den Typen political und locality getaggt.

Die folgenden Typen werden vom Geocoder unterstützt und sowohl im Array „address type“ als auch im Array „address component“ zurückgegeben:

  • street_address bezeichnet eine genaue Anschrift.
  • route bezeichnet eine Straße mit einem Namen oder einer Nummer (z. B. „US 101“).
  • intersection bezeichnet eine wichtige Kreuzung, meist zweier Hauptstraßen.
  • political bezeichnet eine Verwaltungseinheit. Dieser Typ steht meist für ein Polygon einer öffentlichen Einrichtung.
  • country bezeichnet eine nationale Verwaltungseinheit und ist normalerweise der höchste Typ in der vom Geocoder zurückgegebenen Reihenfolge.
  • administrative_area_level_1 bezeichnet eine Verwaltungseinheit erster Ordnung unterhalb der Stufe „Land“. In den USA sind diese Verwaltungsebenen die Bundesstaaten. Diese Verwaltungsebenen bestehen jedoch nicht in allen Ländern.
  • administrative_area_level_2 bezeichnet eine Verwaltungseinheit zweiter Ordnung unterhalb der Stufe „Land“. In den USA sind diese Verwaltungsebenen die Countys. Diese Verwaltungsebenen bestehen jedoch nicht in allen Ländern.
  • administrative_area_level_3 bezeichnet eine Verwaltungseinheit dritter Ordnung unterhalb der Stufe „Land“. Dieser Typ steht für eine kleine Verwaltungseinheit von geringerer Bedeutung. Diese Verwaltungsebenen bestehen jedoch nicht in allen Ländern.
  • administrative_area_level_4 bezeichnet eine Verwaltungseinheit vierter Ordnung unterhalb der Stufe „Land“. Dieser Typ steht für eine kleine Verwaltungseinheit von geringerer Bedeutung. Diese Verwaltungsebenen bestehen jedoch nicht in allen Ländern.
  • administrative_area_level_5 bezeichnet eine Verwaltungseinheit fünfter Ordnung unterhalb der Stufe „Land“. Dieser Typ steht für eine kleine Verwaltungseinheit von geringerer Bedeutung. Diese Verwaltungsebenen bestehen jedoch nicht in allen Ländern.
  • colloquial_area bezeichnet eine allgemein verwendete Alternativbezeichnung der Einheit.
  • locality bezeichnet die Verwaltungseinheit einer Stadt mit Selbstverwaltung.
  • ward bezeichnet eine bestimmte Art von Ort in Japan (Stadtbezirk) und wird zur Unterscheidung zwischen den Bestandteilen japanischer Adressen verwendet.
  • sublocality bezeichnet eine Verwaltungseinheit erster Ordnung unterhalb der Stufe „Stadt“. Einigen Orten kann zusätzlich einer der folgenden Typen zugewiesen werden: sublocality_level_1 bis sublocality_level_5. Jede dieser Ebenen ist eine Verwaltungseinheit. Je höher die Zahl, desto kleiner das geografische Gebiet.
  • neighborhood bezeichnet ein bestimmtes Viertel.
  • premise bezeichnet meist ein bestimmtes Gebäude oder eine Gebäudegruppe mit einer gemeinsamen Bezeichnung.
  • subpremise bezeichnet eine Einheit erster Ordnung unterhalb einer Gebäudegruppe, meist ein einzelnes Gebäude in einer Gebäudegruppe mit einer gemeinsamen Bezeichnung.
  • postal_code bezeichnet die Postleitzahl, die zur Adressierung von Post innerhalb eines Landes verwendet wird.
  • natural_feature bezeichnet ein landschaftliches Wahrzeichen.
  • airport bezeichnet einen Flughafen.
  • park bezeichnet einen bestimmten Park.
  • point_of_interest bezeichnet einen bestimmten Point of Interest (POI). Dazu gehören bedeutende lokale Objekte, die sich keiner anderen Kategorie zuordnen lassen, wie z. B. „Empire State Building“ oder „Freiheitsstatue“.

Eine leere Typenliste bedeutet, dass für einen bestimmten Adressbestandteil keine Typen vorhanden sind, wie z. B. im Falle des französischen Lieu-dit.

Zusätzlich können die Adresskomponenten die folgenden Typen enthalten.

Hinweis: Diese Liste ist nicht abschließend und kann Änderungen unterliegen.

  • floor bezeichnet das Stockwerk eines Gebäudes.
  • establishment bezeichnet normalerweise einen Ort, der noch nicht kategorisiert wurde.
  • point_of_interest bezeichnet einen bestimmten Point of Interest (POI).
  • parking bezeichnet einen Parkplatz oder ein Parkhaus.
  • post_box bezeichnet eine bestimmte Postfachadresse.
  • postal_town bezeichnet eine Gruppe geografischer Bereiche wie locality und sublocality, wie sie in einigen Ländern in Postanschriften verwendet werden.
  • room bezeichnet einen Raum in einem Gebäude.
  • street_number bezeichnet die genaue Hausnummer.
  • bus_station, train_station und transit_station bezeichnen den Standort eines Bahnhofs oder einer Haltestelle öffentlicher Verkehrsmittel.

Viewport-Biasing

Sie können den Geocoding-Dienst anweisen, Ergebnisse innerhalb eines bestimmten Viewports (ausgedrückt als Begrenzungsrahmen) zu bevorzugen. Dazu legen Sie in der URL der Anforderung den Parameter bounds fest. Beachten Sie, dass durch Biasing Ergebnisse innerhalb der Begrenzung nur bevorzugt werden. Sollten außerhalb der Begrenzung relevantere Ergebnisse vorhanden sein, können diese mit aufgenommen werden.

Der Parameter bounds definiert den Längen- und Breitengrad der südwestlichen und nordöstlichen Ecke des Begrenzungsrahmens. Die Koordinaten werden durch einen senkrechten Strich (|) voneinander getrennt.

Eine Geocoding-Anforderung für „Winnetka“ gibt normalerweise diesen Vorort von Chicago zurück:

Anforderung:

https://maps.googleapis.com/maps/api/geocode/json?address=Winnetka&key=YOUR_API_KEY

Antwort:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Winnetka",
               "short_name" : "Winnetka",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "New Trier",
               "short_name" : "New Trier",
               "types" : [ "administrative_area_level_3", "political" ]
            },
            {
               "long_name" : "Cook County",
               "short_name" : "Cook County",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Illinois",
               "short_name" : "IL",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Winnetka, IL, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 42.1282269,
                  "lng" : -87.7108162
               },
               "southwest" : {
                  "lat" : 42.0886089,
                  "lng" : -87.7708629
               }
            },
            "location" : {
               "lat" : 42.10808340000001,
               "lng" : -87.735895
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 42.1282269,
                  "lng" : -87.7108162
               },
               "southwest" : {
                  "lat" : 42.0886089,
                  "lng" : -87.7708629
               }
            }
         },
         "place_id" : "ChIJW8Va5TnED4gRY91Ng47qy3Q",
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}

Fügen Sie jedoch das Argument bounds hinzu, das einen Begrenzungsrahmen für das San Fernando Valley von Los Angeles definiert, so wird der Geocode des dortigen Stadtteils Winnetka zurückgegeben:

Anforderung:

https://maps.googleapis.com/maps/api/geocode/json?address=Winnetka&bounds=34.172684,-118.604794|34.236144,-118.500938&key=YOUR_API_KEY

Antwort:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Winnetka",
               "short_name" : "Winnetka",
               "types" : [ "neighborhood", "political" ]
            },
            {
               "long_name" : "Los Angeles",
               "short_name" : "LA",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Los Angeles County",
               "short_name" : "Los Angeles County",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "California",
               "short_name" : "CA",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Winnetka, Los Angeles, CA, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 34.2355209,
                  "lng" : -118.5534191
               },
               "southwest" : {
                  "lat" : 34.1854649,
                  "lng" : -118.588536
               }
            },
            "location" : {
               "lat" : 34.2048586,
               "lng" : -118.5739621
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 34.2355209,
                  "lng" : -118.5534191
               },
               "southwest" : {
                  "lat" : 34.1854649,
                  "lng" : -118.588536
               }
            }
         },
         "place_id" : "ChIJ0fd4S_KbwoAR2hRDrsr3HmQ",
         "types" : [ "neighborhood", "political" ]
      }
   ],
   "status" : "OK"
}

Anforderung mit Regionsangabe

Die von der Google Maps Geocoding API zurückgegebenen Ergebnisse sind von der Region (meistens dem Land) beeinflusst, von dem aus die Anforderung gesendet wurde. So können für die Suche nach „San Francisco“ verschiedene Ergebnisse zurückgegeben werden, je nachdem, ob die Anforderung von einer Domäne in den USA oder in Spanien aus gesendet wurde.

Verwenden Sie den Parameter region, um die Google Maps Geocoding API auf eine bestimmte Region ausgerichtete Ergebnisse zurückgeben zu lassen. Dazu verwendet dieser Parameter ein ccTLD-Argument (Ländercode der Top-Level-Domain). Die meisten ccTLD-Codes stimmen mit den ISO 3166-1-Codes überein, wobei es einige Ausnahmen gibt. So lautet der ccTLD von Großbritannien „uk“ (.co.uk), der ISO 3166-1-Code jedoch „gb“ (für „Vereinigtes Königreich Großbritannien und Nordirland“).

Das Biasing der Geocoding-Ergebnisse nach Domäne ist für alle Domänen möglich, in denen die Anwendung Google Maps offiziell verfügbar ist. Beachten Sie, dass durch Biasing Ergebnisse für eine bestimmte Domäne nur bevorzugt werden. Sollten außerhalb der Domäne relevantere Ergebnisse vorhanden sein, können diese mit aufgenommen werden.

Beispielsweise gibt eine Geocoding-Anforderung für „Toledo“ das folgende Ergebnis zurück, da als Standarddomäne für die Google Maps Geocoding API die USA festgelegt sind. Anforderung:

https://maps.googleapis.com/maps/api/geocode/json?address=Toledo&key=YOUR_API_KEY

Antwort:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Toledo",
               "short_name" : "Toledo",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Lucas County",
               "short_name" : "Lucas County",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Ohio",
               "short_name" : "OH",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Toledo, OH, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 41.732844,
                  "lng" : -83.4547053
               },
               "southwest" : {
                  "lat" : 41.580266,
                  "lng" : -83.69423700000002
               }
            },
            "location" : {
               "lat" : 41.6639383,
               "lng" : -83.55521200000001
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 41.732844,
                  "lng" : -83.4547053
               },
               "southwest" : {
                  "lat" : 41.580266,
                  "lng" : -83.69423700000002
               }
            }
         },
         "place_id" : "ChIJeU4e_C2HO4gRRcM6RZ_IPHw",
         "types" : [ "locality", "political" ]
      },
      {
         "address_components" : [
            {
               "long_name" : "Toledo",
               "short_name" : "Toledo",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Lincoln County",
               "short_name" : "Lincoln County",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Oregon",
               "short_name" : "OR",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Toledo, OR, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 44.6383219,
                  "lng" : -123.9129439
               },
               "southwest" : {
                  "lat" : 44.598776,
                  "lng" : -123.954585
               }
            },
            "location" : {
               "lat" : 44.621507,
               "lng" : -123.9384478
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 44.6383219,
                  "lng" : -123.9129439
               },
               "southwest" : {
                  "lat" : 44.598776,
                  "lng" : -123.954585
               }
            }
         },
         "place_id" : "ChIJmcjO1AjUwVQRDsRYrfWvzyo",
         "types" : [ "locality", "political" ]
      },
      {
         "address_components" : [
            {
               "long_name" : "Toledo",
               "short_name" : "Toledo",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Toledo",
               "short_name" : "Toledo",
               "types" : [ "administrative_area_level_3", "political" ]
            },
            {
               "long_name" : "Tama County",
               "short_name" : "Tama County",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Iowa",
               "short_name" : "IA",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Toledo, IA, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 42.00388600000001,
                  "lng" : -92.56695289999999
               },
               "southwest" : {
                  "lat" : 41.9784431,
                  "lng" : -92.60007299999999
               }
            },
            "location" : {
               "lat" : 41.9972134,
               "lng" : -92.5835266
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 42.00388600000001,
                  "lng" : -92.56695289999999
               },
               "southwest" : {
                  "lat" : 41.9784431,
                  "lng" : -92.60007299999999
               }
            }
         },
         "place_id" : "ChIJvwoVNEOE74cR3oQfIk7m6fU",
         "types" : [ "locality", "political" ]
      },
      {
         "address_components" : [
            {
               "long_name" : "Toledo",
               "short_name" : "Toledo",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Lewis County",
               "short_name" : "Lewis County",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Washington",
               "short_name" : "WA",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "98591",
               "short_name" : "98591",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "Toledo, WA 98591, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 46.44799889999999,
                  "lng" : -122.8419249
               },
               "southwest" : {
                  "lat" : 46.43233009999999,
                  "lng" : -122.85575
               }
            },
            "location" : {
               "lat" : 46.4398305,
               "lng" : -122.846783
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 46.44799889999999,
                  "lng" : -122.8419249
               },
               "southwest" : {
                  "lat" : 46.43233009999999,
                  "lng" : -122.85575
               }
            }
         },
         "place_id" : "ChIJPw9m6cb4k1QRyA5L3wI_dRM",
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}

Eine Geocoding-Anforderung für „Toledo“ mit region=es (Spanien) gibt dagegen die Stadt in Spanien zurück. Anforderung:

https://maps.googleapis.com/maps/api/geocode/json?address=Toledo&region=es&key=YOUR_API_KEY

Antwort:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Toledo",
               "short_name" : "Toledo",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Toledo",
               "short_name" : "Toledo",
               "types" : [ "administrative_area_level_4", "political" ]
            },
            {
               "long_name" : "Vega de Toledo",
               "short_name" : "Vega de Toledo",
               "types" : [ "administrative_area_level_3", "political" ]
            },
            {
               "long_name" : "Toledo",
               "short_name" : "TO",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Castile-La Mancha",
               "short_name" : "CM",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "Spain",
               "short_name" : "ES",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Toledo, Toledo, Spain",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 39.88605099999999,
                  "lng" : -3.9192423
               },
               "southwest" : {
                  "lat" : 39.8383676,
                  "lng" : -4.0629256
               }
            },
            "location" : {
               "lat" : 39.8628316,
               "lng" : -4.027323099999999
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 39.88605099999999,
                  "lng" : -3.9192423
               },
               "southwest" : {
                  "lat" : 39.8383676,
                  "lng" : -4.0629256
               }
            }
         },
         "place_id" : "ChIJ8f21C60Lag0R_q11auhbf8Y",
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}

Filtern von Komponenten

Die Google Maps Geocoding API kann Ergebnisse zurückgeben, die auf einen bestimmten Bereich beschränkt sind. Die Einschränkung wird mithilfe des Filters components angegeben. Ein Filter besteht aus einer Liste von component:value-Paaren, die durch senkrechten Strich voneinander getrennt sind (|). Es werden nur Ergebnisse zurückgegeben, die mit allen Filtern übereinstimmen. Die Filterwerte unterstützen dieselben Methoden für Rechtschreibkorrektur und partielle Übereinstimmung wie andere Geocoding-Anforderungen. Ist ein Ergebnis eine partielle Übereinstimmung mit einem Komponentenfilter, so enthält es das Feld partial_match in der Antwort.

Zu den components, die gefiltert werden können, gehören:

  • route: Übereinstimmung mit dem langen oder dem Kurznamen einer Route.
  • locality: Übereinstimmung mit den Typen locality und sublocality.
  • administrative_area: Übereinstimmung mit allen Ebenen von administrative_area.
  • postal_code: Übereinstimmung mit postal_code und postal_code_prefix.
  • country: Übereinstimmung mit einem Ländernamen oder einem Ländercode aus zwei Buchstaben nach ISO 3166-1.

Hinweis: Eine Adresskomponente kann nur im Adressparameter oder als Komponentenfilter angegeben werden, jedoch nicht in beiden. Anderenfalls wird ggf. ZERO_RESULTS zurückgegeben.

Eine Geocoding-Anforderung für „Santa Cruz“ mit components=country:ES gibt Santa Cruz de Tenerife auf den Kanarischen Inseln, Spanien, zurück. Anforderung:

https://maps.googleapis.com/maps/api/geocode/json?address=santa+cruz&components=country:ES&key=YOUR_API_KEY

Antwort:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Santa Cruz de Tenerife",
               "short_name" : "Santa Cruz de Tenerife",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Santa Cruz de Tenerife",
               "short_name" : "Santa Cruz de Tenerife",
               "types" : [ "administrative_area_level_4", "political" ]
            },
            {
               "long_name" : "Anaga",
               "short_name" : "Anaga",
               "types" : [ "administrative_area_level_3", "political" ]
            },
            {
               "long_name" : "Santa Cruz de Tenerife",
               "short_name" : "TF",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Canarias",
               "short_name" : "CN",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "Spain",
               "short_name" : "ES",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Santa Cruz de Tenerife, Santa Cruz de Tenerife, Spain",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 28.487616,
                  "lng" : -16.2356646
               },
               "southwest" : {
                  "lat" : 28.4280248,
                  "lng" : -16.3370045
               }
            },
            "location" : {
               "lat" : 28.4636296,
               "lng" : -16.2518467
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 28.487616,
                  "lng" : -16.2356646
               },
               "southwest" : {
                  "lat" : 28.4280248,
                  "lng" : -16.3370045
               }
            }
         },
         "place_id" : "ChIJcUElzOzMQQwRLuV30nMUEUM",
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}

Eine Abfrage mit einem Komponentenfilter gibt nur die Geocoding-Ergebnisse zurück, die mit dem Filter übereinstimmen. Werden keine Übereinstimmungen gefunden, gibt der Geocoder ein Ergebnis zurück, das mit dem Filter selbst übereinstimmt. Anforderung:

https://maps.googleapis.com/maps/api/geocode/json?address=Torun&components=administrative_area:TX|country:US&key=YOUR_API_KEY

Antwort:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Texas",
               "short_name" : "TX",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Texas, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 36.5007041,
                  "lng" : -93.5080389
               },
               "southwest" : {
                  "lat" : 25.8371638,
                  "lng" : -106.6456461
               }
            },
            "location" : {
               "lat" : 31.9685988,
               "lng" : -99.9018131
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 36.5015087,
                  "lng" : -93.5080389
               },
               "southwest" : {
                  "lat" : 25.8371638,
                  "lng" : -106.6456461
               }
            }
         },
         "partial_match" : true,
         "place_id" : "ChIJSTKCCzZwQIYRPN4IGI8c6xY",
         "types" : [ "administrative_area_level_1", "political" ]
      }
   ],
   "status" : "OK"
}

Beim Filtern von Komponenten wird nur dann die Antwort ZERO_RESULTS zurückgegeben, wenn Sie Filter angeben, die einander ausschließen. Anforderung:

https://maps.googleapis.com/maps/api/geocode/json?components=administrative_area:TX|country:FR&key=YOUR_API_KEY

Antwort:

{
   "results" : [],
   "status" : "ZERO_RESULTS"
}

Mithilfe des Filters components können Sie Abfragen ohne den Adressparameter vornehmen, jedoch können Sie keine Komponenten ohne Wert angeben. Anforderung:

https://maps.googleapis.com/maps/api/geocode/json?components=route:Annegatan|administrative_area:Helsinki|country:Finland&key=YOUR_API_KEY

Antwort:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Annegatan",
               "short_name" : "Annegatan",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Helsingfors",
               "short_name" : "Helsingfors",
               "types" : [ "administrative_area_level_3", "political" ]
            },
            {
               "long_name" : "Finland",
               "short_name" : "FI",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Annegatan, Helsingfors, Finland",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 60.168997,
                  "lng" : 24.9427959
               },
               "southwest" : {
                  "lat" : 60.1626627,
                  "lng" : 24.934
               }
            },
            "location" : {
               "lat" : 60.1657808,
               "lng" : 24.938451
            },
            "location_type" : "GEOMETRIC_CENTER",
            "viewport" : {
               "northeast" : {
                  "lat" : 60.168997,
                  "lng" : 24.9427959
               },
               "southwest" : {
                  "lat" : 60.1626627,
                  "lng" : 24.934
               }
            }
         },
         "place_id" : "ChIJARW7C8sLkkYRgl4je4-RPUM",
         "types" : [ "route" ]
      },
      {
         "address_components" : [
            {
               "long_name" : "Annevägen",
               "short_name" : "Annevägen",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Vanda",
               "short_name" : "Vanda",
               "types" : [ "administrative_area_level_3", "political" ]
            },
            {
               "long_name" : "Finland",
               "short_name" : "FI",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "01420",
               "short_name" : "01420",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "Annevägen, 01420 Vanda, Finland",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 60.3282738,
                  "lng" : 25.1162163
               },
               "southwest" : {
                  "lat" : 60.32564009999999,
                  "lng" : 25.1076474
               }
            },
            "location" : {
               "lat" : 60.3271069,
               "lng" : 25.1118046
            },
            "location_type" : "GEOMETRIC_CENTER",
            "viewport" : {
               "northeast" : {
                  "lat" : 60.3283059302915,
                  "lng" : 25.1162163
               },
               "southwest" : {
                  "lat" : 60.32560796970849,
                  "lng" : 25.1076474
               }
            }
         },
         "partial_match" : true,
         "place_id" : "ChIJ3UJCNt4GkkYR8-_a8Dh25kA",
         "types" : [ "route" ]
      },
      {
         "address_components" : [
            {
               "long_name" : "Anneplatsen",
               "short_name" : "Anneplatsen",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Helsingfors",
               "short_name" : "Helsingfors",
               "types" : [ "administrative_area_level_3", "political" ]
            },
            {
               "long_name" : "Finland",
               "short_name" : "FI",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "00100",
               "short_name" : "00100",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "Anneplatsen, 00100 Helsingfors, Finland",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 60.1695664,
                  "lng" : 24.9357125
               },
               "southwest" : {
                  "lat" : 60.168997,
                  "lng" : 24.934
               }
            },
            "location" : {
               "lat" : 60.1692741,
               "lng" : 24.9348016
            },
            "location_type" : "GEOMETRIC_CENTER",
            "viewport" : {
               "northeast" : {
                  "lat" : 60.17063068029151,
                  "lng" : 24.9362052302915
               },
               "southwest" : {
                  "lat" : 60.1679327197085,
                  "lng" : 24.9335072697085
               }
            }
         },
         "partial_match" : true,
         "place_id" : "ChIJeahMqswLkkYR2vQfG1nHI3M",
         "types" : [ "route" ]
      }
   ],
   "status" : "OK"
}

Umgekehrtes Geocoding (Adressensuche)

Der Begriff Geocoding bezieht sich auf das Übersetzen einer menschenlesbaren Adresse in einen Ort auf einer Karte. Der gegenteilige Vorgang wird als umgekehrtes Geocoding bezeichnet.

Erforderliche Parameter: In einer Anforderung zum umgekehrten Geocoding müssen Sie einen der folgenden Parameter, aber nicht beide, angeben.

  • Entweder: latlng — die Werte des Breiten- und Längengrades, mit denen der Ort angegeben wird, für den Sie die am nächsten gelegene menschenlesbare Adresse erhalten möchten.
  • Oder: place_id — die Orts-ID des Orts, für den Sie die menschenlesbare Adresse erhalten möchten. Die Orts-ID ist ein eindeutiger Bezeichner, der für andere Google APIs verwendet werden kann. Beispielsweise können Sie die von der Google Maps Roads API zurückgegebene placeID verwenden, um die Adresse für einen Snap-Punkt abzurufen. Weitere Informationen zu Orts-IDs finden Sie in Orts-ID – Übersicht. Die Orts-ID kann nur angegeben werden, wenn die Anforderung einen API-Schlüssel oder eine Google Maps API for Work-Client-ID enthält.

Optionale Parameter einer Anforderung zum umgekehrten Geocoding:

Diese optionalen Parameter können Sie in eine Anforderung zum umgekehrten Geocoding einschließen:

  • key — der API-Schlüssel Ihrer Anwendung, den Sie vom Google Developers Console erhalten haben. Dieser Schlüssel identifiziert Ihre Anwendung für das Kontingentmanagement.
  • language: die Sprache, in der die Ergebnisse zurückgegeben werden sollen. Weitere Informationen finden Sie in der Liste der unterstützten Domänensprachen. Beachten Sie, dass die unterstützten Sprachen häufig aktualisiert werden. Die Liste ist ggf. nicht vollständig. Wurde language nicht angegeben, versucht der Geocoder die native Sprache der Domäne zu verwenden, aus der die Anforderung gesendet wurde.
  • result_type — ein oder mehrere Adresstypen, durch senkrechten Strich (|) voneinander getrennt. Beispiele für Adresstypen sind: country, street_address, postal_code. Die vollständige Liste der zulässigen Werte finden Sie auf dieser Seite unter address types. Durch Angabe eines Typs werden die Ergebnisse auf diesen Typ beschränkt. Wenn Sie mehrere Typen angeben, gibt die API alle Adressen zurück, die mit mindestens einem der Typen übereinstimmen. Hinweis: Dieser Parameter ist nur für Anforderungen verfügbar, die einen API-Schlüssel oder eine Client-ID enthalten.
  • location_type — ein oder mehrere Ortstypen, durch senkrechten Strich (|) voneinander getrennt. Durch Angabe eines Typs werden die Ergebnisse auf diesen Typ beschränkt. Wenn Sie mehrere Typen angeben, gibt die API alle Adressen zurück, die mit mindestens einem der Typen übereinstimmen. Hinweis: Dieser Parameter ist nur für Anforderungen verfügbar, die einen API-Schlüssel oder eine Client-ID enthalten. Folgende Werte werden unterstützt:
    • "ROOFTOP" beschränkt die Ergebnisse auf Adressen, für die präzise Informationen bis hin zur Postanschrift vorhanden sind.
    • "RANGE_INTERPOLATED" beschränkt die Ergebnisse auf solche, die eine Näherungsangabe (meist auf einer Straße) darstellen, welche sich zwischen zwei präzisen Punkten (bspw. Kreuzungen) befindet. Interpolierte Bereiche geben meist an, dass präzise Geocodes für eine Postanschrift nicht verfügbar sind.
    • "GEOMETRIC_CENTER" beschränkt die Ergebnisse auf die geometrische Mitte eines Orts wie z. B. einer Polylinie (bspw. einer Straße) oder eines Polygons (einer Region).
    • "APPROXIMATE" beschränkt die Ergebnisse auf solche, die Näherungsangaben darstellen.

Ist sowohl die Beschränkung result_type als auch die Beschränkung location_type vorhanden, gibt die API nur die Ergebnisse zurück, die sowohl mit result_type als auch mit location_type übereinstimmen.

Umgekehrtes Geocoding für einen Breiten- und Längengrad-Wert

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

Hinweis: Beachten Sie, dass sich zwischen den Werten für den Breiten- und den Längengrad kein Leerzeichen befinden darf, wenn sie im latlng übergeben werden.

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 results[] ...

Beachten Sie, dass das umgekehrte Geocoding mehr als ein Ergebnis zurückgegeben hat. Die Ergebnisse unter "formatted_address" sind nicht nur Postanschriften, sondern umfassen sämtliche geografischen Bezeichnungen für den Ort. Wenn Sie bspw. einen Punkt in Chicago geocodieren, kann dieser als Postanschrift, Stadt (Chicago), Bundesstaat (Illinois) oder Land (USA) angegeben sein. All dies sind für den Geocoder „Adressen“. Die umgekehrte Geocodierung gibt alle diese Typen als gültige Ergebnisse zurück.

Die umgekehrte Geocodierung gibt Übereinstimmungen mit Verwaltungseinheiten (Ländern, Provinzen, Städten, Stadtteilen), Postanschriften und Postleitzahlen zurück.

Im Folgenden sehen Sie die vollständige Liste der Werte von formatted_address, die von der vorhergehenden Abfrage zurückgegeben wurden.

"formatted_address" : "277 Bedford Avenue, Brooklyn, NY 11211, USA",
"formatted_address" : "Grand St/Bedford Av, Brooklyn, NY 11211, USA",
"formatted_address" : "Grand St/Bedford Av, Brooklyn, NY 11249, USA",
"formatted_address" : "Bedford Av/Grand St, Brooklyn, NY 11211, USA",
"formatted_address" : "Brooklyn, NY 11211, USA",
"formatted_address" : "Williamsburg, Brooklyn, NY, USA",
"formatted_address" : "Brooklyn, NY, USA",
"formatted_address" : "New York, NY, USA",
"formatted_address" : "New York, USA",
"formatted_address" : "United States",

Normalerweise sind die zurückgegebenen Adressen von der genauesten zur ungenauesten geordnet. Die genaueste Adresse wird an erster Stelle angezeigt. Beachten Sie, dass verschiedene Adresstypen zurückgegeben werden, von der genauen Postanschrift bis hin zu weniger genauen Verwaltungseinheiten wie Stadtteilen, Städten, Counties, Bundesstaaten usw. Wenn Sie die Übereinstimmung mit einem bestimmten Adresstyp wünschen, beachten Sie die Hinweise im Abschnitt Umgekehrtes Geocoding und Einschränkung nach Typen.

Hinweis: Die Ergebnisse des umgekehrten Geocoding sind Schätzungen. Es wird versucht, den nächstgelegenen Ort mit einer Adresse zu finden, wobei eine gewisse Toleranz angewendet wird. Werden keine Übereinstimmungen gefunden, gibt der Geocoder null Ergebnisse zurück.

Umgekehrtes Geocoding für eine Orts-ID

Die folgende Abfrage enthält die Orts-ID eines Orts in Brooklyn:

https://maps.googleapis.com/maps/api/geocode/json?place_id=ChIJd8BlQ2BZwokRAFUEcm_qrcA&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 Ave",
               "short_name" : "Bedford Ave",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Williamsburg",
               "short_name" : "Williamsburg",
               "types" : [ "neighborhood", "political" ]
            },
            {
               "long_name" : "Brooklyn",
               "short_name" : "Brooklyn",
               "types" : [ "sublocality_level_1", "sublocality", "political" ]
            },
            {
               "long_name" : "Kings County",
               "short_name" : "Kings County",
               "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 Ave, 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
               }
            }
         },
         "partial_match" : true,
         "place_id" : "ChIJd8BlQ2BZwokRAFUEcm_qrcA",
         "types" : [ "street_address" ]
      }
   ],
   "status" : "OK"
}

Umgekehrtes Geocoding und Einschränkung nach Typen

Im folgenden Beispiel sind die zurückgegebenen Adressen auf solche mit dem Ortstyp ROOFTOP und dem Adresstyp street_address beschränkt.

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 Einschränkungen gelten nur für das umgekehrte Geocoding.

Antworten beim umgekehrten Geocoding

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

Statuscodes beim umgekehrten Geocoding

Das Feld "status" im Geocoding-Antwortobjekt enthält den Status der Anforderung und kann auch Debuginformationen enthalten, die Ihnen helfen sollen, herauszufinden, warum das umgekehrte Geocoding nicht erfolgreich war. Das Feld "status" kann folgende Werte enthalten:

  • "OK" gibt an, dass keine Fehler aufgetreten sind und mindestens eine Adresse zurückgegeben wurde.
  • "ZERO_RESULTS" gibt an, dass das umgekehrte Geocoding erfolgreich war, aber keine Ergebnisse zurückgegeben hat. Dies kann eintreten, wenn dem Geocoder das Objekt latlng in einem Remotestandort übergeben wurde.
  • "OVER_QUERY_LIMIT" gibt an, dass Sie das Kontingent überschritten haben.
  • "REQUEST_DENIED" gibt an, dass die Anforderung abgelehnt wurde. Dies geschah möglicherweise, weil die Anforderung den Parameter result_type oder location_type enthielt, jedoch keinen API-Schlüssel bzw. keine Client-ID.
  • "INVALID_REQUEST" hat meist eine der folgenden Bedeutungen:
    • Die Abfrage (address, components oder latlng) fehlt.
    • Es wurde ein ungültiger result_type oder location_type angegeben.
  • "UNKNOWN_ERROR" gibt an, dass die Anforderung aufgrund eines Serverfehlers nicht verarbeitet werden konnte. Möglicherweise ist die Anforderung beim nächsten Versuch erfolgreich.

Der Parameter sensor

Bisher war in der Google Maps API die Angabe des Parameters sensor erforderlich. Damit wurde festgelegt, ob seitens der Anwendung ein Sensor zur Ermittlung des Benutzerstandorts verwendet wurde. Dieser Parameter wird nicht mehr benötigt.

Feedback geben zu...

Google Maps Geocoding API
Google Maps Geocoding API