1

我创建了一个 android 应用程序,它可以近距离连接跑步者。我使用了 Tornado ServerWeb (Python) 和 No-SQL 数据库。

我的解决方案:

将用户的所有 {lon,lat}(定期更新)存储在 DataLocation 中。

当用户想查看他周围的用户时,它会向我的服务器调用特定的函数,该函数会从他当前的位置创建一个边界框。下一步是返回我的 DataLocation 在他的边界框中的用户。

这是一个好方法吗?有什么建议吗?GeoJSON 对我有用吗?我怎样才能在 Python 中做到这一点?

4

1 回答 1

0

如果您没有图书馆并且想自己做,您可以使用Great Circle Distance计算距离。公式不是太复杂。要查找某个半径内的一组点,您需要在数据库中查询距离(按大圆距离计算)小于您的半径的点。

此外,如果您想获得更好的速度,您将需要缓存中间计算,例如在另一列中的正弦和余弦,因为这会加快速度,特别是如果您想在数据库级别进行查询。

于 2011-01-19T21:14:57.303 回答