【问题标题】:How can i get address from LatLng我如何从 LatLng 获取地址
【发布时间】:2015-03-26 09:23:54
【问题描述】:

我想从 LatLng 获取位置地址
我尝试了一些方法但我没有得到答案,因为这个服务似乎被谷歌关闭了,所以当我使用以下代码时出现超时错误,还有其他解决方案吗?

Geocoder geocoder;
List<Address> addresses;
geocoder = new Geocoder(this, Locale.getDefault());
addresses = geocoder.getFromLocation(latitude, longitude, 1);

String address = addresses.get(0).getAddressLine(0);
String city = addresses.get(0).getAddressLine(1);
String country = addresses.get(0).getAddressLine(2);

【问题讨论】:

    标签: android google-maps


    【解决方案1】:
     private String getCompleteAddressString(double LATITUDE, double LONGITUDE) {
                String strAdd = "";
                Geocoder geocoder = new Geocoder(this, Locale.getDefault());
                try {
                    List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 1);
                    if (addresses != null) {
                        Address returnedAddress = addresses.get(0);
                        StringBuilder strReturnedAddress = new StringBuilder("");
    
                        for (int i = 0; i < returnedAddress.getMaxAddressLineIndex(); i++) {
                            strReturnedAddress.append(returnedAddress.getAddressLine(i)).append("\n");
                        }
                        strAdd = strReturnedAddress.toString();
                        Log.w("My Current loction address", "" + strReturnedAddress.toString());
                    } else {
                        Log.w("My Current loction address", "No Address returned!");
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                    Log.w("My Current loction address", "Canont get Address!");
                }
                return strAdd;
            }
    

    试试这个功能,效果很好。

    【讨论】:

      【解决方案2】:

      这工作正常,检查下面的代码并将您的 geocoder.getFromLocation() 方法保留在 try 块中 Click Here

      【讨论】:

        【解决方案3】:

        试试这个

            public static String getAddressInString(Context context, LatLng latLng) {
            Geocoder geocoder = new Geocoder(context, Locale.getDefault());
            try {
                List<Address> addresses = geocoder.getFromLocation(latLng.latitude, latLng.longitude, 1);
                if (addresses != null && addresses.size() > 0) {
                    return convertToString(addresses.get(0));
                } else {
                    return "";
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return "";
        }
        
        public static String convertToString(Address obj) {
            String add = "";
            if (obj == null)
                return "";
            add = obj.getAddressLine(0);
            if (obj.getSubAdminArea() != null)
                add = add + "\n" + obj.getSubAdminArea();
            if (obj.getPostalCode() != null)
                add = add + " - " + obj.getPostalCode();
            if (obj.getAdminArea() != null)
                add = add + "\n" + obj.getAdminArea();
            if (obj.getCountryName() != null)
                add = add + "\n" + obj.getCountryName();
            return add;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-23
          • 1970-01-01
          • 2011-04-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多