0

我正在构建一个基于位置的应用程序。

假设我有用户 A,并且我有他当前位置的纬度和经度值。

我也得到了用户 B、C、D 和他们的位置。例如 - 用户 B + D 距离用户 A 5 公里,用户 C 距离用户 A 12 公里,我想知道我怎么能制作一个函数,告诉我谁离我近 4/5/6/7km 等等。如果我的用户 A 想要距离他 8.5 公里的用户,我将因此得到用户 B + D 和他们的距离来自用户 A。

现在..我知道我可以使用 Location 类并使用距离函数来计算两个用户之间的距离。但问题是,如果我想计算半径距离,我需要从我的数据库中获取整个用户列表并将其发送到客户端以开始计算他与我从服务器获取的用户之间的距离。现在,如果有更好,更有效的方法,我不想这样做。

首先,我考虑过使用http请求或一些数学函数来计算服务器端用户之间的距离,但客户端(Android)提供了非常好的工具来做到这一点,所以我不知道是最好的要做的事。

谢谢抬头:)

4

1 回答 1

0

嘿,您不认为总是将 n-1 个用户的位置发送给来自服务器的请求是低效的并且消耗不必要的带宽,而不是仅在半径附近发送少数用户吗?服务器可以轻松地进行此计算。想一想您的应用程序用户群不断增长的场景吗?然后呢?这样的计算总是在服务器上执行。

同样几乎所有时候,服务器都比客户端拥有更多的计算能力。因此,即使 android 工具看起来很有利可图,也不要在这种情况下最终使用它们。

在工具方面,服务器端也有类似的。半正弦函数。像 mongo 这样的一些数据库也有内置的位置过滤器。所以这真的很值得一试。

于 2016-01-08T21:07:25.937 回答