有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

mongodb如何在内存中计算给定半径内的GPS点的及时列表(Java)?

我知道在数据库中使用PostGIS很容易做到这一点,但我只希望我的积分最多能维持几分钟

我想有一个1-5分钟的GPS点列表。当我添加一个新点时,我想从旧列表中计算一个点列表,这些点位于新点的1-10km半径内

仍然建议在PostGIS或Mongo?之类的数据库中执行这些操作

如果不是,人们将如何在内存中进行计算


共 (2) 个答案

  1. # 1 楼答案

    数据库速度非常慢,因为它们访问的磁盘内存速度很慢

    对于您的解决方案,您还需要Geo Spatial DBs使用的索引技术(PostGis或Oracle Spatial)。在您的情况下,索引将保留在内存中:

    这是一个(地理)空间索引。 目前有四叉树和R-树。(有时也使用kd树) 四叉树更容易实现,R-树的速度是四叉树的两倍。 我会用四叉树

    工作中要求最高的部分是点的删除操作。 这很棘手,而且比插入要慢得多

    四叉树的原始作者推荐了一种解决方案,我会尝试:将点标记为已删除,但保留在四叉树中。 Evry x minutes重建整个四叉树,方法是根据旧四叉树的数据创建一个新的四叉树,但只保持点仍然存在

    一旦点位于四叉树中,范围搜索将仅限于“附近”的点

  2. # 2 楼答案

    你可以计算一个四叉键,它类似于一个四叉树,bing地图将其用于tile服务器。四键可以用莫顿曲线计算。你可以下载我的php类hilbert curve@phpclasses。组织