Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 构建地理空间查询RESTAPI_Django_Rest_Geospatial_Geodjango_Django Piston - Fatal编程技术网

Django 构建地理空间查询RESTAPI

Django 构建地理空间查询RESTAPI,django,rest,geospatial,geodjango,django-piston,Django,Rest,Geospatial,Geodjango,Django Piston,我正在尝试构建一个iOS应用程序,它获取用户的位置,然后通过REST api查询他/她附近的其他用户的后端。我做了一些谷歌搜索,我的选择(根据我的经验)看起来很简单 Django-piston和geodjango。可能在网络上托管 谷歌应用引擎 我更倾向于第一个选择,因为谷歌应用程序引擎似乎不是那么开放,而且一开始有一个陡峭的学习曲线 现在在mysql数据库上进行位置查询似乎有点吓人。我的直觉是必须有更好的东西。毕竟我不想重新发明轮子 谁能帮我照点灯吗 我将如何准确地进行位置查询?。边界重

我正在尝试构建一个iOS应用程序,它获取用户的位置,然后通过REST api查询他/她附近的其他用户的后端。我做了一些谷歌搜索,我的选择(根据我的经验)看起来很简单

  • Django-piston和geodjango。可能在网络上托管
  • 谷歌应用引擎
我更倾向于第一个选择,因为谷歌应用程序引擎似乎不是那么开放,而且一开始有一个陡峭的学习曲线

现在在mysql数据库上进行位置查询似乎有点吓人。我的直觉是必须有更好的东西。毕竟我不想重新发明轮子

谁能帮我照点灯吗

  • 我将如何准确地进行位置查询?。边界重角还是其他更好的方法
  • 我应该使用什么数据库?…非关系数据库还是关系数据库
  • 如果是关系型的,数据库应该按位置索引吗
  • 位置数据应该存储在单独的表中,还是与其他用户数据存储在同一个表中
  • 我应该使用时间戳使旧的位置更新无效,还是有更好的方法来实现这一点?(例如,数据库本身可以定期删除位置更新)
到目前为止,我主要是一名iOS开发人员,在构建web应用程序方面经验很少。如有任何建议,我将不胜感激

如果以前有人问过类似的问题,请随意指出

提前谢谢。
-萨米齐

恐怕你问的问题太多,太笼统,无法得到有用的答案。我会尝试:

如果你想做非常简单的地理空间的东西,试着坚持使用边界框。适合这个问题的最简单的技术非常值得探索。然而,你可能很快就会发现你需要更多

如果要使用geodjango,请使用PostGIS数据库,而不要使用非关系数据库。您将开发一个后端,对于非webapp程序员来说,它有一个陡峭的学习曲线。从geodjango教程开始,逐步开发您熟悉的技术堆栈(使用geodjango,REST服务将非常简单)

选择非关系数据库的原因要么是非常特定于用例(您想要存储文档、图形,或者您不想要预定义的模式),要么是出于扩展目的(同时读取和写入大量数据,因此使用多个节点,等等)。如果你不是web应用程序程序员,请雇佣一位有经验的程序员(他可以做一些“软件架构设计”)来帮助你

  • 位置数据应该存储在单独的表中还是存储在同一个表中 作为其他用户数据
  • 我应该使用时间戳使旧位置更新无效还是 还有更好的方法吗 例如,数据库可以 自动删除位置 更新)
请做过数据库设计的人帮助您。根据到目前为止的问题描述,您可以使用两个表:一个
User(id,name)
表,一个
UserLocation(id,timestamp,User_id,xCoordinate,yccoordinate)
表。然后为用户获得的每个示例添加一个
UserLocation
行。您可以稍后设计(并更改)解释UserLocation表的规则,如:

  • 最新的用户位置是有效的
  • 如果时间戳超过4小时,则无法使用
从你的提问来看,我觉得你有点不合群。然而,如果你能坚持简单的技术和务实的工作,你可以让你的服务工作。为什么不从mysql+php和边界查询开始呢?一旦其他东西都能用了,就换成别的东西