【问题标题】:Overriding location-tracking in OSMdroid在 OSMdroid 中覆盖位置跟踪
【发布时间】:2018-08-22 20:09:20
【问题描述】:

我想知道如何覆盖 OSMdroid 从何处获取其位置。在我的应用程序中,我已经在跟踪和存储用户的位置,所以做了两次(OSMdroid,我的应用程序是多余的)。将 OSMdroid 的位置来源更改为我的位置跟踪器是否值得在电池寿命方面付出努力?如果是这样,是否有人对我如何做到这一点有所了解。 OSMdroid 目前通过 Gradle 添加到我的项目中。只是想在实施之前做一些研究。

【问题讨论】:

  • 可以通过一个类覆盖 OSMdroid 的位置提供程序:class FakeOsmdroidLocationProvider implements IMyLocationProvider {...},然后在创建 MyLocationNewOverlay 时使用它代替 IMyLocationProvider。仅当您很少请求位置或仅在没有 GPS 的情况下仅低准确率位置时,或者如果您在代码中对位置数据进行了一些额外的过滤时,它才会带来好处。
  • 嗨,Markus,感谢您的回复 - 似乎并不难。我每两秒左右以高精度请求位置。所以我可能应该覆盖 OSMdroid 的位置?
  • 您仍然可以使用自己的代码保持 GPS 硬件开启,因此我认为覆盖 OSMdroid 的位置提供程序不会带来任何节能优势。我这样做是因为我们已经有了进行卡尔曼滤波的位置相关代码。
  • 这就是我正在寻找的答案 - 谢谢

标签: java android android-mapview android-location osmdroid


【解决方案1】:

在 osmdroid 中,您没有义务在地图上放置“MyLocationNewOverlay”。在这种情况下,osmdroid 不会对位置做任何事情。

如果您仍想在地图上以图形表示您当前的位置/方向/精度,您可以使用 DirectedLocationOverlay。您必须自己“刷新”它 - 通常使用您自己的跟踪和存储代码。 示例here

【讨论】:

    猜你喜欢
    • 2016-05-14
    • 1970-01-01
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多