【问题标题】:How range-queries on geotemporal data are done without filtering?如何在不过滤的情况下完成对地时数据的范围查询?
【发布时间】:2016-04-17 23:06:40
【问题描述】:

我想我了解如何存储 (x,y) 或 (lat, log) 以允许在对排序数据使用范围查询时检索某个空间范围内的所有点。 Geohash 通过交替 lat(奇数位)和 log(偶数位)来实现这一点,这样随着 x 的分辨率增加,y 的分辨率也会增加。希尔伯特曲线等其他方法也依赖于这一基本原理,可在两个维度上增加分辨率。但是,我无法理解添加额外的时间维度会完成什么。例如,GeoMesa uses index which look like this "YXTTYXTTYX" acconding to their site。我不明白的是 TT 位如何允许提出诸如“在最小 我是否误解了地理空间索引中这些位和额外维度的用途?

按照我的理解,将这些位放在那里会使时间分辨率随着空间分辨率的增加而增加。假设我们有 Ts 所在的 [10] [00] 之类的位。第一位将空间分成两块,零表示小于一半,1 表示大于一半,因此,对于四千年的假想集合,我们得到0 = year < 2000, 1 = year > 2000。这个[10] 导致2000 < t < 2500,下一位0 导致2000 < t < 22500 导致2000 < t < 2125。使用这种方法,我看不到如何在特定空间范围内检索特定时间范围内的所有事件,也不清楚这还能用于什么。到目前为止,我看到的所有地理空间论文和演示文稿都主要关注空间散列,并没有详细讨论额外维度的使用。

【问题讨论】:

标签: database geospatial geohashing nosql


【解决方案1】:

GeoMesa 网站关于空间填充曲线是 geohash 的说法是错误的。 geohash 是 G. Niedermayer 的发明!但是你也可以像 2d 一样将 3d 展平。 sfc 还保留 3d 中的位置信息,但质量越高,工作量越大。我不会向您推荐 3d 希尔伯特曲线。 z 曲线更容易理解!

【讨论】:

  • 但是如果你将 3D 扁平化为 1D,这不是意味着所有 3 个维度上的分辨率都会同时增加吗?换句话说,这是否意味着时间范围与空间范围绑定,反之亦然?我现在看到的方式是,如果您想搜索时间相距很远的点,它们也必须在空间上相距很远,我不明白这对索引有何用处。
  • 对于 x,y,z 我不知道任何界限,除了例如 3d 中的 sfc 是 3 的幂。在 2d 中你有三角不等式!同样,sfc 在八叉树中只遍历一个点 (x,y,z) 一次,您可以在一片叶子中有很多点!
  • 我不明白怎么可能没有限制。例如,在地理哈希中,如果纬度是“-90 到 +90”,那么第一位表示纬度是 -90 到 0 还是 0 到 +90。第二位表示经度是 -180 到 0 还是 0 到 +180。假设第一位是 1,那么第三位表示纬度是 0-45 还是 45-90,同样第四位表示 lon 是 0-90 或 90-180。现在,如果我想查询一个范围,那么
  • (假设我想查询 lon)我可以查询 1111*(所有 lon 在 90-180 和 lat 45-90)或 1101*(所有 lon 90-180 和 lat 0 -45)。但是对于任何纬度,我都无法获得所有 lon 90-180。纬度和经度受分辨率约束。随着我对我想要的 lon 范围越来越精确,我也必须得到更精确的 lat 答案。
  • 通常位用整数表示。您希望如何使用整数进行范围搜索?
猜你喜欢
  • 1970-01-01
  • 2017-04-10
  • 1970-01-01
  • 2019-08-30
  • 1970-01-01
  • 1970-01-01
  • 2021-08-21
  • 2016-10-19
  • 1970-01-01
相关资源
最近更新 更多