Android(安卓)通过经纬度获取地理位置信息
16lz
2022-05-27
首先获取LocationManager、Location及Criteria
[java] view plain copy print ?- LocationManagerlocationManager;
- Stringcontext=Context.LOCATION_SERVICE;
- locationManager=(LocationManager)getSystemService(context);
- Criteriacriteria=newCriteria();
- criteria.setAccuracy(Criteria.ACCURACY_FINE);
- criteria.setAltitudeRequired(false);
- criteria.setBearingRequired(false);
- criteria.setCostAllowed(false);
- criteria.setPowerRequirement(Criteria.POWER_LOW);
- Stringprovider=locationManager.getBestProvider(criteria,
- true);
- Locationlocation=locationManager
- .getLastKnownLocation(provider);
Criteria 类介绍:
Criteria是“精确度”的意思,Criteria类提供若干个查询条件:
(1) public void setAccuracy( int accuracy)
位置解析的精度,高或低
参数: Criteria. ACCURACY_FINE,
精确模式;
Criteria. ACCURACY_COARSE,模糊模式;
(2) public void setAltitudeRequired(booleanaltitudeRequired)
是否提供海拔高度信息,是或否
(3) public void setBearingRequired(boolean bearingRequired)
是否提供方向信息,是或否
(4) public void setCostAllowed(boolean costAllowed)
是否允许运营商计费,是或否
(5) public void setPowerRequirement(int level)
电池消耗,无、低、中、高,参数 Criteria. NO_REQUIREMENT,Criteria. POWER_LOW,Criteria. POWER_MEDIUM, orCriteria. POWER_HIGH,
(6) public void setSpeedRequired(boolean speedRequired)
是否提供速度信息,是或否
获取地理信息函数:
[java] view plain copy print ?- privatevoidupdateWithNewLocation(Locationlocation){
- Stringcoordinate;
- TextViewloc=(TextView)findViewById(R.id.loc);
- StringaddressStr="noaddress\n";
- if(location!=null){
- doublelat=location.getLatitude();
- doublelng=location.getLongitude();
- coordinate="Latitude:"+lat+"\nLongitude:"+lng;
- doublelatitude=location.getLatitude();
- doublelongitude=location.getLongitude();
- Geocodergeocoder=newGeocoder(context,Locale.getDefault());
- try{
- List<Address>addresses=geocoder.getFromLocation(latitude,
- longitude,1);
- StringBuildersb=newStringBuilder();
- if(addresses.size()>0){
- Addressaddress=addresses.get(0);
- for(inti=0;i<address.getMaxAddressLineIndex();i++){
- sb.append(address.getAddressLine(i)).append("\n");
- }
- sb.append(address.getLocality()).append("\n");
- sb.append(address.getLocality()).append("\n");
- sb.append(address.getCountryName());
- addressStr=sb.toString();
- }
- }catch(IOExceptione){
- e.printStackTrace();
- }
- }else{
- coordinate="nocoordinate!\n";
- }
- loc.setText("yourcoordinate:\n"+coordinate+"\n"
- +addressStr);
- }
更多相关文章
- android 根据pid 获取进程名
- google地图demo
- 访问android所有可以使用的外接设备
- Android(安卓)Socket 编程
- Android(安卓)在Activity中获取控件尺寸的方法
- android点滴3
- android获取设备屏幕分辨率的方法
- android intent pick
- 获取Android正在运行的任务和服务