如何找到覆盖给定区域的所有geohashing单位(lat / lng / radius)

时间:2017-01-20 12:21:35

标签: geohashing

鉴于我知道一个人位置的纬度/经度,我可以找到他们所在位置的地理位置。但是我想在他们的视图中找到所有的地理位置"。

因此,如果我知道纬度/经度和半径,让我们从谷歌地图视图中说,我想知道该空间中包含的所有地理数据。我知道我必须选择一些单位。让我们说5个单位,我相信每个地理位置约为3803米。

有一种简单的方法吗?我可以提出一个粗略的算法,但是我不太了解地理位置以完成每一步。

让我们说我们来自白金汉宫(51.501364,-0.141890),以及我们的观点"半径为1km。

理论上我可以做到这一点。假设我有一个可以将lat / lng转换为geohash的库,反之亦然。

  1. 鉴于我们知道地图的中心,找到角落(1公里西北,1公里NE,1公里西南,1公里SE)。
  2. 然后我可以计算出左上角的geohash。 ADD~3803m East,计算geohash。重复直到geohash等于右上角的geohash。
  3. 然后我可以走右边做同样的事情直到我到达左下角。在右侧做同样的事情。然后填写中间,从左上角下方的正方形开始,穿过,直到我到达右侧。回到左边,但是一个街区向下,再次穿过。回到我最后到达已知的右下角。
  4. 这可能有效,我认为它会很慢,而且不完全准确。我确信有更简单的方法可以做到这一点。有没有人知道可以解决这个问题的公式或算法?

    给定lat / lng和radius(R),找到所有geohash正方形(N长度),覆盖正方形的边缘距离中心R米(lat / lng)。

    谢谢!任何使用geohashing的部分答案或帮助/公式都将非常感谢!

0 个答案:

没有答案
相关问题