2013-03-24 37 views
0

對於我的應用程序,我需要確定一些其他點的最近點,我正在尋找一個簡單但相對較快(就性能而言)的解決方案。我正在考慮使用PostGIS和GeoDjango,但我認爲我的應用程序並不是真正的「地理」(我仍然不知道它的含義)。地理部分(大約5%)是我需要保持對象(人和地點)的座標,然後有這個任務來找到最近的點。簡而言之,PostGIS和GeoDjango似乎在這裏是一個矯枉過正的事情。Django + postgreSQL:找到近點

我也在想SOLAR或Elasticsearch的django-haystack,因爲我需要強大而強大的文本搜索功能,而且這些引擎也具備這些「地理」功能。但不能確定,因爲我害怕核心db < - >搜索引擎數據庫同步和這些引擎的硬件要求。目前,我更類似於使用posgreSQL trigrams和一些自定義的方式來做到這一點「尋找近點問題」。有沒有好的?

回答

0

你可能是對的,PostGIS/GeoDjango可能是矯枉過正,但是爲自己的簡單任務製作自己的Django應用程序不會太麻煩。 Django在模板等方面提供了很多內容,並且使用內置的管理員可以非常輕鬆地輸入單個記錄。 GeoDjango是contrib的一部分,因此如果您的項目需要它,您可以隨後使用它。

0

結帳shapely。看起來像對象的project()方法可能是你要找的。

+0

這是一個[線性參考](http://en.wikipedia.org/wiki/Linear_referencing)方法,這是另一回事。 – 2013-03-24 21:42:10

+0

謝謝,名稱'project()'看起來不正確。 – monkut 2013-03-24 21:51:35

2

要找到相互靠近的點或邊界框,請考慮使用Rtree Python包。這使用了與PostGIS類似的空間索引技術,只是它不是數據庫軟件,可用於軟件。我測試了比PostGIS更快的速度,以便在數百萬物體上找到近點。

請參見examples in the tutoral以便找到最近的物體。

+0

我一直在網上尋找這樣的東西。謝謝 – Sevenearths 2014-03-21 13:07:08