在版本5.1.1中从纬度和经度获取地址

时间:2018-07-14 11:40:12

标签: android

我是Android的新手,我陷入了一件事。我正在经纬度,我想从latlng获取地址。我成功地从棉花糖和牛轧糖等更高版本的latlng中获取了地址,但在5.1.1版本中却遇到了问题。

在这里,我的地理编码器无法正常工作。我总是空着。我看到了很多答案,但是地理编码器是一件常见的事情,如果有任何选择可以在不使用地理编码器或使用地理编码器的情况下获取地址。

我的代码是

   if (this.geocoder == null) {
        this.geocoder = new Geocoder(this, Locale.getDefault());
    }

    try {
        List<Address> addresses = geocoder.getFromLocation(Double.parseDouble(lat), Double.parseDouble(lng), 1);
            if (!addresses.isEmpty()) {
            address = addresses.get(0).getLocality();  

         PrefsManager.with(this).save(Constants.PREF_ADDRESS,addresses.get(0).
          getLocality());
            return addresses.get(0).getLocality();
        }
    } catch (IOException e) {
        e.printStackTrace();
    }

1 个答案:

答案 0 :(得分:0)

尝试一下:-

Geocoder gcd = new Geocoder(this);
Address address;

try{

    List<Address> adrsList = gcd.getFromLocation(latitude, longitude, 1);

    if(adrsList != null && adrsList.size()>0)
    {
        address = adrsList.get(0);
        buffer = new StringBuffer();

        for(int i=0; i<=address.getMaxAddressLineIndex(); i++)
        {
            buffer.append(address.getAddressLine(i));
        }

            textView.setText("Address: " + buffer.toString());
        }
        else
        {
            Toast.makeText(this, "No Nearby Location Found", Toast.LENGTH_SHORT).show();
        }
    }
    catch (IOException e)
    {
        Toast.makeText(this, "Error: " + e, Toast.LENGTH_SHORT).show();
    }