【问题标题】:Django + postgreSQL: find near pointsDjango + postgreSQL:找到附近的点
【发布时间】:2013-03-13 16:20:25
【问题描述】:

对于我的应用程序,我需要确定与其他点最近的点,并且我正在寻找一种简单但相对快速(就性能而言)的解决方案。我正在考虑使用 PostGIS 和 GeoDjango,但我认为我的应用程序并不是真正的“地理”(尽管我仍然不知道这意味着什么)。地理部分(大约占整体的 5%)是我需要保持对象(人和地点)的坐标,然后有这个任务来找到最近的点。简单地说,PostGIS 和 GeoDjango 在这里似乎有点过头了。

我也在考虑使用 SOLR 或 Elasticsearch 的 django-haystack,因为我需要强大的文本搜索功能,并且这些引擎也具有这些“地理”功能。但也不确定,因为我害怕核心数据库 搜索引擎数据库同步和这些引擎的硬件要求。目前,我更喜欢使用 posgreSQL trigrams 和一些自定义方法来实现“查找近点问题”。有什么好的吗?

【问题讨论】:

    标签: python django postgresql postgis geodjango


    【解决方案1】:

    您可能是对的,PostGIS/GeoDjango 可能有点矫枉过正,但制作自己的 Django 应用程序对于您的简单任务来说不会太麻烦。 Django 在模板等方面提供了很多功能,并且内置管理功能可以很容易地输入单个记录。而且 GeoDjango 是 contrib 的一部分,因此如果您的项目需要,您可以随时使用它。

    【讨论】:

      【解决方案2】:

      查看shapely。看起来对象的 project() 方法可能就是您要查找的内容。

      【讨论】:

      【解决方案3】:

      要查找彼此靠近的点或边界框,请考虑使用Rtree Python 包。这使用了与 PostGIS 类似的空间索引技术,只是它不是数据库软件,可以在软件中使用。我已经测试了比 PostGIS 更快的速度来查找数百万个对象的近点。

      请参阅examples in the tutoral 以很好地找到最近的物体。

      【讨论】:

      • 我一直在网上搜索类似的东西。谢谢
      猜你喜欢
      • 1970-01-01
      • 2020-05-18
      • 2010-10-24
      • 1970-01-01
      • 2014-09-16
      • 2015-07-04
      • 1970-01-01
      • 2021-11-07
      • 1970-01-01
      相关资源
      最近更新 更多