获取当前位置经纬度下的地名以及信息,首先获得通过GPS_PROVIDER活动当前的经纬度。然后访问数据库。通过Json方法进行HTTP协议访问获得网络数据。等到地名。
http语句如下:
//从经纬度获得地名
http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=false
//从地名获得经纬度
http://maps.googleapis.com/maps/api/geocode/json?address=SFO&sensor=false
返回值 GeoCodeResponse的组成如下:
//address_component的组成如下:
private String getlocationName(Double Longitude,Double Latitude) {
String url="http://maps.googleapis.com/maps/api/geocode/json?latlng="+Latitude.toString()+","+Longitude.toString()+"&sensor=false";
System.out.println(url);
//建立访问
HttpClient httpClient=new DefaultHttpClient();
String responseData="";
String line="";
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams,30000);
HttpConnectionParams.setSoTimeout(httpParams, 30000);
try {
HttpGet httpGet=new HttpGet(url);
HttpResponse response= httpClient.execute(httpGet);
HttpEntity entity=response.getEntity();
BufferedReader bufferReader=new BufferedReader(new InputStreamReader(entity.getContent()));
while((line = bufferReader.readLine() ) != null)
{
responseData+=line;
}
Gson gson =new Gson();
TestResult testResult = gson.fromjeson(responseData);
return testResult.locationName;
}