Android - 经纬度值为 0.0 和 0.0

Posted

技术标签:

【中文标题】Android - 经纬度值为 0.0 和 0.0【英文标题】:Android - Lat long values are 0.0 and 0.0 【发布时间】:2015-03-31 23:28:21 【问题描述】:

我正在尝试为某个应用程序获取我的设备位置。代码返回纬度和经度的 0.0。我需要改变什么?堆栈溢出不会让我在没有另一句话的情况下发布这个问题。希望这么多的文字就足够了。

//Getting the location
        LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
        LocationListener ll = new LocationListener() 

            @Override
            public void onLocationChanged(Location location) 
                // TODO Auto-generated method stub
                if(location !=null)
                    plat = location.getLatitude();
                    plong = location.getLongitude();
                

            

            @Override
            public void onStatusChanged(String provider, int status, Bundle extras) 
                // TODO Auto-generated method stub

            

            @Override
            public void onProviderEnabled(String provider) 
                // TODO Auto-generated method stub

            

            @Override
            public void onProviderDisabled(String provider) 
                // TODO Auto-generated method stub

            


        ;
        lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
        Log.d("lat: ",Double.toString(plat));
        Log.d("long: ",Double.toString(plong)); 

【问题讨论】:

【参考方案1】:

RequestLocationUpdates 是异步的——它需要时间。在调用 onLocationChanged 之前,plat 和 plong 的值不会准备好。所以在那之前你不能使用它们。

【讨论】:

【参考方案2】:

移动

Log.d("lat: ",Double.toString(plat));
Log.d("long: ",Double.toString(plong));

public void onLocationChanged(Location location)

并确保 GPS 已启用

【讨论】:

谢谢 Gabe 和 Muhannad。我将 Log.d 移到 onLocationChange 中,它们显示了正确的纬度和经度。当我后来使用 plat 和 plong 将数据存储在字符串中并推送到我的服务器时,我通常会得到 0.0.0.0。只有一次我得到了正确的价值观。 @Gabe:这是我第一次这样做。我需要做什么才能正确获取数据? 你能发布你用来发送这个数据的代码+你什么时候调用这个代码?

以上是关于Android - 经纬度值为 0.0 和 0.0的主要内容,如果未能解决你的问题,请参考以下文章

ANDROID:在其他类中获取纬度和经度,但值变为0.0

用百度SDK在Android中获取本机的经纬度,结果总是返回0.0有没有人和我遇到一样的情况呀

Android:如何获取经度和纬度的当前位置?

安装应用程序上的 Android getLocation 为 0.0

在地图中显示当前位置时获取纬度和经度0.0

我的经纬度总是显示 0.0