从 5.1.1 版本的经纬度获取地址
Posted
技术标签:
【中文标题】从 5.1.1 版本的经纬度获取地址【英文标题】:Getting address from latitude and longitude in version 5.1.1 【发布时间】:2018-12-22 14:27:20 【问题描述】:我是 android 新手,但我被困在一件事上。我有纬度和经度,我想从 latlng 获取地址。我在 Marshmallow 和 Nougat 等较高版本中成功从 latlng 获取地址,但在 5.1.1 版本中遇到问题。
我的地理编码器无法正常工作。我总是得到空值。我已经看到了很多答案,但有一个共同点 Geocoder,如果有任何选项可以在没有地理编码器或使用地理编码器的情况下获取地址。
我的代码是
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();
【问题讨论】:
你能分享你遇到的错误吗? 请阅读Under what circumstances may I add “urgent” or other similar phrases to my question, in order to obtain faster answers? - 总结是这不是解决志愿者的理想方式,并且可能会适得其反。请不要将此添加到您的问题中。 【参考方案1】:试试这个:-
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();
【讨论】:
以上是关于从 5.1.1 版本的经纬度获取地址的主要内容,如果未能解决你的问题,请参考以下文章