【发布时间】:2017-09-14 08:16:12
【问题描述】:
我的应用中有很多用户,他们都有一个固定的位置点 我想创建一个新部分,用户可以在其中看到附近的其他用户,就像 Messenger Wichet 和 Bitalk 如何比较这些地方?
【问题讨论】:
-
为了给您一个很好的答案,如果您还没有看过How to Ask,它可能会对我们有所帮助。如果您可以提供minimal reproducible example,它可能也很有用。
我的应用中有很多用户,他们都有一个固定的位置点 我想创建一个新部分,用户可以在其中看到附近的其他用户,就像 Messenger Wichet 和 Bitalk 如何比较这些地方?
【问题讨论】:
找出两个位置之间的距离并将其与您的接近标准进行比较。
if (locationOfMary.distanceTo(locationOfBob) < NEARNESS_CRITERIA) {
// Locations are near
} else {
// Locations are far away
}
我不知道,也许 PHP 已经有一些库了。如果没有,两点之间的距离可以通过文森特公式计算。您可以在 Google 上搜索其实现示例,或在 Android SDK 的 Location.computeDistanceAndBearing() 方法中查看。
由于它是一种迭代算法,因此可以很好地减少计算次数。例如,您可以在假设两个纬度整数值之间的距离为 110 公里,以及两个经度整数值之间的距离为 110 * cos(latitude) 的情况下,将粗略过滤器应用于其他位置。
祝你好运!
【讨论】: