6

我见过许多各种语言的所谓“反向地理编码”库;所有这些都依赖于通过 REST 或类似方法调用外部提供者。但是,如果您必须每秒处理数千个请求,则不能调用 REST 提供程序。

另一方面,这个问题应该很容易解决——基于 CSV 的数据库可以免费获得这些信息。问题在于编写一个高效且经过良好测试的内存搜索实现与下载或购买现有的实现相比的时间和成本。

我找了很多遍都找不到,但我不敢相信不可能有。是否有任何预先编写的库可以做到这一点?

这个问题:

给定纬度/经度查找位置(邮编、城市、州)的最快方法

最接近,但基本上表明如何编写解决方案,而不是现成可用的任何东西。但是每个人都必须为此使用一些库。一天十几个人肯定有这个问题。

4

1 回答 1

3

空间数据库(例如带有 PostGis 的 Postgresql)使用的算法可以快速查找给定纬度/经度信息的数据。当您想使用 Java 库并将其保存在内存中时,您可以查看H2 Spatial 数据库。我从未使用过它,所以我无法评论它的性能。

编辑:嗯,仔细查看我提供的链接表明这是一个计划中的功能......我个人只需使用 Postgresql/PostGis(有或没有 Java 作为服务器前端)并完成它。如果您的服务器有足够的内存,它仍然符合“内存中”的要求。自然它不符合 Java 库的要求。但是有JSI,可以在内存和 Java 中使用。

于 2012-04-19T20:52:36.230 回答