【问题标题】:How do you implement "follow me" using the MyLocationOverlay class?如何使用 MyLocationOverlay 类实现“跟我来”?
【发布时间】:2011-12-06 03:06:26
【问题描述】:

我创建了一个应用程序,它使用 MyLocationOverlay 类显示用户的当前位置。然而,当用户改变他的位置时,标记不会重新居中。如何实现“跟我来”功能?

我正在考虑让 LocationManager 尽可能频繁地更新,然后在 onLocationChanged 方法中调用 animateTo 方法,但这似乎是一个糟糕的解决方案。有什么办法吗?

【问题讨论】:

    标签: android google-maps geolocation


    【解决方案1】:

    我所做的是将MyLocationOverlay 扩展为我的MapActivity 的内部类。然后,我覆盖 onLocationChanged 并在该方法中对我的 MapController 使用 animateTo

    @Override
    public synchronized void onLocationChanged(Location location) {
        if (location != null) {
            mapController.animateTo(
                    new GeoPoint((int) (location.getLatitude()*1e6),
                                 (int) (location.getLongitude()*1e6));
        }
        super.onLocationChanged(location);
    }
    

    【讨论】:

    • 在 MyLocationOverlay 上请求位置更新的频率是否不受 locationManager.requestLocationUpdates(bestProvider, minTime, minDistance, locationListener) 的影响?另外,myLocationOverlay 的位置更新频率如何?我也可以设置吗?或者它是最终的?
    • 正确,它不受其他更新的影响,因为我相信它只是使用自己的侦听器。我不知道更新的频率有多高,因为该课程是闭源的。它是不可调整的,所以你必须使用默认值,或者创建你自己的类
    • 谢谢你,克雷吉。我刚刚尝试过您的建议,是的,它似乎不受 LocationManager 设置的影响。稍后我将尝试在路上运行我的应用程序。 :)
    • 我昨天无法尝试您的示例。 :( 我的 GPS 和网络不支持我。它们不会显示我在车内的位置。我不应该依赖我的低端手机。无论如何,我仍然愿意接受其他建议。
    猜你喜欢
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 1970-01-01
    • 2023-04-09
    相关资源
    最近更新 更多