无法从 android 中的经度和纬度获取地址
Can't get address from longitude and latitude in android
我试图从经度和纬度获取我的地址,但是当我试图这样做时,它不起作用。它说 W/System.err﹕ 在 teamtreehouse.com.stromy.MainActivity.getCompleteAddressString(MainActivity.java:163) 在 logcat
这是我试过的方法
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() 方法中,我使用了经度和纬度,我已经从另一种方法获得了它们并且工作正常。两种方法都是 运行 with main activity 。除此以外,其他一切正常,我该如何解决?这个错误的原因是什么?
这样试试:
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();
}
我试图从经度和纬度获取我的地址,但是当我试图这样做时,它不起作用。它说 W/System.err﹕ 在 teamtreehouse.com.stromy.MainActivity.getCompleteAddressString(MainActivity.java:163) 在 logcat
这是我试过的方法
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() 方法中,我使用了经度和纬度,我已经从另一种方法获得了它们并且工作正常。两种方法都是 运行 with main activity 。除此以外,其他一切正常,我该如何解决?这个错误的原因是什么?
这样试试:
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();
}