我目前的需求非常简单。我们有一些地理位置信息,表示为(经度,纬度,内容)。我们需要在给定查询位置的X公里内搜索位置。
查询的位置不多,我认为它们可以是RAM中的索引。 这个需求有没有简单的Java库?感谢
答案 0 :(得分:1)
您可以使用Solr。它具有地理空间搜索功能,也可以嵌入到您的应用程序中。
答案 1 :(得分:1)
JSI (Java Spatial Index)在Java中提供了一个相对简单但快速的R-Tree实现,但是这是为平面坐标设计的。我不确定它在地理空间坐标上的效果如何(在极点和180度经度处包裹)。
NASA Worldwind Java SDK包括一个有效的QuadTree实现,可以很好地适应地理空间坐标。
我对插入和查询操作的速度和时间复杂度进行了基准测试,两者都显示了类似的性能,最多可达10,000件。
我还没有试过Lucene空间,但是现在就试试看它在我的小基准测试中的效果如何。
答案 2 :(得分:0)
Hibernate Search也有spatial queries capabilities。
它建立在Apache Lucene之上,它可以通过注释索引数据并使用全文查询检索它们。