我正在尝试在 android 中使用 GPS 显示确切的地址名称。所以我已经搜索并得到了这个例子,我正在关注它。
上面的示例仅以数字显示确切的经度和纬度地址,但我需要以这些特定经度和纬度的文本形式显示确切地址。
如何做到这一点?。我已经根据我的知识搜索了这个,但仍然没有得到任何好的解决方案。如果你有,谁能告诉我解决方案。
将lat和long传递给以下方法,它将返回您的地址
public String getAddress(double latitude, double longitude) {
String strCompAdd;
try {
Geocoder geocoder;
List<Address> addresses;
geocoder = new Geocoder(passHomeCall.this);
if (latitude != 0 || longitude != 0) {
addresses = geocoder.getFromLocation(latitude, longitude, 1);
String address = addresses.get(0).getAddressLine(0);
String city = addresses.get(0).getAddressLine(1);
String country = addresses.get(0).getAddressLine(2);
Log.d("TAG", "address = " + address + ", city =" + city
+ ", country = " + country);
strCompAdd = address + ", " + city + ", " + country;
strCompAdd = strCompAdd.replaceAll("null", "");
strCompAdd = strCompAdd.replaceAll("Unnamed", "");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
// Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
return strCompAdd;
}
我使用以下代码从 lat 和 lng 中查找地址。它是android自己的位置api。
import android.location.Geocoder;
public static String getPickupXY(double x, double y) throws IOException {
Geocoder geocoder = new Geocoder(applicationContext, Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(x, y, 1);
if (addresses == null || addresses.size() <= 0)
return null;
return (addresses.get(0).getAddressLine(0).toString());
}