0

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

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

4

3 回答 3

2

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

请参阅教程中的示例,以更好地找到最近的对象。

于 2013-03-24T07:38:38.127 回答
0

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

于 2013-03-24T00:15:52.747 回答
0

身材匀称地退房。看起来对象的project()方法可能是您正在寻找的。

于 2013-03-24T00:25:07.537 回答