【问题标题】:Why aren't geohashes perfect squares?为什么 geohashes 不是完美的正方形?
【发布时间】:2018-11-09 19:56:40
【问题描述】:

为什么在地图上呈现为明显矩形的地理哈希没有优化为呈现为正方形?如果 geohash 的目的是允许单一属性的空间索引和地理查询,为什么 geohash 不优化成需要的正方形,以便搜索半径渲染的圆圈剪裁最少的错误结果?

【问题讨论】:

    标签: geohashing


    【解决方案1】:

    基本上,问题在于将球体上的坐标映射到二维空间。当您远离赤道时,坐标变得更加“矩形”,因为由纬度和经度的相等变化所代表的物理差异之间存在更大的差异。 Wikipedia 文章中很好地解释了这种非线性行为。我在这里包含了相关部分:

    由于 geohash(在此实现中)基于经度和纬度坐标,因此两个 geohash 之间的距离反映了两点之间的纬度/经度坐标中的距离,它不会转化为实际距离,请参阅 Haversine 公式。

    经纬度系统非线性示例:

    At the Equator (0 Degrees) the length of a degree of longitude is 111.320 km, while a degree of latitude measures 110.574 km, an error of 0.67%.
    At 30 Degrees (Mid Latitudes) the error is 110.852/96.486 = 14.89%
    At 60 Degrees (High Arctic) the error is 111.412/55.800 = 99.67%, reaching infinity at the poles.
    

    【讨论】:

    • 是的,geohash 的发明并没有考虑到搜索效率,它是一种将地球划分为网格的线性方法;它尚未针对当今最常见的用例进行优化。如果我有时间,我很想尝试将其优化为根据其与赤道的距离可变地调整其边界框的东西,以便“第一个”矩形(地图的左下角)不是订单例如,比覆盖新加坡的相同位大小的矩形要大。
    猜你喜欢
    • 2022-08-23
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    • 2016-12-26
    • 2010-09-25
    • 2016-06-21
    • 2019-01-29
    • 1970-01-01
    相关资源
    最近更新 更多