我需要一个商业友好的(阿帕奇许可证,LGPL,Mozilla公共许可证等)在Java的R-tree实现,以取代时区的geonames网络服务,如问题"Determine timezone from latitude/longitude without using web services like Geonames.org“建议。我有found some around,但我想知道是否有人在实践中对它们进行了评估或使用。
发布于 2012-02-18 21:12:54
发布于 2012-02-14 03:48:04
首先,我要指出的是,如果你要从给定的坐标中查找最近的城市,它可能不在同一时区!在我看来,你真正需要的是关于它的行政隶属关系的信息-至少是一个国家,但在某些情况下,它应该比这更多,即国家。可以使用Google Maps API检索这些信息,然后将其与一些更详细的TZ信息相关联。
GeoNames有一个免费的替代品-- EarthTools。服务本身有一些限制(请求数量等),但它仍然很好,经过测试,对我来说工作得很好。
其次-- GeoNames有一个免费的替代品-- EarthTools。服务本身有一些限制(请求数量等),但它仍然很好,经过测试,对我来说工作得很好。
第三,如果您关心将数据导入到DB中,那么当前大多数DB实现都提供了您可以使用的地理空间索引。如果需要将这些信息嵌入到应用程序中,可以使用带有H2Spatial附加功能的H2Database (embeded Java DB) --尽管我已经尝试过了,但我不能完全推荐它。Neo4j有一个很好的空间索引实现
此外,您还可以为GeoSpatial searches使用Solr。它很好,它很快,而且很容易实现。实际上,我正在将我的数据库搜索迁移到Solr...
最后,但并非最不重要的是,你会在下面找到一些我之前测试过的:
可能还有更多,但到目前为止我测试过的那些...
发布于 2016-06-09 23:33:19
我创建的RTree简单Java类:https://github.com/hadmir/rtree/blob/master/RTree.java
所有对象都存储在两个int[]数组中,因此很容易持久化(到文件中)。此外,添加新的矩形不会创建任何对象,这意味着您可以将数百万个矩形插入到RTree中,并且JVM不会烧成火焰。这对于对象数量通常很大的geo项目很有用。
只存储2D矩形(因此,对于复杂对象,您需要找到边界矩形)。查询返回与“查询矩形”相交或重叠的所有矩形(矩形的ID)。
https://stackoverflow.com/questions/7435645
复制相似问题