android - Android 中的 Google map 将纬度/经度初始化为 0.0(有时...)

标签 android google-maps gps latitude-longitude

我一直对这个很困惑。似乎我对 Google map 或拉取用户位置的实现很不稳定。现在我在不同设备上得到的结果非常分散,我不确定为什么,但纬度/经度有时会归零。

有没有人有什么想法?

这是我用来获取当前位置的方法。

    try {
        locationListener = new MyLocationListener();
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

        locationManager.requestLocationUpdates(
                LocationManager.GPS_PROVIDER, 0, 0, locationListener);
        loc = locationManager.getLastKnownLocation("gps");

        if (loc == null) {
            loc = locationManager.getLastKnownLocation("network");
        }
        if (loc != null && loc.getLongitude() != 0.0
                && loc.getLatitude() != 0.0) {
            sLng = (loc.getLongitude());
            sLat = (loc.getLatitude());
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

最佳答案

您正在使用上次缓存的位置。这仅在最近使用 GPS 时(手机启动后)才可靠

have to use location obtained from the onLocationChanged()回调以获取更多最新位置。

关于android - Android 中的 Google map 将纬度/经度初始化为 0.0(有时...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9779292/

相关文章:

java - 计算 View 的宽度,以便它们始终适合屏幕

java - 如果数字类似于 $12.5,则在末尾添加 0

javascript - 在html页面中使用sightly使用<script>

ios - 关闭应用程序后如何调试

当没有 GPS 返回 null 时来自网络的 Android 位置

java - 如何更正平滑移动谷歌地图 v2 中的标记?

android - Toolbar fragment onoptionsitemselected not called kotlin,有几种方案推荐什么?

java - 如何在不使用thread.sleep的情况下延迟android中的循环?

javascript - 如何调用 Google 的 API 两次?我想进行地理编码并显示 map

javascript - Google 的抓取工具无法理解自己的 map 。如何解决?