Ken*_*Ken 7 google-app-engine google-maps geolocation google-maps-api-3 geohashing
我最近开始从事涉及地理位置、地图(Google Maps V3)等的个人项目。
该项目是用 Python 开发的,旨在在 Google App Engine 上运行。我了解到,为了找到靠近一个位置的标记/位置,可以使用 geohash 算法(这很酷)。
我不明白的是:假设我在数据存储中拥有我的所有位置(以及每个位置的纬度、经度和地理散列(高精度)。)
我知道我应该使用 geohash 的前缀(以匹配其中的位置),但是如何计算边界框的 geohash?考虑到边界框由两个点组成,东北和西南,我不明白如何去做。
为了让我哪个位置应该为当前可见的边框返回查询,我需要的地理散列的可见/可视边框-现在我知道我可以地理散列可视地图上的中心位置,但我不知道如何许多字母要切断(以降低精度)以实现与实际边界框的“拟合”。(或者也许这不是方式......?)
当边界框容器到 geohashes 时,你会怎么做?(就像在可视区域的中间,它在“dqcjr0”和“dqcjqb”之间分开)
另外,假设我有一个 5 个字母的 geohash,如何将其转换回可见的边界框?或者换句话说,我怎么知道什么是“包含”的哈希值,以及相邻的哈希值是什么?
在此先感谢您的帮助,
肯。
我经常将geohash与谷歌应用程序引擎数据类型一起使用db.GeoPt,我曾经保留一个geohash,我发现它不如db.GeoPt与一个非常好的但有点慢的名为geomodel的库相结合Geomodel可以做边界框和半径映射,我建议您可以尝试使用边界框,因为它不像半径那么昂贵。我可以像这样执行边界框查询:
articles = Article.bounding_box_fetch(Article.all().filter('modified >',
timeline).filter('published =',
True).filter('modified <=',
bookmark).order('-modified'),
bounds,
max_results=PAGESIZE + 1)
Run Code Online (Sandbox Code Playgroud)
因此,即使我为每篇文章存储了 geohash,在我的情况下使用 geomodel 也会更好。也许您已经评估了地理模型并发现它不适合您的目的,并且您绝对必须使用 geohash 我建议我们就 geohash 的通用库达成一致,以便我们的坐标散列到相同的值。我确实保留了我在某处使用的 geohash 库的一个版本,但它可能已经过时了,最近有关地理空间查询的文章也提到了 geomodel,所以如果您还没有查看 geomodel,我真的建议您查看 geomodel 库来执行您的地理空间查询。
| 归档时间: |
|
| 查看次数: |
3174 次 |
| 最近记录: |