/**
* 根据城市名称获取经纬度
*
* @param city
城市中文名称、拼音、英文
* @return location
经纬度数组,0为经度,1为纬度
*/
private String[] getLocationByCityName(String city) {
String[] location = new String[2];
try {
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(
"http://maps.google.com/maps/geo?q=" + city);
int res = 0;
res = httpClient.execute(httpPost).getStatusLine()
.getStatusCode();
if (res == 200) {
/*
* 当返回码为200时,做处理 得到服务器端返回json数据,并做处理
*/
HttpResponse httpResponse = httpClient
.execute(httpPost);
StringBuilder builder = new StringBuilder();
BufferedReader bufferedReader2 = new BufferedReader(
new InputStreamReader(httpResponse.getEntity()
.getContent()));
for (String s = bufferedReader2.readLine(); s != null; s = bufferedReader2
.readLine()) {
builder.append(s);
}
/**
* 这里需要分析服务器回传的json格式数据,
*/
JSONObject jsonObject = new JSONObject(builder
.toString());
JSONArray jsonArray = jsonObject
.getJSONArray("Placemark");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject2 = (JSONObject) jsonArray
.opt(i);
JSONObject jsonObject3 = new JSONObject(jsonObject2
.getString("Point"));
JSONArray jsonArray1 = jsonObject3
.getJSONArray("coordinates");
location[0] = (String) jsonArray1.get(0);
location[1] = (String) jsonArray1.get(1);
}
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return location;
}
});