Google app engine 如何计算可视区域/边界框的geohash?

Google app engine 如何计算可视区域/边界框的geohash?,google-app-engine,google-maps,google-maps-api-3,geolocation,geohashing,Google App Engine,Google Maps,Google Maps Api 3,Geolocation,Geohashing,我最近开始做一个涉及地理位置、地图(谷歌地图V3)等的个人项目 该项目是用Python开发的,打算在Google App Engine上运行。 我了解到,为了找到接近某个位置的标记/位置,可以使用geohash算法(这很酷) 我不明白的是:假设我的所有位置都在数据存储中(以及每个位置的纬度、经度和geohash(具有高精度)) 我知道我应该使用geohash的前缀(以匹配其中的位置),但如何计算边界框的geohash?考虑到边界框由两个点组成,东北点和西南点,我不知道该怎么做 为了查询当前可见边

我最近开始做一个涉及地理位置、地图(谷歌地图V3)等的个人项目

该项目是用Python开发的,打算在Google App Engine上运行。 我了解到,为了找到接近某个位置的标记/位置,可以使用geohash算法(这很酷)

我不明白的是:假设我的所有位置都在数据存储中(以及每个位置的纬度、经度和geohash(具有高精度))

我知道我应该使用geohash的前缀(以匹配其中的位置),但如何计算边界框的geohash?考虑到边界框由两个点组成,东北点和西南点,我不知道该怎么做

为了查询当前可见边界框应返回哪些位置,我需要可见/可见边界框的geohash-现在我知道我可以在可视地图上对中心位置进行geohash,但我不知道要剪切多少字母(以降低精度)以实现与实际边界框的“拟合”。(或者可能不是这样…?)

当边界框容器到GeoHash时,您会做什么?(像在可视区域的中间,它在‘dqcjr0’和‘dqcjqb’)之间分裂:

另外,假设我有一个5个字母的geohash,如何将其转换回一个可视的边界框?或者换句话说,我如何知道散列中包含了什么,以及相邻散列中包含了什么

提前感谢您的帮助


Ken。

我经常将geohash与google app engine数据类型(即
db.GeoPt
)结合使用,我发现geohash不如将
db.GeoPt
与非常好但有点慢的geomedel库结合使用,它可以进行边界框和半径映射,我建议您尝试使用边界框,因为它是没有半径那么贵。我可以执行如下边界框查询:

    articles = Article.bounding_box_fetch(Article.all().filter('modified >',
                          timeline).filter('published =',
                          True).filter('modified <=',
                          bookmark).order('-modified'),
                          bounds,
                          max_results=PAGESIZE + 1)
articles=Article.bounding\u box\u fetch(Article.all().filter('modified>),
时间轴)。过滤器('published=',
正确)。过滤器('modifiedKen
您可能需要更新您的问题,说明您是否正在使用django/django Nonl

我正准备尝试将gemodel的这个(当前已存档)端口连接到django:

凯尔建议,即将到来的谷歌“全文搜索”将取代他的Geomodel实现。尽管如此,我需要它在未来几天内工作

(我当前的对话主题是:

)


Jon

当然,我在研究中遇到了GeoModel,但GeoModel不适合我,因为我使用的是django和django模型:(