[英]Can't get address from longitude and latitude in android
我试图从经度和纬度获取地址,但是当我这样做时,它无效。 它在logcat中的teamtreehouse.com.stromy.MainActivity.getCompleteAddressString(MainActivity.java:163)上显示W / System.err:
这是我尝试过的方法
private String getCompleteAddressString() {
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;
}
我这样称呼它
public void updateDisplay() {
mLocation.setText(getCompleteAddressString());
}
在getCompleteAddressString()方法中,我使用了经度和纬度,这是我已经从另一个方法获得的,并且可以正常工作。 两种方法都以main活动运行。 除此之外,其他所有东西都工作正常,我该如何解决? 此错误的原因是什么?
像这样尝试:
Geocoder gcd = new Geocoder(this, Locale.getDefault());
List<Address> addresses = null;
Address addr = null;
try {
addresses = gcd.getFromLocation(latitude, longitude, 1);
if (addresses != null && addresses.size() > 0) {
addr = addresses.get(0);
String info = "Address is: ";
info += addr.getMaxAddressLineIndex() > 0 ? addr
.getAddressLine(0) : "";
info = info + ", " + addr.getLocality() + ", "
+ addr.getCountryName();
Toast.makeText(getApplicationContext(), info,
Toast.LENGTH_LONG).show();
} else
Toast.makeText(getApplicationContext(),
"Address not found", Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "Address not found",
Toast.LENGTH_LONG).show();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.