Mein Einzeiler mit einem funktionalen Ansatz und map
, filter
und ES2015:
Verwendung:
%Vor%Ich glaube wirklich, dass die user1429980 Antwort mehr Anerkennung verdient. Es funktioniert wirklich gut. Meine Antwort basiert auf seiner Funktion. Ich habe ein paar Beispiele hinzugefügt, um besser zu veranschaulichen, wie das JSON-Objekt mit dem bereitgestellten Code user1429980 gesucht wird:
//searches object for a given key and returns the key's value
extractFromObject (object, key) {
return object.filter((object) => component.types.indexOf(key)
=== 0).map((item)=>item.long_name).pop() || null;
}
Beispiel 1: Google reverseGeocode API mit Längen- und Breitengrad ist auf 43.6532,79.3832 (Toronto, Ontario, Kanada) eingestellt:
var jsonData = {} //object contains data returned from reverseGeocode API
var city = extractFromObject(jsonData.json.results[0].address_components, 'locality');
console.log(city); //Output is Toronto
Beispiel 2: Google Places API mit der Orts-ID chIJE9on3F3HwoAR9AhGJW_fL-I (Los Angeles, CA, USA):
var jsonData = {} //object contains data returned from Google's Places API
var city = extractFromObject(jsonData.json.result.address_components, 'locality');
console.log(city); //Output is Los Angeles
Besucher, die "underscore.js" verwenden, können das Array " address_components
" in der Geokodierungsantwort einfach in ein Objektliteral konvertieren:
Tags und Links javascript google-maps google-maps-api-3