如何通过setMyLocationEnabled(true)从当前位置获取地址;

问题描述 投票:0回答:2

在我的项目中,我使用Google Maps Activity,并使用setMyLocationEnabled(this);方法获取用户的当前位置,以获取位置。当我尝试从该位置获取经度和纬度时,会引发错误,表示空对象引用。

我在YouTube上寻找了很多视频,并检查了堆栈溢出和博客中的许多问题,但是我找不到合适的代码来做到这一点。有些使用不推荐使用的方法,有些超出了主题。

因此,我要做的就是进行反向地理编码,以从我的位置获取地址,并在该位置添加标记。

[帮助我指导做什么以及如何获得过去4天内遇到的困扰。

java android google-maps reverse-geocoding
2个回答
0
投票

反向地理编码就是您想要的。可以使用Geocoder类看这个Android: Reverse geocoding - getFromLocation

它将为您提供使用反向地理编码的想法


0
投票

您可以使用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);
}
© www.soinside.com 2019 - 2024. All rights reserved.