1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Android获取地理坐标 Android 通过经纬度获取地理位置信息

Android获取地理坐标 Android 通过经纬度获取地理位置信息

时间:2019-06-21 13:49:54

相关推荐

Android获取地理坐标 Android 通过经纬度获取地理位置信息

首先获取LocationManager、Location及Criteria

LocationManager locationManager;

String context = Context.LOCATION_SERVICE;

locationManager = (LocationManager) getSystemService(context);

Criteria criteria = new Criteria();

criteria.setAccuracy(Criteria.ACCURACY_FINE);

criteria.setAltitudeRequired(false);

criteria.setBearingRequired(false);

criteria.setCostAllowed(false);

criteria.setPowerRequirement(Criteria.POWER_LOW);

String provider = locationManager.getBestProvider(criteria,

true);

Location location = 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 voidsetPowerRequirement(int level)

电池消耗,无、低、中、高,参数 Criteria. NO_REQUIREMENT,Criteria. POWER_LOW,Criteria. POWER_MEDIUM, orCriteria. POWER_HIGH,

(6) public voidsetSpeedRequired(boolean speedRequired)

是否提供速度信息,是或否

获取地理信息函数:

private void updateWithNewLocation(Location location) {

String coordinate;

TextView loc = (TextView) findViewById(R.id.loc);

String addressStr = "no address \n";

if (location != null) {

double lat = location.getLatitude();

double lng = location.getLongitude();

coordinate = "Latitude:" + lat + "\nLongitude:" + lng;

double latitude = location.getLatitude();

double longitude = location.getLongitude();

Geocoder geocoder = new Geocoder(context, Locale.getDefault());

try {

Listaddresses = geocoder.getFromLocation(latitude,

longitude, 1);

StringBuilder sb = new StringBuilder();

if (addresses.size() > 0) {

Address address = addresses.get(0);

for (int i = 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 (IOException e) {

e.printStackTrace();

}

} else {

coordinate = "no coordinate!\n";

}

loc.setText("your coordinate:\n" + coordinate + "\n"

+ addressStr);

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。