【问题标题】:Java commercial-friendly R-tree implementation? [closed]Java 商业友好的 R-tree 实现? [关闭]
【发布时间】:2011-11-18 03:16:37
【问题描述】:

我需要一个商业友好的(Apache 许可证、LGPL、Mozilla 公共许可证等)R-tree 在 Java 中实现,以便用geonames Web 服务代替时区,正如问题“Determine timezone from latitude/longitude without using web services like Geonames.org”中所建议的那样.我有foundsomearound,但我想知道是否有人在实践中评估或使用过它们。

【问题讨论】:

  • 您能否详细说明什么是可接受的“商业友好型”?
  • 来自 Vivid Solutions 的具有 LGPL 许可证的 Java 拓扑套件 (JTS) 包含 R-Tree 实现。我已经在我的应用程序中成功使用了 JTS,但没有在 JTS R-Tree 实现中使用。见vividsolutions.com/jts/javadoc/com/vividsolutions/jts/index/…
  • 不是直接的 R-tree 实现,但最新版本的 Apache Lucene 支持高效的地理空间搜索。有关更多详细信息,请参见例如 ibm.com/developerworks/opensource/library/j-spatial
  • 请将这些 cmets 添加为答案,以便对其进行投票并标记为“答案”。

标签: java indexing r-tree


【解决方案1】:

我创建的 RTree 简单 Java 类: https://github.com/hadmir/rtree/blob/master/RTree.java

所有对象都存储在两个 int[] 数组中,因此非常容易持久化(到文件)。此外,添加新矩形不会创建任何对象这一事实意味着您可以将数百万个矩形插入 RTree 并且 JVM 不会燃烧。这对于对象数量通常非常庞大的地理项目很有用。

仅存储 2D 矩形(因此,对于复杂对象,您需要找到边界矩形)。查询返回与“查询矩形”相交或重叠的所有矩形(矩形的 ID)。

【讨论】:

    【解决方案2】:

    【讨论】:

      【解决方案3】:

      首先让我指出,如果您从给定坐标查找最近的城市,它可能不在同一个时区!在我看来,你真正需要的是有关它的行政隶属关系的信息 - 最低限度是一个国家,但在某些情况下它应该比这更多,即国家。可以使用 Google Maps API 检索该信息,然后将其关联到一些更详细的 TZ 信息。

      GeoNames 有一个免费的替代品 - EarthTools。服务本身有一些限制(请求数量等),但它仍然很好,经过测试并且对我来说工作得很好。

      其次 - GeoNames 有一个免费的替代品 - EarthTools。服务本身有一些限制(请求数量等),但它仍然很好,经过测试并且对我来说工作得很好。

      第三 - 如果您关心将数据导入数据库,那么当前大多数数据库实现都提供了您可以使用的地理空间索引。如果您需要在您的应用程序中嵌入该信息,您可以使用 H2Database(嵌入式 Java DB)和 H2Spatial 添加 - 尽管我已经尝试过,但我不能完全推荐它。 Neo4j 有很好的空间索引实现

      此外,您可以将Solr 用于GeoSpatial searches。这很好,它很快而且很容易实现。我实际上正在将我的数据库搜索迁移到 Solr 的过程中......

      最后但并非最不重要的一点是,您会在下面找到我不久前测试过的一些:

      • JSI - LGPL
      • GeoTools - LGPL,一个矫枉过正,会给你远远超过你所需要的......但它很棒!

      可能还有几个,但到目前为止我测试过的那些......

      【讨论】:

      • 感谢您的回答。我在研究时发现了 EarthTools,但让我望而却步的是“这些服务的使用目前是免费的”。这对我来说是一个阻碍,因为我需要知道解决方案将无限期保持免费。
      • 我会选择 Solr 或 GeoTools - 两者都很棒。
      猜你喜欢
      • 1970-01-01
      • 2011-02-04
      • 1970-01-01
      • 2010-09-07
      • 1970-01-01
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      相关资源
      最近更新 更多