Android得到地理位置并分析出具体城市
2012-11-26 10:05
295 查看
Java代码
/**
* 通过GPS得到城市名
*
* @param context
* 一個Activity
* @return 城市名
*/
public static String getCityName(Context context) {
LocationManager locationManager;
String contextString = Context.LOCATION_SERVICE;
locationManager = (LocationManager) context.getSystemService(contextString);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(false);
criteria.setPowerRequirement(Criteria.POWER_LOW);
String cityName = null;
// 取得效果最好的criteria
String provider = locationManager.getBestProvider(criteria, true);
if (provider == null) {
return null;
}
// 得到坐标相关的信息
Location location = locationManager.getLastKnownLocation(provider);
if (location == null) {
return null;
}
if (location != null) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
// 更具地理环境来确定编码
Geocoder gc = new Geocoder(context, Locale.getDefault());
try {
// 取得地址相关的一些信息\经度、纬度
List<Address> addresses = gc.getFromLocation(latitude, longitude, 1);
StringBuilder sb = new StringBuilder();
if (addresses.size() > 0) {
Address address = addresses.get(0);
sb.append(address.getLocality()).append("\n");
cityName = sb.toString();
}
} catch (IOException e) {
}
}
return cityName;
}
/**
* 通过GPS得到城市名
*
* @param context
* 一個Activity
* @return 城市名
*/
public static String getCityName(Context context) {
LocationManager locationManager;
String contextString = Context.LOCATION_SERVICE;
locationManager = (LocationManager) context.getSystemService(contextString);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(false);
criteria.setPowerRequirement(Criteria.POWER_LOW);
String cityName = null;
// 取得效果最好的criteria
String provider = locationManager.getBestProvider(criteria, true);
if (provider == null) {
return null;
}
// 得到坐标相关的信息
Location location = locationManager.getLastKnownLocation(provider);
if (location == null) {
return null;
}
if (location != null) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
// 更具地理环境来确定编码
Geocoder gc = new Geocoder(context, Locale.getDefault());
try {
// 取得地址相关的一些信息\经度、纬度
List<Address> addresses = gc.getFromLocation(latitude, longitude, 1);
StringBuilder sb = new StringBuilder();
if (addresses.size() > 0) {
Address address = addresses.get(0);
sb.append(address.getLocality()).append("\n");
cityName = sb.toString();
}
} catch (IOException e) {
}
}
return cityName;
}
相关文章推荐
- React Native获取地理位置(获取具体城市、经纬度)
- React Native获取地理位置(获取具体城市、经纬度)
- JS根据IP得到经纬度、当前具体地理位置
- Android将地理位置存储到图片扩展信息EXIF
- android webview里HTML5的地理位置定位
- Android通过百度地图API用Service和Alarm在后台定时获取地理位置信息
- android百度地图——获取当前地理位置
- jQuery插件得到你的用户地理位置 - 谷歌地图API v3的位置
- android 百度地图 实现附近的地理位置信息
- Android系统--Binder系统具体框架分析(二)Binder驱动情景分析
- Android窗口管理服务WindowManagerService计算窗口Z轴位置的过程分析
- Android使用criteria选择合适的地理位置服务实现方法
- 用Android Location获取当前地理位置的方法
- Android的开机流程及对应源码位置分析
- Android中的文件存储位置分析
- android应用程序安装位置分析
- Android:使用百度地图SDK定位当前具体位置(类似QQ发表说说的选择地点功能)
- Android中通过Exifinterface读取图片地理位置信息
- 老司机教你分析日志:分析用户的地理位置信息
- Android通过百度地图API用Service和Alarm在后台定时获取地理位置信息