2012-03-10 88 views
2

我目前的需求很簡單。我們有一些地理位置信息,如(經度,緯度,內容)。我們需要在給定查詢位置的情況下搜索X公里內的位置。用於地理空間搜索的輕量級Java庫?

不會有太多的地方進行查詢,我認爲他們可以在RAM指數。 有沒有這種需求的簡單Java庫?由於

+0

軟件推薦的類似問題:http://softwarerecs.stackexchange.com/questions/27569/java-data-structure-to-store-geographical-objects-and-retrieve-them-by-area – 2016-01-01 15:55:12

回答

1

您可以使用Solr。它具有地理空間搜索功能,並且可以嵌入到您的應用程序中。

+0

我測試了Lucene空間,它的工作原理,但似乎沒有我預期的那樣高效。 – user716396 2012-03-11 13:38:02

1

JSI (Java Spatial Index)在Java中提供了一個相對簡單但快速的R-Tree實現,但這是爲平面座標設計的。我不確定它是如何與地理空間座標一起工作的(包括在兩極和180度的經度)。

NASA Worldwind Java SDK包括QuadTree的高效實現,它可以很好地處理地理空間座標。

我已經對插入和查詢操作的速度和時間複雜性進行了基準測試,並且都顯示了多達10,000個項目的相似性能。

我還沒有試過Lucene空間,但現在就去試試吧,看看它在我的小基準測試中的表現如何。

+0

是基於nasa四叉樹點還是矩形? – AlexWien 2013-02-08 03:34:14

+0

@AlexWien我認爲這是「矩形」(或「扇區」),儘管API允許條目是任何一種。請參閱[API文檔](http://builds.worldwind.arc.nasa.gov/worldwind-releases/1.3/docs/api/gov/nasa/worldwind/util/BasicQuadTree.html) – gb96 2013-02-18 02:25:59