需求
APP中通过高德的sdk获取定位坐标,并且在页面中显示坐标对应的中文地址。
方法
- 最终需要的是GPS原始坐标,所以如果是其他的坐标的话需要先进行坐标转换。
- 通过最终的GPS坐标获取中文地址:
// 根据经纬度获取地址信息
private String getAddress(double latitude, double longitude) {
// 坐标转换,这个方法是高德坐标转WGS也就是GPS的方法,如果传进来的就是GPS坐标那就不需要转换
LatLng latLng = MapUtil.convertGCJ2WGS(latitude, longitude);
Geocoder geocoder = new Geocoder(this, Locale.getDefault());
StringBuilder stringBuilder = new StringBuilder();
try {
List<Address> addresses = geocoder.getFromLocation(latLng.latitude, latLng.longitude, 1);
if (addresses.size() > 0) {
Address address = addresses.get(0);
stringBuilder.append(address.getCountryName()).append("-"); //获取国家
stringBuilder.append(address.getAdminArea()).append("-"); //获取省份
stringBuilder.append(address.getLocality()).append("-"); //获取城市
stringBuilder.append(address.getThoroughfare()).append("-"); //获取街道
stringBuilder.append(address.getFeatureName()); //获取门牌号
}
} catch (IOException e) {
e.printStackTrace();
stringBuilder.append("获取地址信息失败");
}
return stringBuilder.toString();
}