package com.bocai.model; import org.json.JSONArray; import org.json.JSONObject; import android.util.Log; public class GoogleAddress { private String country; private String state; private String city; private String street; private String streetNum; private String route; private String district; private String formattedAddress; public String getStreetNum() { return streetNum; } public String getDistrict() { return district; } public void setDistrict(String district) { this.district = district; } public void setStreetNum(String streetNum) { this.streetNum = streetNum; } public String getRoute() { return route; } public void setRoute(String route) { this.route = route; } public String getCountry() { return country; } public String getFormattedAddress() { return formattedAddress; } public String getState() { return state; } public String getCity() { return city; } public String getStreet() { if(street == null || street.equals("")){ StringBuffer sb = new StringBuffer(); sb.append(district); sb.append(route); sb.append(streetNum); street = sb.toString(); } return street; } public GoogleAddress(JSONObject jsonObject){ Log.i("GoogleAddress", "Constructor===" + jsonObject.toString()); try { formattedAddress = jsonObject.getString("formatted_address"); JSONArray array = jsonObject.getJSONArray("address_components"); for(int i=0;i < array.length();i++){ JSONObject jsonAddr = array.getJSONObject(i); String longName = jsonAddr.optString("long_name"); JSONArray types = jsonAddr.optJSONArray("types"); if(contain(types,"street_number")){ streetNum = longName; }else if(contain(types,"route")){ route = longName; }else if(contain(types,"sublocality")){ district = longName; }else if (contain(types,"locality")){ city = longName; }else if (contain(types,"administrative_area_level_1")){ state = longName; }else if(contain(types,"country")){ country = longName; }else{ continue; } } } catch (Exception e) { Log.i("Address", e.getMessage(),e); } } private boolean contain(JSONArray array,String item){ if(array == null || array.length() ==0){ return false; } for(int i=0;i < array.length();i++){ if(item.equals(array.optString(i))){ return true; } } return false; } }