Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 如何在用户的当前位置实现实时更新?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用MyLOCATIOnOverlay来显示当前位置.但是,该位置需要一段时间才能更新.我想在iPhone上实现类似“跟我来”的功能,其中用户的位置也在用户移动时移动.如何使MyLOCATIOnOverlay的标记在其位置上执行实时更新?

请注意我覆盖了draw()和drawMyLOCATIOn(),因为我需要绘制一个自定义标记.

我当前的代码如下所示:(我的代码的问题是标记不会随用户一起移动.因为在调用onLOCATIOnChanged之前需要一段时间,标记才会突然从一个地方跳到另一个地方.)

@Override
public synchronized void onLOCATIOnChanged(LOCATIOn LOCATIOn)
{
    if (LOCATIOn != null && mapController != null)
    {
        //Recenter map based on current LOCATIOn
        mapController.animateTo(new GeoPoint((int) (LOCATIOn.getLatitude() * 1e6),(int) (LOCATIOn.getLongitude() * 1e6)));
    }
    super.onLOCATIOnChanged(LOCATIOn);
}

解决方法

您可以给位置管理器提供最小间隔,以便调用方法之间等待,但是并不是100%准确地记住该时间间隔(请参阅 LocationManager.requestLocationUpdates()的说明).可能更短,可能更长 – 因为,例如它可能是阴天,gps芯片将无法像您希望的那样定期更新位置.

没有正确的方法可以克服这个问题 – 定位服务总是存在不完善之处.我使用的每个位置感知应用程序都会不时“挂起”标记因为gps芯片丢失修复片刻.

你可以做的唯一一点就是要记住移动的速度,并且应该gps丢失修复,根据用户以相同的速度向gps移动的假设,给出地图标记假更新有一个修复.但是只对2-5跳过的实际更新这样做才有意义(只是为了平滑修复丢失几秒钟的情况).

UPD为此,您可以实现一种代理位置监听器,它将严格按照您指定的间隔更新您的标记,例如:每200毫秒,并根据它的存储位置这样做.并且存储的位置可以由真实位置监听器异步更新.位置对象有提供数据的修复时间(参见getTime()方法),您可以使用它来确定是否仍应“预测”下一个标记移动或位置是否足够放弃并通知用户gps没有线索在哪里他们是 :)

大佬总结

以上是大佬教程为你收集整理的android – 如何在用户的当前位置实现实时更新?全部内容,希望文章能够帮你解决android – 如何在用户的当前位置实现实时更新?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。