【问题标题】:Android location based application that needs to work with radius calculation需要使用半径计算的基于 Android 位置的应用程序
【发布时间】:2016-01-08 20:28:41
【问题描述】:

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

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

我也得到了用户 B、C、D 和他们的位置.. 例如 - 用户 B + D 距离用户 A 5 公里,用户 C 距离用户 A 12 公里,我想知道如何创建一个函数,告诉我谁离我近 4/ 5/6/7km等。 如果我的用户 A 想要距离他 8.5 公里的用户,那么我将拥有用户 B + D 以及他们与用户 A 的距离。

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

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

谢谢提醒:)

【问题讨论】:

    标签: android location google-places-api location-based android-gps


    【解决方案1】:

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

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

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

    【讨论】:

    • 首先感谢 Msk 的回复。我也这么认为,但现在的问题是我正在运行一个带有 postgresql 数据库的 Django 服务器端。你知道任何合适的图书馆吗?
    • 为什么是图书馆?检查此功能stackoverflow.com/questions/4913349/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多