【问题标题】:In Memory database that supports Spatial Query支持空间查询的内存数据库
【发布时间】:2012-05-03 14:32:35
【问题描述】:

我正在尝试解决 java 中“查找您附近的兴趣点”的问题。 即我有很多纬度,很多兴趣点。我想找到800米以内的那些。假设我知道我当前的纬度和日志。

我的问题是这个应用程序必须是独立的。所以我不能依靠空间数据库查询来查找结果,例如使用 mysql 我发现这很有用: http://xebee.xebia.in/2010/10/28/working-with-geolocations/

目前我找不到支持空间查询的内存数据库。 我打算使用 R-Tree 之类的 http://jsi.sourceforge.net/

但我知道,考虑到它使用矩形而不是循环搜索这一事实,这并不正确。

有什么推荐的吗?

【问题讨论】:

    标签: java geolocation


    【解决方案1】:

    有一个名为 Altibase 的内存数据库,它支持空间功能。它遵守 OGC 规范。你可以使用它。

    【讨论】:

      【解决方案2】:

      实际上,jsi 库 (http://jsi.sourceforge.net) 非常适合解决这个问题。它是为了支持这种确切的情况而编写的。

      在搜索附近的矩形(或点)时,您可以提供最大距离,它会按距离增加的顺序返回结果。

      它不支持查询“返回半径 800m 内的每个点”,但实际上你需要一个限制。所以jsi库确实支持比较有用的“返回800m半径内最近的50个点”。

      如果您确实想要半径内的每个点,您可以将点数增加到一个较大的数字并运行最近 N 查询,或者在您自己的代码中执行相交查询并按距离过滤。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-05-01
        • 1970-01-01
        • 2019-01-09
        • 2018-02-10
        • 2020-12-17
        • 2021-11-16
        • 1970-01-01
        相关资源
        最近更新 更多