根据设备定位所得的经纬度,获得具体的地址
2011-09-28 20:33
435 查看
关于android2.2地图定位的问题,程序员取得了设备所在经纬度,得不到具体的地址。这里做一下总结。 转自:http://blog.csdn.net/sun6223508/archive/2011/06/21/6559384.aspx
List<Address> addList = null; Geocoder ge = new Geocoder(activity); try { addList = ge.getFromLocation(经度, 纬度,1); } catch (IOException e) { // TODO Auto-generated catch block if("sdk".equals( Build.PRODUCT )) { Log.d(TAG, "Geocoder doesn't work under emulation."); addList= ReverseGeocode.getaddressLocation(location.getLatitude(), location.getLongitude(), 3); } else{ e.printStackTrace(); } }
public static List<Address> getaddressLocation(double lat, double lon, int maxResults) {
String url = "http://maps.google.com/maps/geo?q=" + lat + "," + lon + "&output=json&sensor=false";
String response = "";
List<Address> results = new ArrayList<Address>();
HttpClient client = new DefaultHttpClient();
try {
HttpResponse hr = client.execute(new HttpGet(url));
HttpEntity entity = hr.getEntity();
BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent()));
String buff = null;
while ((buff = br.readLine()) != null)
response += buff;
} catch (IOException e) {
e.printStackTrace();
}
JSONArray responseArray = null;
try {
JSONObject jsonObject = new JSONObject(response);
responseArray = jsonObject.getJSONArray("Placemark");
} catch (JSONException e) {
return results;
}
for(int i = 0; i < responseArray.length() && i < maxResults-1; i++) {
Address addy = new Address(Locale.getDefault());
try {
JSONObject jsl = responseArray.getJSONObject(i);
String addressLine = jsl.getString("address");
if(addressLine.contains(","))
addressLine = addressLine.split(",")[0];
addy.setAddressLine(0, addressLine);
jsl = jsl.getJSONObject("AddressDetails").getJSONObject("Country");
addy.setCountryName(jsl.getString("CountryName"));
addy.setCountryCode(jsl.getString("CountryNameCode"));
jsl = jsl.getJSONObject("AdministrativeArea");
addy.setAdminArea(jsl.getString("AdministrativeAreaName"));
jsl = jsl.getJSONObject("Locality");
addy.setLocality(jsl.getString("LocalityName"));
addy.setThoroughfare(jsl.getJSONObject("Thoroughfare").getString("ThoroughfareName"));
} catch (JSONException e) {
e.printStackTrace();
continue;
}
results.add(addy);
}
return results;
}
相关文章推荐
- iOS定位获取当前所在经纬度,进而获得具体地址(省市地区街道)
- iOS开发——定位获取经纬度坐标,并反编码获得地理位置信息(具体地址,国家、省、市等)
- iOS定位获取当前所在经纬度,进而获得具体地址(省市地区街道)
- 关于android2.2地图定位的问题,取得了设备所在经纬度,得不到具体的地址的问题
- 关于android2.2地图定位的问题,程序员取得了设备所在经纬度,得不到具体的地址。这里做一下总结。
- iOS定位获取当前所在经纬度,进而获得具体地址(省市地区街道)
- java实现根据经纬度获取具体地址
- Android如何根据百度地图api将具体地址转化为经纬度啊
- 百度地图根据经纬度取得具体的一个地址
- 百度地图API根据具体地址获取经纬度
- 根据经纬度获得地址位置
- C#利用微软库完成设备网络定位(经纬度-地址)
- GMap.Net根据地址搜索,并双击获得经纬度((Winform)最新版本的代码))
- GMap.Net根据地址搜索,并双击获得经纬度((Winform)最新版本的代码)
- 定位到的经纬度,转化为具体地址信息
- 百度地图根据省市县定位,经纬度和地址信息互相转化JS示例
- 根据经纬度查询地址
- Android Map Api 使用和开发(2) 定位我的位置、地图弹出泡泡、通过经纬度获取地址
- Android Map Api 使用和开发(2) 定位我的位置、地图弹出泡泡、通过经纬度获取地址
- CLLocationManager定位经纬度,MKReverseGeocoder地址解析, MKMapView 地图显示 iphone