无法实现反向地址编码

问题描述

| 我正在为Android开发GPS系统。我可以找到当前位置的纬度和经度,但是当我尝试将纬度和经度转换为物理地址时,我的代码不起作用。我尝试了几种可能性。我已经在这里发布了我的代码。 任何帮助深表感谢。 谢谢。
try {

        List<Address> addresses = gc.getFromLocation(latitude,longitude,1);
        System.out.println(\"\"+latitude);
        StringBuilder sb = new StringBuilder();
        if (addresses.size() > 0) {

        Address address = addresses.get(0);
        for (int i = 0; i < address.getMaxAddressLineIndex(); i++)
        sb.append(address.getAddressLine(i)).append(\"\\n\");
        sb.append(address.getLocality()).append(\"\\n\");
        sb.append(address.getPostalCode()).append(\"\\n\");
        sb.append(address.getCountryName());
        }
        addressstring = sb.toString();
        } catch (IOException e) {}
        } else {
        latLongString = \"No location found\";
        }
        myLocationText.setText(\"Your Current Position is:\\n\" +
        latLongString + \"\\n\" + addressstring);
        }
我的问题是,ѭ1中没有任何值。它仅返回一个空列表。 谁能告诉我问题出在哪里以及如何解决...

解决方法

Geocoder gc = new Geocoder(ctx,Locale.getDefault());
List<Address> addresses;
addresses = gc.getFromLocation(lat,lng,1);        
StringBuilder sb = new StringBuilder();
if (addresses.size() > 0) 
{
    Address address = addresses.get(0);
    for (int i = 0; i < address.getMaxAddressLineIndex(); i++)
         sb.append(address.getAddressLine(i)).append(\",\");
}
这将获得一个位置。但有时会出现例外情况,例如
\"Unable to parse the response from server\"
。您需要处理异常。还要检查清单中的“ 4”。,如果GeoCoder返回一个空列表,则需要检查设备(模拟器或真实电话)上是否有正确的GeoCoder实现。 可以使用Geocoder对象上的isPresent()方法来完成此操作。 http://developer.android.com/reference/android/location/Geocoder.html 另外,在模拟器上运行时,请确保已使用Google API设置了AVD图像。