Java 大型对象的空间索引

Java 大型对象的空间索引,java,spatial-index,Java,Spatial Index,我有一个相当大的区域(几十平方公里),可以容纳数千个物体。大多数物体都很小,只有一平方米,所以它们几乎可以被视为点。但是,有些对象相当大,与整个区域的大小相同 我想对这些对象执行一些简单的空间查询(例如“查找与此矩形重叠的所有对象”)。我一直在玩R-树,这似乎对小对象很有效。但我不确定,一旦我包含了较大的对象,R树是否仍然是最佳选择 所以问题是:什么样的空间索引在这里最合适?如果有一个具有快速添加/删除对象功能的Java实现,则会获得额外的积分 您的问题与一个名为“大型”的主题更为相关,该主题有

我有一个相当大的区域(几十平方公里),可以容纳数千个物体。大多数物体都很小,只有一平方米,所以它们几乎可以被视为点。但是,有些对象相当大,与整个区域的大小相同

我想对这些对象执行一些简单的空间查询(例如“查找与此矩形重叠的所有对象”)。我一直在玩R-树,这似乎对小对象很有效。但我不确定,一旦我包含了较大的对象,R树是否仍然是最佳选择

所以问题是:什么样的空间索引在这里最合适?如果有一个具有快速添加/删除对象功能的Java实现,则会获得额外的积分

  • 您的问题与一个名为“大型”的主题更为相关,该主题有一套自己的规则,说明如何创建和管理数据库
  • 地理信息系统的一个例子是谷歌地图
  • GIS项目有许多工具可用于该项目
  • 在处理用于管理数据的GIS时,Java不是首选语言,GIS项目通常使用C语言
  • 您的问题与一个名为“大型”的主题更为相关,该主题有一套自己的规则,说明如何创建和管理数据库
  • 地理信息系统的一个例子是谷歌地图
  • GIS项目有许多工具可用于该项目
  • 在处理用于管理数据的GIS时,Java不是首选语言,GIS项目通常使用C语言

  • 如果您正在寻找特定于java的空间索引实现,那么该库相当轻量级,并提供两种空间索引实现:和。STRTree只是R树的特定空间优化实现。由于其层次性,这两种方法(四叉树和R树)都支持从小到大的不同规模的对象

    R-Tree的一个限制是插入很困难(JTS实现不允许插入),因为索引层次结构由数据决定,并且在插入数据时可能需要更改,而四叉树层次结构是固定的,无论数据如何分布。这可能会比功能大小更影响您的实现


    Oracle Spatial文档提供了关于哪种类型的空间索引在特定情况下工作得最好的良好信息,尽管其中有些是Oracle DB特有的。如果您正在寻找一种特定于java的空间索引实现,请参阅位于

    的空间数据索引部分,该库相当轻量级,并提供两种空间索引实现:和。STRTree只是R树的特定空间优化实现。由于其层次性,这两种方法(四叉树和R树)都支持从小到大的不同规模的对象

    R-Tree的一个限制是插入很困难(JTS实现不允许插入),因为索引层次结构由数据决定,并且在插入数据时可能需要更改,而四叉树层次结构是固定的,无论数据如何分布。这可能会比功能大小更影响您的实现


    Oracle Spatial文档提供了关于哪种类型的空间索引在特定情况下工作得最好的良好信息,尽管其中有些是Oracle DB特有的。请参见我之前在

    中看到的空间数据索引部分,但是对于我所需要的,一个完整的GIS系统似乎有点过头了。本质上,我只是想制作一个非常简单的绘图工具(恰好有一个非常大的画布)。@docM对于一些小东西-使用谷歌地图api。我之前在看,但是一个完整的GIS系统对于我所需要的似乎有点过分了。本质上,我只是想制作一个非常简单的绘图工具(恰好有一个非常大的画布)。@docM对于一些小东西-使用谷歌地图api。Oracle文档很有趣。似乎四叉树可能是更好的选择,因为我真的需要插入和删除对象。Oracle文档很有趣。似乎四叉树可能是更好的选择,因为我确实需要插入和删除对象。