您好我正在编写Android lbs游戏,我需要:
存储用户的实时位置(lat,lon)
获取接近指定位置的用户
我用django和mysql写了一些后端api(例如,用他的id获取用户名和年龄)。
做上面所说的最好的解决方案(使用django / python)是什么? 我应该使用像redis这样的nosql数据库吗? 如何将位置存储在数据库中,以便我可以快速获得接近给定位置的位置?
答案 0 :(得分:2)
好吧,我是Redis的狂热爱好者,但考虑到您的具体问题,有一个NoSQL数据库引擎可以更好地支持地理空间查询:MongoDB。
我从未使用过MongoDB,但在会议中,我看到有人在谈论这个功能:http://www.mongodb.org/display/DOCS/Geospatial+Indexing
我现在仔细阅读,并专注于这些要点:
find
和/或geoNear
个查询; geoNear
中的地球曲率(spherical
属性)来测量距离。如果未使用此属性(或find
为),则距离将从固定值miles per arcdegree
转换。还有好奇心:Stack溢出NoSql标签中的“logo”来自MongoDB。
答案 1 :(得分:1)
你考虑过geodjango吗?来自文档:
GeoDjango是Django的附加组件,将其变成世界级的 地理Web框架。 GeoDjango努力使它变得如此简单 可以创建地理Web应用程序,例如基于位置的应用程序 服务。