Django 构建地理空间查询RESTAPI
我正在尝试构建一个iOS应用程序,它获取用户的位置,然后通过REST api查询他/她附近的其他用户的后端。我做了一些谷歌搜索,我的选择(根据我的经验)看起来很简单Django 构建地理空间查询RESTAPI,django,rest,geospatial,geodjango,django-piston,Django,Rest,Geospatial,Geodjango,Django Piston,我正在尝试构建一个iOS应用程序,它获取用户的位置,然后通过REST api查询他/她附近的其他用户的后端。我做了一些谷歌搜索,我的选择(根据我的经验)看起来很简单 Django-piston和geodjango。可能在网络上托管 谷歌应用引擎 我更倾向于第一个选择,因为谷歌应用程序引擎似乎不是那么开放,而且一开始有一个陡峭的学习曲线 现在在mysql数据库上进行位置查询似乎有点吓人。我的直觉是必须有更好的东西。毕竟我不想重新发明轮子 谁能帮我照点灯吗 我将如何准确地进行位置查询?。边界重
- Django-piston和geodjango。可能在网络上托管
- 谷歌应用引擎
- 我将如何准确地进行位置查询?。边界重角还是其他更好的方法李>
- 我应该使用什么数据库?…非关系数据库还是关系数据库
- 如果是关系型的,数据库应该按位置索引吗
- 位置数据应该存储在单独的表中,还是与其他用户数据存储在同一个表中
- 我应该使用时间戳使旧的位置更新无效,还是有更好的方法来实现这一点?(例如,数据库本身可以定期删除位置更新)
-萨米齐 恐怕你问的问题太多,太笼统,无法得到有用的答案。我会尝试: 如果你想做非常简单的地理空间的东西,试着坚持使用边界框。适合这个问题的最简单的技术非常值得探索。然而,你可能很快就会发现你需要更多 如果要使用geodjango,请使用PostGIS数据库,而不要使用非关系数据库。您将开发一个后端,对于非webapp程序员来说,它有一个陡峭的学习曲线。从geodjango教程开始,逐步开发您熟悉的技术堆栈(使用geodjango,REST服务将非常简单) 选择非关系数据库的原因要么是非常特定于用例(您想要存储文档、图形,或者您不想要预定义的模式),要么是出于扩展目的(同时读取和写入大量数据,因此使用多个节点,等等)。如果你不是web应用程序程序员,请雇佣一位有经验的程序员(他可以做一些“软件架构设计”)来帮助你
- 位置数据应该存储在单独的表中还是存储在同一个表中 作为其他用户数据
- 我应该使用时间戳使旧位置更新无效还是 还有更好的方法吗 例如,数据库可以 自动删除位置 更新)
User(id,name)
表,一个UserLocation(id,timestamp,User_id,xCoordinate,yccoordinate)
表。然后为用户获得的每个示例添加一个UserLocation
行。您可以稍后设计(并更改)解释UserLocation表的规则,如:
- 最新的用户位置是有效的
- 如果时间戳超过4小时,则无法使用
- 等