2012-03-10 90 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