我正在寻找Java中的KDTree实现.
我做了谷歌搜索,结果似乎很随意.实际上有很多结果,但它们大多只是一点一点的实施,而我宁愿找到一些具有更多"生产价值"的东西.像apache集合或.NET的优秀C5集合库.我可以看到公共错误跟踪器并检查上次SVN提交的时间.此外,在理想的世界中,我会找到一个设计良好的空间数据结构API,而KDTree只是该库中的一个类.
对于这个项目,我只会在2维或3维工作,而我大多只对一个好的最近邻实现感兴趣.
在" 坚果壳中的算法"一书中,Java中有一个kd树实现以及一些变体.所有代码都在oreilly.com上,书本身也会引导您完成算法,因此您可以自己构建一个.
为未来的寻求者.Java-ml库有一个kd-tree实现,可以正常工作. http://java-ml.sourceforge.net/
我已经与利维教授的实施来找到成功在这里.我意识到你正在寻找一个更加生产认证的实现,所以这可能不太合适.
但是对任何路人都要注意,我已经在我的照片马赛克项目中使用了一段时间而没有任何问题.不保证,但总比没有好:)
我创建了KD-Tree实现,作为离线反向地理编码库的一部分
https://github.com/AReallyGoodName/OfflineReverseGeocode