当前位置: 代码迷 >> Android >> Android 依据城市名称获取经纬度
  详细解决方案

Android 依据城市名称获取经纬度

热度:33   发布时间:2016-05-01 13:50:08.0
Android 根据城市名称获取经纬度
/**			 * 根据城市名称获取经纬度			 * 			 * @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;			}		});
  相关解决方案