2011-01-19 52 views
1

我创建了一个连接跑步者的紧密邻近的android应用程序。我使用了Tornado ServerWeb(Python)和No-SQL数据库。连接闭合用户的最佳方式? (经度,纬度)

我的解决办法:

存储所有的{经度,纬度}(定期更新)的用户在DataLocation。

当用户希望看到他周围的用户,它会调用特定的功能到我的服务器,这使得他的当前位置的边框。下一步是返回位于边界框中的DataLocation的用户。

这是一个好方法吗?任何建议? GeoJSON对我有用吗?我如何在Python中做到这一点?

回答

0

如果你没有一个图书馆,并希望自己做,你可以使用Great Circle Distance计算距离。公式不太复杂。要查找某个半径范围内的一组点,您需要查询数据库中的距离(按大圆距计算)小于半径的点。另外,如果你想获得更好的速度,你需要缓存中间计算,例如正弦和余弦在另一列,因为这会加快速度,特别是如果你想在数据库级别。

+0

计算我的当前位置和所有用户的位置之间的距离是一个好方法? – user420574 2011-01-19 21:31:43