我已经写了一个程序来打印我所在位置的纬度和经度,经纬度是正确的,但不幸的是我无法借助相同的纬度和经度来解释我所在地址,需要一些请帮忙,没有错误也出现了。 我也尝试使用addresses.get(0).getAddressLine(1)但结果相同。 这里gpsTracker是我的GPSTracker类的对象,我用它来显示我的纬度和经度,这是完美的。
以上代码:
bDetails.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
Geocoder geocoder = new Geocoder(getApplicationContext(),
Locale.getDefault());
List<Address> addresses = null;
double latitude = gpsTracker.getLatitude();
double longitude = gpsTracker.getLongitude();
addresses = geocoder
.getFromLocation(latitude, longitude, 1);
String areaName = addresses.get(0).getLocality();
// String cityName = addresses.get(0).getAdminArea();
String pincode = addresses.get(0).getPostalCode();
// String stateName = addresses.get(0).getFeatureName();
String countryName = addresses.get(0).getCountryName();
if (addresses.isEmpty()) {
txtadd.setText("Waiting for Location");
} else {
if (addresses.size() > 0) {
txtadd.setText("Area Name :" + areaName + "\n"
+ "\n" + "PinCode :" + pincode + "\n"
+ "\n" + "Country Name:" + countryName);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
});
任何人都可以建议我必须做出任何更改,以便我能够显示我所在位置的地址吗?
答案 0 :(得分:1)
试试这个
private String getAddressString(double latitude, double longitude) {
String strAddress = "";
Geocoder geocoder = new Geocoder(this, Locale.getDefault());
try {
List<Address> addresses = geocoder.getFromLocation(latitude,
longitude, 1);
if (addresses != null) {
Address returnAddress = addresses.get(0);
StringBuilder strReturnAddress = new StringBuilder("");
for (int i = 0; i < returnAddress.getMaxAddressLineIndex(); i++) {
strReturnAddress
.append(returnAddress.getAddressLine(i)).append(
"\n");
}
strAddress = strReturnAddress.toString();
Log.w("address",
"" + strReturnAddress.toString());
} else {
Log.w("address", "No Address found!");
}
} catch (Exception e) {
e.printStackTrace();
Log.w("address", "Can't get Address!");
}
return strAddress;
}
答案 1 :(得分:0)
我希望你有互联网连接,因为只有上网才能获得地址。 在其他情况下尝试更改坐标。也许你的地方没有地址。