Effizienter Weg, Adresskomponenten zu extrahieren

8

Aktuell verwende ich den folgenden Code, um das Land, die Postleitzahl, den Ort und die Unterlokalität zu erhalten:

%Vor%

Das ist nicht zufriedenstellend. Gibt es einen anderen Weg, um das gleiche Ergebnis zu erzielen?

    
0xbadf00d 29.11.2011, 16:04
quelle

8 Antworten

0
%Vor%

Dies ist die am besten geeignete Lösung für mich. Es kann auch jemandem helfen.

    
0xbadf00d 10.12.2011, 14:17
quelle
17

Sie können die folgende Funktion verwenden, um eine Adresskomponente zu extrahieren:

%Vor%

Um die Informationen, die Sie aufrufen, zu extrahieren:

%Vor%

usw. ...

    
Johann 25.05.2012 16:43
quelle
8

Sie können es auf

verkürzen %Vor%

Oder versuchen Sie, ein besseres formatiertes Ergebnis zu erhalten? Dann zeigen Sie uns bitte Ihre Anfrage.

    
Bergi 29.11.2011 16:18
quelle
4

Mein Einzeiler mit einem funktionalen Ansatz und map , filter und ES2015:

%Vor%

Verwendung:

%Vor%     
user1429980 20.10.2016 01:41
quelle
3

Ich habe es so gemacht:

%Vor%

Dann benutze ich einfach

%Vor%     
stef 24.01.2013 13:01
quelle
1

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

    
Ignat Ospadov 29.01.2017 17:04
quelle
1

Verwenden von lodash

%Vor%     
James 22.04.2017 17:38
quelle
0

Besucher, die "underscore.js" verwenden, können das Array " address_components " in der Geokodierungsantwort einfach in ein Objektliteral konvertieren:

%Vor%     
Jordan Arseno 04.11.2015 00:12
quelle