【发布时间】:2016-06-22 09:22:56
【问题描述】:
我正在开发一个应用程序,该应用程序可以在用户输入地址后使用纬度和经度。我正在使用地理编码器从输入地址获取纬度和经度。但问题是两者都从地理编码器返回相关地址,但我只能读取其中一个。以下是我正在使用的代码:
Geocoder geocoder = new Geocoder(this);
List<Address> addresses;
double[] cordinates = new double[2];
try {
addresses = geocoder.getFromLocationName(locName, 1);
if (addresses.size() > 0) {
cordinates[0] = addresses.get(0).getLatitude();
cordinates[1] = addresses.get(0).getLongitude();//unable to get this one
return cordinates;
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
在上述情况下,我能够获得纬度但无法获得经度。我在调试后知道这一点。现在当我像这样交换它们时
cordinates[1] = addresses.get(0).getLongitude();
cordinates[0] = addresses.get(0).getLatitude();
现在我得到经度但不是纬度。 这里有什么问题?
【问题讨论】:
-
在您的问题中包含异常堆栈跟踪
-
@MaxZavernutiy 代码跳转到方法的最后一个,读取第二个坐标时返回null。没有产生异常堆栈
-
尝试将
Address分配给局部变量Address address = addresses.get(0),然后改用局部变量。当您调用get时,List似乎正在使用Address。不知道为什么会发生这种情况(如果发生的话)。
标签: android performance android-studio