没有真正的经纬度?只得到0.0 0.0

时间:2014-03-22 14:17:09

标签: android latitude-longitude google-geocoder

这里我使用此代码来获取位置的纬度和经度,但我得到的只是纬度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。

1 个答案:

答案 0 :(得分:0)

我猜你没有获得用于获取此信息的后端服务。

注意 The Docs say

  

Geocoder类需要一个未包含的后端服务   核心android框架。 Geocoder查询方法将返回一个   如果平台中没有后端服务,则为空列表。使用   isPresent()方法确定是否有Geocoder实现   存在。

如果还没有完成,也应该在后台Thread上完成。

替代

使用LocationManager

可能会更好

在开始了解它的工作原理和应该实现之前,请务必阅读相关文档(该部分很简短)。

Here is an example that can get you started

此类内容应在后台Thread而不是UI Thread上完成。并且有些听众可以返回您需要的值。

完全披露:我还没有使用GPS,但我通读了文档;)