使用GPS的getFromLocation

时间:2013-07-05 05:56:38

标签: android geocoding locationmanager

谁能告诉我这里出了什么问题。我试图使用反向地理编码来获取地址.`

if (locationGPS != null) {
                    list = geocoder.getFromLocation(locationGPS.getLatitude(),
                            locationGPS.getLongitude(), 3);

                    if (list != null) {
                        if (list.size() > 0) {
                            strZipcode = list.get(0).getPostalCode();
                            strAdminArea = list.get(0).getAdminArea();
                            strLocality = list.get(0).getLocality();
                            strAddressLine = list.get(0).getAddressLine(0);

                            Log.d(TAG, "list of address: "+ list);
                            Log.d(TAG, "Data: "+ mobileDataEnabled);
                            Log.d(TAG, "Data: "+ mobile);



                            int count = 0;
                            while ((strZipcode == null || strAdminArea == null
                                    || strLocality == null || (strAddressLine == null || strAddressLine == "USA"))
                                    && count < list.size()) {
                                strZipcode = list.get(count).getPostalCode();
                                strAdminArea = list.get(count).getAdminArea();
                                strLocality = list.get(count).getLocality();
                                strAddressLine = list.get(count)
                                        .getAddressLine(count);
                                count++;
                            }`

这个工作正常,并给出了正确的地址。但有时它为我试图检索的所有值都给出null,尽管事实上我已经检查了空值。我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

反向地理编码器并不总是返回值。这听起来很奇怪,但这就是它的方式。举个例子,如果你点击地址5次,你就不会有幸得到所有命中的回应。你可能会得到3。因此,解决方法可能是,不是一次点击一个地理编码器,尝试将您的请求循环到2或3次或更多,其中一个请求将有希望。