java - 除了使用地理编码器之外,如何在 android 中从 lat long 获取地址

标签 java android google-maps location google-geocoder

我正在构建一个应用程序,该应用程序使用经纬度通过 Toast 向用户显示当前地址。我正在使用 Geocoder 将经纬度转换为地址,但情况是,在某些设备上地址工作正常但在某些设备上它会崩溃。然后我在那些崩溃的设备上调试应用程序,我发现在地理编码器行之后它跳转到 catch(Exception),而不执行其他行。 那么,有没有其他方法可以通过经纬度获取位置。

还有一个同样问题的问题here ,但这并没有提供太多解决方案,所以我再次询问。

我的地理编码器 block 是

if (mLastLocation != null) {
        double latitude = mLastLocation.getLatitude();
        double longitude = mLastLocation.getLongitude();
        try {
            geocoder = new Geocoder(this, Locale.getDefault());
            addresses = geocoder.getFromLocation(latitude,longitude,1);
            if (addresses != null && addresses.size() > 0){
                String address = addresses.get(0).getAddressLine(0);
                String city = addresses.get(0).getLocality();
                String state = addresses.get(0).getAdminArea();
                String country = addresses.get(0).getCountryName();
                String postalCode = addresses.get(0).getPostalCode();
                Toast.makeText(getApplicationContext(), "Your address is: " +address+ " "+city+ " " + state+ "\n" +country+ " "+ postalCode, Toast.LENGTH_LONG).show();
            }

        }catch (Exception e){
            e.printStackTrace();
        }

最佳答案

您只需点击传递纬度和经度的 google-maps 网络服务即可。它只是一个 GET 方法网络服务。

http://maps.googleapis.com/maps/api/geocode/json?latlng=32,75&sensor=true

用您自己的经纬度替换经纬度。

关于java - 除了使用地理编码器之外,如何在 android 中从 lat long 获取地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45050663/

相关文章:

java - ArrayList 的 isEmpty() 方法出现 ConcurrentModificationException

android - 在 React Native 中重新加载时更新初始 Prop

Android Studio 方法 getCurrentPosition 必须从 UI 线程调用,当前推断线程是 worker

android - 与 Android 4.0.4 不兼容的 Google Play 服务

java - 谷歌地图坐标转义

java - Java 中的 boolean 字段输出不正确

java - java中的分布式Hashmap或分布式信息存储

java - 在java中绘制图像的奇怪行为

java - 我怎样才能用android发送多张图片

javascript - gmap3 在我的网站上不起作用