【问题标题】:How to get address from current location from setMyLocationEnabled(true);如何从 setMyLocationEnabled(true) 获取当前位置的地址;
【发布时间】:2020-01-29 12:13:24
【问题描述】:

在我的项目中,我使用了 Google Maps Activity,为了获取用户的当前位置,我使用了setMyLocationEnabled(this); 方法来获取位置。当我试图从该位置获取纬度和经度时,它会抛出一个错误,说空对象引用。

我在 YouTube 上查找了许多视频,并检查了堆栈溢出和博客中的许多问题,但我找不到合适的代码来执行此操作。有些使用不推荐使用的方法,有些则超出了主题。

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

帮助我指导该做什么以及如何让我在过去 4 天里一直坚持这一点。

【问题讨论】:

  • 你应该发布堆栈跟踪。
  • Stacktrace 只是抛出一条消息,例如尝试在空对象引用上获取虚拟方法。

标签: java android google-maps reverse-geocoding


【解决方案1】:

反向地理编码是您正在寻找的。 Geocoder 类可以使用 看看这个Android: Reverse geocoding - getFromLocation

它会让你了解使用反向地理编码

【讨论】:

    【解决方案2】:

    您可以从Geocoder 使用getFromLocation

    示例代码。

    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);
    }
    

    【讨论】:

    • 感谢您的帮助,但代码没有运行它给我一个错误说空指针异常。
    猜你喜欢
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    相关资源
    最近更新 更多