这里我使用此代码来获取位置的纬度和经度,但我得到的只是纬度0.0和经度0.0,我找到的纬度和经度的代码如下所示,我在Genymotion模拟器中测试此代码,并且在日志中打印的所有内容都是0.0 0.0,因为if(address.size()> 0)没有得到满足可以任何人告诉我哪里出错或是因为模拟器
Geocoder geo = new Geocoder(getActivity());
try {
List<Address> address = geo.getFromLocationName(str_ELocation,1);
if (address.size() > 0) {
Log.d("List Size : ", "" + address.size());
latitude = address.get(0).getLatitude();
longitude = address.get(0).getLongitude();
} else {
Log.d("In Else", "In Else");
}
} catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
}
Log.d("LONGITUDE AND LATITUDE", "" + longitude + "" + latitude);
还有其他更简单的解决方案来找到纬度和经度。我在Fragment中使用它,所以我在这里使用getActivity()而不是myClassName.this。
答案 0 :(得分:0)
我猜你没有获得用于获取此信息的后端服务。
注意 The Docs say
Geocoder类需要一个未包含的后端服务 核心android框架。 Geocoder查询方法将返回一个 如果平台中没有后端服务,则为空列表。使用 isPresent()方法确定是否有Geocoder实现 存在。
如果还没有完成,也应该在后台Thread
上完成。
在开始了解它的工作原理和应该实现之前,请务必阅读相关文档(该部分很简短)。
Here is an example that can get you started
此类内容应在后台Thread
而不是UI Thread
上完成。并且有些听众可以返回您需要的值。
完全披露:我还没有使用GPS,但我通读了文档;)