【问题标题】:Not getting the real latitude and longitude? Only getting 0.0 0.0没有得到真正的纬度和经度?只得到 0.0 0.0
【发布时间】:2014-03-22 14:17:09
【问题描述】:

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

【问题讨论】:

    标签: android latitude-longitude google-geocoder


    【解决方案1】:

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

    注意 The Docs say

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

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

    另类

    您最好使用LocationManager

    在开始了解它的工作原理和实施方式之前,请务必阅读这些文档(该部分很短)。

    Here is an example that can get you started

    这样的任何事情都应该在背景Thread 上完成,而不是在UI Thread 上。还有一些监听器可以返回你需要的值。

    完整披露:我没有使用 GPS,但我阅读了文档 ;)

    【讨论】:

    • 当然不是问题,至少你试过了,谢谢,是的,位置管理器也会这样。谢谢codeMagic :)。\
    • 哪一部分不是问题?我没有看到您要求结果的任何地方。 Geocoder 类本身还没有信息。它必须从后端服务中检索它。
    • 是的,当我在 Samsung Star Duos 中运行它时,它显示该服务不可用
    • @GauravADubey 那就是问题所在。请改用LocationManager
    • 是的,罗杰那......它已经太晚了,所以明天将使用另一个实时设备尝试它......使用 LocationManager。很快就会更新你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多