android,找到最近的位置,而不经过所有的位置

时间:2012-11-30 08:53:03

标签: android xml database json location

我正在建造出租车调度应用程序
第一:我需要乘客应用程序显示最近的出租车,现在我知道如何在代码中这样做,但在我的方式我必须通过所有出租车位置(在服务器上的数据库中)并计算与乘客位置的距离和得到最低的 - 我不想这样做因为会有很多出租车并经历所有这些并且让一些数学在服务器上有点痛苦 - 有没有办法让最近的那些没有去通过所有这些?

第二:什么是最好的数据库使用 - 首先,它应该是sql还是非sql - 我需要一个非常强大的数据库,因为会有很多更新(我的意思是添加的乘客位置然后在到达时删除目的地和出租车位置经常变化)

最后:我将使用RubyOnRails来做服务器端和json作为数据传输格式,你有更好的推荐给我吗?

由于

4 个答案:

答案 0 :(得分:1)

由于涉及复杂的方程式,计算距离需要时间。

相反,尝试做一个更简单的“虚假距离”计算。

例如,为了您的目的而不是d = SQRT(x * x + y * y),您可以尝试类似的东西 d = | x | + | y |并为此排序。你不需要这里的确切公式,因为粗略的近似可以做到。

答案 1 :(得分:0)

对于第一个问题: 我想你可以从移动设备发送一个无线电(即:/43.34343/-3.3333/1000和1000代表以米为单位的无线电),并且从服务器只返回该区域包含的出租车。 您可以这样做计算设备位置和出租车列表之间的距离。

答案 2 :(得分:0)

首先:使用你需要计算最近距离。但不是与所有的出租车位置进行比较,我建议你通过长途乘客。

在服务器维护lat的出租车位置。写入查询以获得与lat长度为+/- 3的出租车。乘客区附近的出租车数量有限。

对于sencond:=使用关系数据库,SQL Server适用于我在上一个项目中使用的此类应用程序。

对于服务器:我不知道RubyOnRails,但这也更快&很容易实现,因为他们说..,你已经选择了最好的数据交换格式Json无需改变这一点;你可以使用zip来提高性能。

答案 3 :(得分:0)

试试这个link 它会告诉你所有最近的地方,如酒店,剧院等。 它将显示列表中特定位置的地址,并将在地图视图中显示..

希望这对你有所帮助。