gpt4 book ai didi

android - 如何有效地存储来自 android 应用程序的 LatLng 路由路径

转载 作者:行者123 更新时间:2023-11-30 01:56:37 26 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,它可以跟踪车辆的位置,并在单击“启动车辆”按钮后每秒向另一个 Spring 网络应用程序发送一个 LatLng 点。我需要存储这个位置以便在谷歌地图中呈现以在 map 上显示车辆的实时位置。它工作正常,但是,我必须存储所有获得的点,以便在驾驶员从应用程序中单击“停止车辆”时显示经过的完整路线。

我已经应用了以下策略,但似乎都效率低下且过于消耗资源:

  • 当每个当前位置请求到达时,将位置存储在服务器端的列表中,并将其保存在 servletContext 中。继续根据收到的每个点更新列表。问题:即使是大约 1 小时的旅程,也会收到太多点,它们会形成一个非常大的列表,消耗大量内存。如果服务器关闭或发生崩溃,servletContext 就会消失,整个数据也会消失。
  • 将位置存储在数据库中的表行中(使用 PostgreSQL)。问题:条目应该何时保存在数据库中?然后进行数据库事务+消耗那么多数据库空间?很贵,对吧?
  • 不要在服务器端存储所有位置,只为实时 map 保留当前位置。而是在 android 应用程序端保留位置列表,并在驾驶员选择 parking 时将其发送到服务器。问题:从服务器端听起来很公平,但 Android 手机是否能够处理同样的大列表,然后将其发送到服务器的调用中?
  • 使用休眠和 ehcache。我应该考虑吗?

我一直在研究如何通过占用最少的资源并当然降低生产服务器成本来有效地做到这一点。

对于 Android、服务器和整个方法,我们将不胜感激:)

最佳答案

将您的数据减少到有意义的数量:

  • 与其按固定时间间隔发送数据,不如留意位置变化。
  • 使位置变化阈值与速度相关;在高速公路上行驶时,一英里可能已经足够准确,而在城市驾驶中,您可能需要低至 100 码的分辨率。
  • 在 Android 应用程序中收集您的数据点,并对其进行插值。如果您在两个城市之间行驶一条直线,则没有理由报告所有数百个中间点,而只需报告终点。

关于android - 如何有效地存储来自 android 应用程序的 LatLng 路由路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32103988/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com