我必须开发一个出租车应用程序。
计划/需求是这样的:
司机的设备:
- 当位置发生变化时将位置发送到服务器(频率取决于司机的状态 - 忙碌、可用等。 - 我对可用司机的准确位置更感兴趣,而不是忙碌的一个,但这不是很重要..)
请求者的设备:
- 尽可能更新地图上所有司机的位置(最有可能是谷歌)
我担心的是:性能、净流量和电池经济性。
你需要解决这个问题,你是为少数司机还是为大量司机创建这个应用程序。
如果您要使用 js 移动应用程序框架,则需要将其与骨干 js 框架结合使用。不如 node.js 和套接字 IO 好,但仍然是一个很好的组合。Node.js 和 socket IO 不能很好地与其他 js 移动应用程序框架配合使用。
使用 phonegap 地理定位 API 获取汽车的 lat 和 lng 位置。与运动 GPS 应用程序不同,您不需要每秒刷新一次。汽车正在通过预定义的路线,因此 30 秒的刷新时间就足够了。
不要将 30 秒间隔与实时时间(11:00:00、11:00:30、11:01:00 ...)联系起来,因为每个设备都会尝试同时发送位置刷新,并且将杀死服务器基础架构。最好在应用程序初始化后每 30 秒计时一次。
司机的设备应用程序可以是一个小应用程序。它将作为后台进程工作。因为数据将每 30 秒发送一次,净流量和电池寿命是一个真正的问题。
请求者设备将在每个预定义的时间获取大量数据(围绕请求者设备的某个半径范围内的每辆可能的汽车)。在服务器可以发送批量数据之前,请求者必须发送其位置。它将用于获取最近的汽车。
Google Maps mobile API v3 将用作请求者设备上的地图。因为这是一个移动设备,而移动框架并不知道它们的出色性能,所以不要使用它来显示超过 100 辆汽车(在桌面 Web 应用程序的情况下最多只有几百辆)。
我最后的建议是,如果可能的话,创建一个原生移动应用程序,因为混合移动应用程序不擅长处理实时数据。至少没有大量的数据。坚持更长的过渡间隔,它将节省您的电池。并且不要考虑使用 XML 作为客户端/服务器数据。它有很大的数据开销。