Ich möchte den Wert administrative_area_level_1
als Status, locality
Wert als Bereich und formatted_address
Wert als Adresse für die weitere Verwendung abrufen. Ich benutze die Google Maps API, wo ich den Längen- und Breitengrad gebe und es gibt das JSON-Objekt zurück, das die gewünschten Daten enthält.ANDROID JSON Spezifischen Wert von JSON-Daten abrufen
Unten ist das Beispiel der URL, die ich verwende, um die Daten mit dem Teil des Ergebnisses abzurufen, das ich möchte.
http://maps.google.com/maps/api/geocode/json?latlng=1.56406166666667,103.626493333333&sensor=true
{
"results" : [
{
"address_components" : [
{
"long_name" : "Jalan Cengal",
"short_name" : "Jalan Cengal",
"types" : [ "route" ]
},
{
"long_name" : "Johor Bahru",
"short_name" : "Johor Bahru",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Johor",
"short_name" : "Johor",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Malaysia",
"short_name" : "MY",
"types" : [ "country", "political" ]
},
{
"long_name" : "80990",
"short_name" : "80990",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "Jalan Cengal, 80990 Johor Bahru, Johor, Malaysia",
......
So zunächst das ist meine Codierung der Daten Ich möchte abzurufen.
private void extractPosition(JSONObject json)
{
JSONObject result = json.optJSONArray("results").optJSONObject(0);
JSONArray address_components = result.optJSONArray("address_components");
area.setText(address_components.optJSONObject(1).optString("short_name"));
state.setText(address_components.optJSONObject(2).optString("short_name"));
address.setText(result.optString("formatted_address"));
}
Aber dann merke ich die Position nicht immer gleich sein wird, weil einige Koordinaten wie die zusätzlichen Informationen haben unten, so kann ich nicht auf die Position der Daten verlassen.
{
"results" : [
{
"address_components" : [
{
"long_name" : "Jalan Kebudayaan 11",
"short_name" : "Jalan Kebudayaan 11",
"types" : [ "route" ]
},
{
"long_name" : "Taman Universiti",
"short_name" : "Taman Universiti",
"types" : [ "sublocality_level_1", "sublocality", "political" ]
},
{
"long_name" : "Skudai",
"short_name" : "Skudai",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Johor",
"short_name" : "Johor",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Malaysia",
"short_name" : "MY",
"types" : [ "country", "political" ]
},
{
"long_name" : "81300",
"short_name" : "81300",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "Jalan Kebudayaan 11, Taman Universiti, 81300 Skudai, Johor, Malaysia",
.....
Wie soll ich ändern meine Codierung, damit ich die administrative_area_level_1
und locality
Werte abrufen?
nicht berufstätig, bekam nur den Adresswert. –