PhoneGap - 不断发送/获取车队的位置 - 最佳方法?

时间:2012-12-22 15:55:42

标签: cordova gps location

我必须开发出租车应用程序。

计划/需求是这样的:
司机的装置:
- 当服务器发生变化时发送到服务器的位置(频率取决于驱动程序的状态 - 忙碌,可用等等) - 我对可用驱动程序的准确位置更感兴趣而不是忙碌,但这不是很重要..) 请求者的设备:
- 尽可能更新地图上所有驱动程序的位置(最有可能是google)

我担心的事情是: 性能 净流量 电池经济

1 个答案:

答案 0 :(得分:1)

您需要解决这个问题,您是为少量驱动程序还是为大量驱动程序创建此应用程序。

  • 这是选择合适的js框架的重要方法。 Phonegap当然是一个包装器。实时java脚本客户端/服务器通信体系结构的顶级组合是Node.js和SOCKET.IO框架。不幸的是,它们仅适用于干净的混合应用程序(应用程序内置的jcs移动应用程序框架,如jQuery Mobile,jQMoby ....)。

如果您打算使用js移动应用程序框架,则需要将其与骨干js框架结合使用。不像node.js和socket IO那样好,但仍然是一个很好的组合。 Node.js和socket IO与其他js移动应用程序框架不兼容。

  • 使用phonegap geolocation API获取汽车的lat和lng位置。与运动GPS应用程序不同,您不需要每秒刷新一次。汽车正在经过预定义的路线,因此30秒的刷新时间就足够了。

  • 不要将30秒间隔与实时(11:00:00,11:00:30,11:00:00 ......)相关联,因为每个设备都会尝试发送位置刷新在同一时间,这将杀死服务器基础设施。应用初始化后,最好每隔30秒计时一次。

  • 驱动程序的设备应用程序可能是一个小应用程序。它将作为后台进程。因为数据将每30秒发送一次净流量,并且电池寿命想要成为真正的问题。

  • 请求设备将在每个预定义的时间获得批量数据(请求设备周围某些半径内的每个可能的汽车)。在服务器发送批量数据之前,请求者必须发送其位置。它将用于获得最近的汽车。

  • Google Maps移动API v3将用作请求者设备上的地图。因为这是一个移动设备,并且移动框架不是因为它们的出色表现而闻名,所以不要使用它来显示超过100辆汽车(在桌面网络应用程序的情况下最多几百个)。

  • 我的最终建议是,如果可能的话,创建一个原生移动应用程序,因为混合移动应用程序在处理实时数据方面并不擅长。至少没有大量的数据。坚持更长的过渡间隔,它将节省您的电池。并且不要将XML用作客户端/服务器数据。它的数据开销很大。

Node.js

Socket.IO