【问题标题】:Alert when current location is near marker android map当前位置靠近标记android地图时发出警报
【发布时间】:2014-01-31 03:19:46
【问题描述】:

我正在构建一个使用谷歌地图的安卓应用程序。它就像一个导航应用程序,可以在运动时更新屏幕上的位置。我在地图上放置了多个标记,每个标记的半径为 125。当当前位置与标记半径相交时,我会收到一条警告消息。这是通过遍历所有标记并检查当前位置是否与 OnLocationChangedMethod() 处的任何标记的半径相交来完成的。如果你有几个标记,它会很好用,但我有超过 30 个标记。到遍历所有标记并报告是否存在交叉点所需的时间时,当前位置将通过标记。所以它需要更长的时间,而且效率不高。

我希望有人可以帮助我们找到更好的方法来做到这一点。我已经阅读了几个建议采用地图边界并找到可见标记的解决方案。但这也会遍历所有标记,并且需要与我的解决方案相同的时间。

如果有人可以提供帮助,我将不胜感激。

谢谢,

阿卜杜拉

【问题讨论】:

  • 为什么不将标记位置保存在数据库中,并通过您的服务每 45 秒与用户位置进行比较..
  • 标记实际上存储在服务器数据库中。在应用程序的第一次初始化时,标记被下载并保存在本地 SQLite 数据库中。 45秒太长了。标记半径为 250 米。通过标记平均需要 25 秒。时代不是问题。根据存储在数据库中的标记数量,检查是否存在交叉点的过程实际上需要时间。我不知道是否有一种解决方案可以让标记像雷达一样而不是当前位置标记。

标签: android google-maps


【解决方案1】:

这听起来你会更适合Geofencing,因为它基本上就是你想要做的。不需要所有这些不同的服务,比如当已经内置了一些东西时

【讨论】:

  • 经过大量与我的代码和谷歌地图的整合。它工作得很好。非常感谢。一个快速的问题。您添加或不添加的地理围栏点的数量是否有限制??
【解决方案2】:

使用两种服务。一个用于获取当前位置,另一个用于计算距离。

【讨论】:

  • 抱歉没有足够的时间来完成我的回复。使用两项服务。一个广播位置的服务和另一个计算与每个点的接近度的服务。这样,理论上无论如何,并且在这种情况下可以做到最好,邻近度计算不会延迟位置广播。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多