1


首先正在构建一个出租车调度应用程序:我需要乘客应用程序来显示最近的出租车,现在我知道如何在代码中做到这一点,但以我的方式我必须遍历所有出租车位置(在服务器上的数据库中)并计算距乘客位置的距离并获得最低的位置-我不想这样做,因为会有很多出租车,并且要经过所有出租车并进行一些数学运算,这对服务器来说有点痛苦-有没有办法在不经过所有这些的情况下获得最近的?

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

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

谢谢

4

4 回答 4

1

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

相反,尝试进行更简单的“假距离”计算。

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

于 2013-04-02T12:04:18.033 回答
0

对于第一个问题:我认为您可以从移动设备发送无线电(即:/43.34343/-3.3333/1000 和 1000 表示无线电以米为单位),然后从服务器仅返回该区域中包含的出租车。您可以计算设备位置与出租车列表之间的距离。

于 2012-11-30T09:02:06.387 回答
0

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

在服务器上维护经纬度的出租车位置。编写查询以获取 +/- 3 纬度的出租车。这将限制乘客区附近的出租车数量。

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

对于服务器:我不知道 RubyOnRails,但正如他们所说,这也更快且易于实现..,您选择了最佳数据交换格式 Json 无需更改;您可以使用 zip 来提高性能。

于 2012-11-30T09:15:27.857 回答
0

试试这个链接 它会显示所有最近的地方,如酒店、剧院等。它会在列表中显示特定地点的地址,也会显示在地图视图中。

希望这对您有所帮助。

于 2012-11-30T10:25:16.123 回答