我正在构建一个应用程序,该应用程序使用经纬度通过 Toast 向用户显示当前地址。我正在使用 Geocoder 将经纬度转换为地址,但情况是,在某些设备上地址工作正常但在某些设备上它会崩溃。然后我在那些崩溃的设备上调试应用程序,我发现在地理编码器行之后它跳转到 catch(Exception),而不执行其他行。 那么,有没有其他方法可以通过经纬度获取位置。
还有一个同样问题的问题here ,但这并没有提供太多解决方案,所以我再次询问。
我的地理编码器 block 是
if (mLastLocation != null) {
double latitude = mLastLocation.getLatitude();
double longitude = mLastLocation.getLongitude();
try {
geocoder = new Geocoder(this, Locale.getDefault());
addresses = geocoder.getFromLocation(latitude,longitude,1);
if (addresses != null && addresses.size() > 0){
String address = addresses.get(0).getAddressLine(0);
String city = addresses.get(0).getLocality();
String state = addresses.get(0).getAdminArea();
String country = addresses.get(0).getCountryName();
String postalCode = addresses.get(0).getPostalCode();
Toast.makeText(getApplicationContext(), "Your address is: " +address+ " "+city+ " " + state+ "\n" +country+ " "+ postalCode, Toast.LENGTH_LONG).show();
}
}catch (Exception e){
e.printStackTrace();
}
最佳答案
您只需点击传递纬度和经度的 google-maps 网络服务即可。它只是一个 GET 方法网络服务。
http://maps.googleapis.com/maps/api/geocode/json?latlng=32,75&sensor=true
用您自己的经纬度替换经纬度。
关于java - 除了使用地理编码器之外,如何在 android 中从 lat long 获取地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45050663/