谁能告诉我这里出了什么问题。我试图使用反向地理编码来获取地址.`
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,尽管事实上我已经检查了空值。我错过了什么吗?
答案 0 :(得分:0)
反向地理编码器并不总是返回值。这听起来很奇怪,但这就是它的方式。举个例子,如果你点击地址5次,你就不会有幸得到所有命中的回应。你可能会得到3。因此,解决方法可能是,不是一次点击一个地理编码器,尝试将您的请求循环到2或3次或更多,其中一个请求将有希望。