Example usage for android.location Address setLocality

List of usage examples for android.location Address setLocality

Introduction

In this page you can find the example usage for android.location Address setLocality.

Prototype

public void setLocality(String locality) 

Source Link

Document

Sets the locality of the address to the given String, which may be null.

Usage

From source file:grandroid.geo.Geocoder.java

public static List<Address> getFromLocation(Locale locale, double lat, double lng, int maxResult) {
    String language = locale.getLanguage();
    if (locale == Locale.TAIWAN) {
        language = "zh-TW";
    }//from w w  w.j a  v  a2 s  .c om
    String address = String.format(locale,
            "http://maps.googleapis.com/maps/api/geocode/json?latlng=%1$f,%2$f&sensor=false&language="
                    + language,
            lat, lng);//locale.getCountry()
    HttpGet httpGet = new HttpGet(address);
    HttpClient client = new DefaultHttpClient();
    client.getParams().setParameter(AllClientPNames.USER_AGENT,
            "Mozilla/5.0 (Java) Gecko/20081007 java-geocoder");
    //client.getParams().setIntParameter(AllClientPNames.CONNECTION_TIMEOUT, 5 * 1000);
    //client.getParams().setIntParameter(AllClientPNames.SO_TIMEOUT, 25 * 1000);
    HttpResponse response;

    List<Address> retList = null;

    try {
        response = client.execute(httpGet);
        HttpEntity entity = response.getEntity();
        String json = EntityUtils.toString(entity, "UTF-8");

        JSONObject jsonObject = new JSONObject(json);

        retList = new ArrayList<Address>();

        if ("OK".equalsIgnoreCase(jsonObject.getString("status"))) {
            JSONArray results = jsonObject.getJSONArray("results");
            if (results.length() > 0) {
                for (int i = 0; i < results.length() && i < maxResult; i++) {
                    JSONObject result = results.getJSONObject(i);
                    //Log.e(MyGeocoder.class.getName(), result.toString());
                    Address addr = new Address(Locale.getDefault());
                    // addr.setAddressLine(0, result.getString("formatted_address"));

                    JSONArray components = result.getJSONArray("address_components");
                    String streetNumber = "";
                    String route = "";
                    for (int a = 0; a < components.length(); a++) {
                        JSONObject component = components.getJSONObject(a);
                        JSONArray types = component.getJSONArray("types");
                        for (int j = 0; j < types.length(); j++) {
                            String type = types.getString(j);
                            if (type.equals("locality") || type.equals("administrative_area_level_3")) {
                                addr.setLocality(component.getString("long_name"));
                            } else if (type.equals("street_number")) {
                                streetNumber = component.getString("long_name");
                            } else if (type.equals("route")) {
                                route = component.getString("long_name");
                            } else if (type.equals("administrative_area_level_1")) {
                                addr.setAdminArea(component.getString("long_name"));
                            } else if (type.equals("country")) {
                                addr.setCountryName(component.getString("long_name"));
                                addr.setCountryCode(component.getString("short_name"));
                            }
                        }
                    }
                    addr.setAddressLine(0, route + " " + streetNumber);
                    if (result.has("formatted_address")) {
                        addr.setFeatureName(result.getString("formatted_address"));
                    }
                    addr.setLatitude(
                            result.getJSONObject("geometry").getJSONObject("location").getDouble("lat"));
                    addr.setLongitude(
                            result.getJSONObject("geometry").getJSONObject("location").getDouble("lng"));
                    if (addr.getAdminArea() == null) {
                        addr.setAdminArea("");
                    }
                    retList.add(addr);
                }
            }
        }
    } catch (ClientProtocolException e) {
        Log.e("grandroid", "Error calling Google geocode webservice.", e);
    } catch (IOException e) {
        Log.e("grandroid", "Error calling Google geocode webservice.", e);
    } catch (JSONException e) {
        Log.e("grandroid", "Error parsing Google geocode webservice response.", e);
    }
    return retList;
}

From source file:it.smartcampuslab.riciclo.geo.OSMAddress.java

/**
 * Convert the object to {@link Address} data structure
 * @return converted {@link Address} instance with
 * address line corresponding to the formatted address of the object
 * with lat/lon, country name, and locality filled. 
 */// w w  w . j  a  va2s.c om
public Address toAddress() {
    Address a = new Address(locale);
    a.setAddressLine(0, formattedAddress());
    a.setCountryName(country());
    a.setLatitude(location[0]);
    a.setLongitude(location[1]);
    a.setLocality(city());
    return a;
}

From source file:org.microg.networklocation.backends.mapquest.NominatimGeocodeSource.java

private Address parseResponse(Locale locale, JSONObject result) throws JSONException {
    if (!result.has(WIRE_LATITUDE) || !result.has(WIRE_LONGITUDE) || !result.has(WIRE_ADDRESS)) {
        return null;
    }/*  w w w.  j  av a2s. com*/
    Address address = new Address(locale);
    address.setLatitude(result.getDouble(WIRE_LATITUDE));
    address.setLatitude(result.getDouble(WIRE_LONGITUDE));

    int line = 0;
    JSONObject a = result.getJSONObject(WIRE_ADDRESS);

    if (a.has(WIRE_THOROUGHFARE)) {
        address.setAddressLine(line++, a.getString(WIRE_THOROUGHFARE));
        address.setThoroughfare(a.getString(WIRE_THOROUGHFARE));
    }
    if (a.has(WIRE_SUBLOCALITY)) {
        address.setSubLocality(a.getString(WIRE_SUBLOCALITY));
    }
    if (a.has(WIRE_POSTALCODE)) {
        address.setAddressLine(line++, a.getString(WIRE_POSTALCODE));
        address.setPostalCode(a.getString(WIRE_POSTALCODE));
    }
    if (a.has(WIRE_LOCALITY_CITY)) {
        address.setAddressLine(line++, a.getString(WIRE_LOCALITY_CITY));
        address.setLocality(a.getString(WIRE_LOCALITY_CITY));
    } else if (a.has(WIRE_LOCALITY_TOWN)) {
        address.setAddressLine(line++, a.getString(WIRE_LOCALITY_TOWN));
        address.setLocality(a.getString(WIRE_LOCALITY_TOWN));
    } else if (a.has(WIRE_LOCALITY_VILLAGE)) {
        address.setAddressLine(line++, a.getString(WIRE_LOCALITY_VILLAGE));
        address.setLocality(a.getString(WIRE_LOCALITY_VILLAGE));
    }
    if (a.has(WIRE_SUBADMINAREA)) {
        address.setAddressLine(line++, a.getString(WIRE_SUBADMINAREA));
        address.setSubAdminArea(a.getString(WIRE_SUBADMINAREA));
    }
    if (a.has(WIRE_ADMINAREA)) {
        address.setAddressLine(line++, a.getString(WIRE_ADMINAREA));
        address.setAdminArea(a.getString(WIRE_ADMINAREA));
    }
    if (a.has(WIRE_COUNTRYNAME)) {
        address.setAddressLine(line++, a.getString(WIRE_COUNTRYNAME));
        address.setCountryName(a.getString(WIRE_COUNTRYNAME));
    }
    if (a.has(WIRE_COUNTRYCODE)) {
        address.setCountryCode(a.getString(WIRE_COUNTRYCODE));
    }

    return address;
}