在我的项目中,我使用Google Maps Activity,并使用setMyLocationEnabled(this);
方法获取用户的当前位置,以获取位置。当我尝试从该位置获取经度和纬度时,会引发错误,表示空对象引用。
我在YouTube上寻找了很多视频,并检查了堆栈溢出和博客中的许多问题,但是我找不到合适的代码来做到这一点。有些使用不推荐使用的方法,有些超出了主题。
因此,我要做的就是进行反向地理编码,以从我的位置获取地址,并在该位置添加标记。
[帮助我指导做什么以及如何获得过去4天内遇到的困扰。
反向地理编码就是您想要的。可以使用Geocoder类看这个Android: Reverse geocoding - getFromLocation
它将为您提供使用反向地理编码的想法
您可以使用getFromLocation中的Geocoder。
样本代码。
Geocoder geocoder = new Geocoder(context, Locale.getDefault());
try {
List<Address> addressList = geocoder.getFromLocation(
latitude, longitude, 1);
if (addressList != null && addressList.size() > 0) {
Address address = addressList.get(0);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < address.getMaxAddressLineIndex(); i++) {
sb.append(address.getAddressLine(i)).append("\n");
}
sb.append(address.getLocality()).append("\n");
sb.append(address.getPostalCode()).append("\n");
sb.append(address.getCountryName());
String result = sb.toString();
}
} catch (IOException e) {
Log.e(TAG, "Unable connect to Geocoder", e);
}