Übersicht
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 oder zum Positionieren der Karte verwenden können.
Umgekehrtes Geocoding bezeichnet die Umwandlung geografischer Koordinaten in lesbare Adressen. Der Dienst zum umgekehrten Geocoding ermöglicht es Ihnen auch, anhand einer Orts-ID nach einer Adresse zu suchen.
Google Maps API umfasst eine Geocoder-Klasse für dynamisches Geocoding und umgekehrtes Geocoding durch Benutzereingaben. Beim ersten Laden der API wird Ihnen ein Anfangskontingent von Geocoding-Anforderungen zugewiesen. Wenn Sie dieses Kontingent aufgebraucht haben, erfolgt für weitere Anforderungen eine Volumenbegrenzung auf Sekundenbasis. Wenn Sie stattdessen ein Geocoding statischer, bekannter Adressen wünschen, lesen Sie die Dokumentation Geocoding-Webdienst.
Geocoding-Anforderungen
Der Zugriff auf den Geocoding-Dienst erfolgt asynchron, da dazu der Aufruf eines externen Servers durch Google Maps API erforderlich ist. Aus diesem Grund müssen Sie eine Callbackmethode übergeben, die bei Abschluss der Anforderung ausgeführt werden soll. Die Ergebnisse werden mit der Callbackmethode verarbeitet. Beachten Sie, dass der Geocoder mehr als ein Ergebnis zurückgeben kann.
Sie rufen den Geocoding-Dienst von Google Maps API in Ihrem Code über das Objekt google.maps.Geocoder auf. Mit der Methode Geocoder.geocode() wird eine Anforderung an den Geocoding-Dienst initiiert und ein Objektliteral GeocoderRequest übergeben, das die Eingabebedingungen und eine Callbackmethode enthält, die bei Eingang der Antwort ausgeführt wird.
Das Objektliteral GeocoderRequest besteht aus folgenden Feldern:
{
address: string,
location: LatLng,
placeId: string,
bounds: LatLngBounds,
componentRestrictions: GeocoderComponentRestrictions,
region: string
}
Erforderliche Parameter: Sie müssen genau eines der folgenden Felder angeben:
address— die Adresse, für die das Geocoding erfolgen soll.location— der WertLatLng(oderLatLngLiteral) für den Sie die nahegelegenste, visuell lesbare Adresse erhalten möchten. Vom Geocoder wird eine umgekehrte Geocodierung durchgeführt. Weitere Informationen finden Sie im Abschnitt Umgekehrtes Geocoding.placeId— die Orts-ID des Orts, für den Sie die nächstgelegene visuell lesbare 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 Orts-ID (placeId) verwenden, um die Adresse für einen Snap-Punkt abzurufen. Weitere Informationen zu Orts-IDs finden Sie in Orts-ID – Übersicht. Wenn Sie eine Orts-ID (placeId) übergeben, führt der Geocoder eine umgekehrte Geocodierung durch. Weitere Informationen finden Sie im Abschnitt Umgekehrtes Geocoding.
Optionale Parameter:
bounds— der BereichLatLngBounds, für den die Geocoding-Ergebnisse bevorzugt werden sollen. Durch den Parameterboundswerden die Ergebnisse des Geocoders nur beeinflusst, aber nicht vollständig eingeschränkt. (Weitere Informationen finden Sie nachfolgend unter Viewport-Biasing.)componentRestrictions— wird verwendet, um die Ergebnisse auf einen bestimmten Bereich zu beschränken. (Weitere Informationen finden Sie nachfolgend unter Filtern von Komponenten.)region— der Regionscode als IANA-Sprach-Subtagregion. In den meisten Fällen sind diese Tags direkt dem zweistelligen Ländercode der Top-Level-Domain (ccTLD) zugeordnet. Durch den Parameterregionwerden die Ergebnisse des Geocoders nur beeinflusst, aber nicht vollständig eingeschränkt. (Weitere Informationen finden Sie nachfolgend unter Regionscode-Biasing.
Geocoding-Antworten
Der Geocoding-Dienst erfordert eine Callbackmethode, die bei Eingang der Geocoder-Ergebnisse ausgeführt wird. Mit dieser Callbackmethode müssen zwei Parameters mit den Ergebnissen (results) und einem Statuscode (status) in dieser Reihenfolge übergeben werden.
Geocoding-Ergebnisse
Das Objekt GeocoderResult steht für ein einzelnes Geocoding-Ergebnis. Von einer Geocode-Anforderung können mehrere Ergebnisobjekte zurückgegeben werden.
results[]: {
types[]: string,
formatted_address: string,
address_components[]: {
short_name: string,
long_name: string,
postcode_localities[]: string,
types[]: string
},
partial_match: boolean,
place_id: string,
postcode_localities[]: string,
geometry: {
location: LatLng,
location_type: GeocoderLocationType
viewport: LatLngBounds,
bounds: LatLngBounds
}
}
Diese Felder werden nachfolgend erläutert:
types[]ist ein Array, mit dem der Typ des zurückgegebenen Ergebnisses angegeben wird. Dieses Array enthält einen Satz mit null oder mehreren Tags, die den Typ der im Ergebnis zurückgegebenen Eigenschaft bestimmen. So gibt z. B. die Geocodierung von „Chicago“ des Ergebnis „locality“ zurück, das angibt, dass es sich bei „Chicago“ um eine Stadt handelt, sowie „political“, das „Chicago“ als Verwaltungseinheit identifiziert.formatted_addressist eine Zeichenfolge mit der Adresse dieses Orts in visuell lesbarer Form. Diese Adresse stimmt häufig mit der „Postanschrift“ überein, die von Land zu Land variieren kann. (Beachten Sie, dass einige Länder, z. B. Großbritannien, die Weitergabe echter Postanschriften aufgrund von Lizenzeinschränkungen 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 sind nachfolgend aufgeführt. (Weitere Informationen zu Typen finden Sie nachfolgend unter Typen.address_components[]ist ein Array, das die oben beschriebenen einzelnen Adresskomponenten enthält.-
partial_matchgibt 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_idist ein eindeutiger Bezeichner eines Ortes, der für andere Google APIs verwendet werden kann. Beispielsweise können Sieplace_idmit der Bibliothek von 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.postcode_localities[]ist ein Array, das alle in einer Postleitzahl enthaltenen Orte angibt. Das Array ist nur vorhanden, wenn das Ergebnis eine Postleitzahl mit mehreren Orten ist.geometryenthält die folgenden Informationen:locationenthält die geocodierten Breiten- und Längenangaben. Beachten Sie, dass dieser Standort als ObjektLatLngund nicht als formatierte Zeichenfolge zurückgegeben wird.location_typeenthält zusätzliche Daten über den angegebenen Ort. Folgende Werte werden derzeit unterstützt:google.maps.GeocoderLocationType.ROOFTOPgibt an, dass das zurückgegebene Ergebnis ein genauer Geocode ist.google.maps.GeocoderLocationType.RANGE_INTERPOLATEDgibt 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.google.maps.GeocoderLocationType.GEOMETRIC_CENTERgibt 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.google.maps.GeocoderLocationType.APPROXIMATEgibt an, dass das zurückgegebene Ergebnis eine Näherungsangabe ist.
viewportenthält den empfohlenen Viewport für das zurückgegebene Ergebnis.bounds(optional) enthält den BegrenzungsrahmenLatLngBounds, 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 nicht im Viewport zurückgegeben werden sollen.)
Die Adressen werden vom Geocoder mit der vom Browser bevorzugten Spracheinstellung oder in der beim Laden von API JavaScript mithilfe des Parameters language definierten Sprache wiedergegeben. (Weitere Informationen finden Sie unter Lokalisierung.)
Typen von Adresskomponenten
Das Array types[] im zurückgegebenen Ergebnis gibt den Adresstyp an. Diese Typen können auch in Arrays vom Typ address_components[] zurückgegeben werden, um den Typ der jeweiligen Adresskomponente anzugeben. Adressen im Geocoder können mehrere Typen zugewiesen sein; 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 HTTP Geocoder unterstützt und zurückgegeben:
street_addressbezeichnet eine genaue Anschrift.routebezeichnet eine Straße mit einem Namen oder einer Nummer (z. B. „US 101“).intersectionbezeichnet eine wichtige Kreuzung, meist zweier Hauptstraßen.politicalbezeichnet eine Verwaltungseinheit. Dieser Typ steht meist für ein Polygon einer öffentlichen Einrichtung.countrybezeichnet eine nationale Verwaltungseinheit und ist normalerweise der höchste Typ in der vom Geocoder zurückgegebenen Reihenfolge.administrative_area_level_1bezeichnet 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_2bezeichnet 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_3bezeichnet 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_4bezeichnet 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_5bezeichnet 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_areabezeichnet eine allgemein verwendete Alternativbezeichnung der Einheit.localitybezeichnet die Verwaltungseinheit einer Stadt mit Selbstverwaltung.sublocalitybezeichnet eine Verwaltungseinheit erster Ordnung unterhalb der Stufe „Stadt“. Einigen Orten kann zusätzlich einer der folgenden Typen zugewiesen werden:sublocality_level_1bissublocality_level_5. Jede dieser Ebenen ist eine Verwaltungseinheit. Je höher die Zahl, desto kleiner das geografische Gebiet.neighborhoodbezeichnet ein bestimmtes Viertel.premisebezeichnet meist ein bestimmtes Gebäude oder eine Gebäudegruppe mit einer gemeinsamen Bezeichnung.subpremisebezeichnet eine Einheit erster Ordnung unterhalb einer Gebäudegruppe, meist ein einzelnes Gebäude in einer Gebäudegruppe mit einer gemeinsamen Bezeichnung.postal_codebezeichnet die Postleitzahl, die zur Adressierung von Post innerhalb eines Landes verwendet wird.natural_featurebezeichnet ein landschaftliches Wahrzeichen.airportbezeichnet einen Flughafen.parkbezeichnet einen bestimmten Park.
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.
post_boxbezeichnet eine bestimmte Postfachadresse.street_numberbezeichnet die genaue Hausnummer.floorbezeichnet das Stockwerk eines Gebäudes.roombezeichnet einen Raum in einem Gebäude.
Statuscodes
Mit dem Statuscode (status) kann einer der folgenden Werte zurückgegeben werden:
"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,componentsoderlatlng) 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.
In diesem Beispiel geocodieren wir eine Adresse und positionieren einen Marker an den zurückgegebenen Breiten- und Längenangaben. Beachten Sie das der Ziehpunkt als anonymes Funktionsliteral übergeben wird.
var geocoder;
var map;
function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(-34.397, 150.644);
var mapOptions = {
zoom: 8,
center: latlng
}
map = new google.maps.Map(document.getElementById("map"), mapOptions);
}
function codeAddress() {
var address = document.getElementById("address").value;
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
<body onload="initialize()">
<div id="map" style="width: 320px; height: 480px;"></div>
<div>
<input id="address" type="textbox" value="Sydney, NSW">
<input type="button" value="Encode" onclick="codeAddress()">
</div>
</body>
Beispiel anzeigen (geocoding-simple.html)
Umgekehrtes Geocoding (Adressensuche)
Der Begriff Geocoding bezieht sich auf das Übersetzen einer visuell lesbaren Adresse in einen Ort auf einer Karte. Der gegenteilige Vorgang, das Übersetzen eines Ortes auf der Karte in eine lesbare Adresse, wird als umgekehrtes Geocoding bezeichnet.
Das umgekehrte Geocoding wird vom Geocoder direkt unterstützt. Statt einen Adresstext address zu erfassen, geben Sie eine durch Kommas getrennte Breiten-/Längenangabe im Parameter location an. Alternativ geben Sie eine Orts-ID (placeId) an, um die Adresse zu einer bestimmten Orts-ID zu finden.
Umgekehrtes Geocoding nach Standort
Im folgenden Beispiel wird eine Breiten-/Längenangabe geocodiert und die Karte am Standort zentriert. Hier wird ein Info-Fenster mit der formatierten Adresse angezeigt. Wir geben das zweite Ergebnis zurück, das weniger spezifisch ist als das erste (in diesem Fall der Name eines Viertels):
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 8,
center: {lat: 40.731, lng: -73.997}
});
var geocoder = new google.maps.Geocoder;
var infowindow = new google.maps.InfoWindow;
document.getElementById('submit').addEventListener('click', function() {
geocodeLatLng(geocoder, map, infowindow);
});
}
function geocodeLatLng(geocoder, map, infowindow) {
var input = document.getElementById('latlng').value;
var latlngStr = input.split(',', 2);
var latlng = {lat: parseFloat(latlngStr[0]), lng: parseFloat(latlngStr[1])};
geocoder.geocode({'location': latlng}, function(results, status) {
if (status === google.maps.GeocoderStatus.OK) {
if (results[1]) {
map.setZoom(11);
var marker = new google.maps.Marker({
position: latlng,
map: map
});
infowindow.setContent(results[1].formatted_address);
infowindow.open(map, marker);
} else {
window.alert('No results found');
}
} else {
window.alert('Geocoder failed due to: ' + status);
}
});
}
Beispiel anzeigen (geocoding-reverse.html).
Beachten Sie, dass im vorangehenden Beispiel das zweite Ergebnis angezeigt wurde (durch Auswahl von results[1]. Beachten Sie, dass das umgekehrte Geocoding häufig mehr als ein Ergebnis zurückgibt. Geocoding-Adressen 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) gekennzeichnet sein. All diese Angaben sind für den Geocoder „Adressen“. Der umgekehrte Geocoder gibt alle diese 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 Ergebnisse, die von der vorhergehenden Abfrage zurückgegeben wurden.
results[0].formatted_address: "275-291 Bedford Ave, Brooklyn, NY 11211, USA", results[1].formatted_address: "Williamsburg, NY, USA", results[2].formatted_address: "New York 11211, USA", results[3].formatted_address: "Kings, New York, USA", results[4].formatted_address: "Brooklyn, New York, USA", results[5].formatted_address: "New York, New York, USA", results[6].formatted_address: "New York, USA", results[7].formatted_address: "United States"
Die Adressen werden nach Relevanz in absteigender Reihenfolge zurückgegeben. Normalerweise wird die genaueste Adresse 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, Countys, Bundesstaaten usw. Wenn Sie eine allgemeinere Adresse abgleichen möchten, ist es ggf. sinnvoll, das Feld results[].types zu überprüfen.
Hinweis: Umgekehrtes Geocoding ist keine exakte Wissenschaft. Es wird versucht, den nächstgelegenen Ort mit einer Adresse zu finden, wobei eine gewisse Toleranz angewendet wird.
Umgekehrtes Geocoding nach Orts-ID
Im folgenden Beispiel wird eine Orts-ID akzeptiert, die zugehörige Adresse ermittelt und die Karte um diesen Standort zentriert. Außerdem wird ein Info-Fenster mit der formatierten Adresse des jeweiligen Orts angezeigt.
// Initialize the map.
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 8,
center: {lat: 40.72, lng: -73.96}
});
var geocoder = new google.maps.Geocoder;
var infowindow = new google.maps.InfoWindow;
document.getElementById('submit').addEventListener('click', function() {
geocodePlaceId(geocoder, map, infowindow);
});
}
// This function is called when the user clicks the UI button requesting
// a reverse geocode.
function geocodePlaceId(geocoder, map, infowindow) {
var placeId = document.getElementById('place-id').value;
geocoder.geocode({'placeId': placeId}, function(results, status) {
if (status === google.maps.GeocoderStatus.OK) {
if (results[0]) {
map.setZoom(11);
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
infowindow.setContent(results[0].formatted_address);
infowindow.open(map, marker);
} else {
window.alert('No results found');
}
} else {
window.alert('Geocoder failed due to: ' + status);
}
});
}
Beispiel anzeigen (geocoding-place-id.html).
Viewport-Biasing
Sie können für den Geocoding-Dienst auch vorgeben, dass Ergebnisse innerhalb eines bestimmten Viewports (ausgedrückt als Begrenzungsrahmen) zu bevorzugen sind. Dazu legen Sie in der URL der Anforderung den Parameter bounds im Objektliteral GeocoderRequest fest, um den Begrenzungsrahmen dieses Viewports zu definieren. 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.
Eine Geocoding-Anforderung für „Winnetka“ gibt normalerweise diesen Vorort von Chicago zurück:
{
"types":["locality","political"],
"formatted_address":"Winnetka, IL, USA",
"address_components":[{
"long_name":"Winnetka",
"short_name":"Winnetka",
"types":["locality","political"]
},{
"long_name":"Illinois",
"short_name":"IL",
"types":["administrative_area_level_1","political"]
},{
"long_name":"United States",
"short_name":"US",
"types":["country","political"]
}],
"geometry":{
"location":[ -87.7417070, 42.1083080],
"location_type":"APPROXIMATE"
},
"place_id": "ChIJW8Va5TnED4gRY91Ng47qy3Q"
}
Definieren Sie jedoch den Parameter bounds, der einen Begrenzungsrahmen für das San Fernando Valley von Los Angeles definiert, so wird der Geocode des dortigen Stadtteils Winnetka zurückgegeben:
{
"types":["sublocality","political"],
"formatted_address":"Winnetka, California, USA",
"address_components":[{
"long_name":"Winnetka",
"short_name":"Winnetka",
"types":["sublocality","political"]
},{
"long_name":"Los Angeles",
"short_name":"Los Angeles",
"types":["administrative_area_level_3","political"]
},{
"long_name":"Los Angeles",
"short_name":"Los Angeles",
"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"]
}],
"geometry":{
"location": [34.213171,-118.571022],
"location_type":"APPROXIMATE"
},
"place_id": "ChIJ0fd4S_KbwoAR2hRDrsr3HmQ"
}
Regionscode-Biasing
Verwenden Sie den Parameter region, um den Geocoding-Dienst auf eine bestimmte Region ausgerichtete Ergebnisse zurückgeben zu lassen. Dieser Parameter verwendet einen Regionscode, ausgedrückt als IANA-Sprach-Subtag region. In den meisten Fällen sind diese Tags direkt dem zweistelligen Ländercode der Top-Level-Domain (ccTLD) zugeordnet, z. B. wie „uk“ in „co.uk“. In einigen Fällen werden vom Tag region auch Codes gemäß ISO-3166-1 unterstützt, die sich von ccTLD-Werten unterscheiden können (z. B. „GB“ für „Großbritannien“).
Geocoding-Anforderungen können für alle Domänen gesendet werden, in denen Geocoding über die Google Maps-Anwendung bereitgestellt wird. 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 die USA als Standarddomäne für den Geocoding-Dienst festgelegt sind:
{
"types":["locality","political"],
"formatted_address":"Toledo, OH, USA",
"address_components":[{
"long_name":"Toledo",
"short_name":"Toledo",
"types":["locality","political"]
},{
"long_name":"Ohio",
"short_name":"OH",
"types":["administrative_area_level_1","political"]
},{
"long_name":"United States",
"short_name":"US",
"types":["country","political"]
}],
"place_id": "ChIJeU4e_C2HO4gRRcM6RZ_IPHw"
}
Eine Geocode für „Toledo“, bei dem das Feld region auf 'es' (Spanien) gesetzt ist, gibt dagegen die Stadt in Spanien zurück.
{
"types":["locality","political"],
"formatted_address":"Toledo, España",
"address_components":[{
"long_name":"Toledo",
"short_name":"Toledo",
"types":["locality","political"]
},{
"long_name":"Toledo",
"short_name":"TO",
"types":["administrative_area_level_2","political"]
},{
"long_name":"Castilla-La Mancha",
"short_name":"CM",
"types":["administrative_area_level_1","political"]
},{
"long_name":"España",
"short_name":"ES",
"types":["country","political"]
}],
"place_id": "ChIJ8f21C60Lag0R_q11auhbf8Y"
}
Filtern von Komponenten
Sie können den Geocoding-Dienst Adressergebnisse zurückgeben lassen, die auf eine bestimmte Region beschränkt sind. Definieren Sie die Einschränkung mithilfe des Parameters componentRestrictions. Ein Filter besteht aus mindestens einem der folgenden Werte: route, locality, administrativeArea, postalCode oder country. 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.
In der folgenden Beispielfunktion wird der Parameter componentRestrictions verwendet, um nach country und postalCode zu filtern:
function codeAddress() {
geocoder.geocode({
componentRestrictions: {
country: 'AU',
postalCode: '2000'
}
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
} else {
window.alert('Geocode was not successful for the following reason: ' + status);
}
});
}
