首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google App Engine Geohashing

Google App Engine Geohashing
EN

Stack Overflow用户
提问于 2010-01-14 04:59:47
回答 8查看 10.8K关注 0票数 12

我正在使用GWT和App Engine编写一个web应用程序。我的应用程序需要根据项目的纬度、经度发布和查询项目。

由于google的分布式数据库设计,您不能简单地查询一组不等式。取而代之的是,他们建议使用geohashing。该方法在此页面中进行了描述。

http://code.google.com/appengine/articles/geosearch.html

本质上,您预先计算了一个边界框,以便您可以查询已使用该边界框标记的项目。

这个过程中有一部分是我不理解的。"slice“属性是什么意思?

谢谢你的帮忙!

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-02-27 00:21:27

有关Geomodel的完整java portage,请参阅http://code.google.com/p/javageomodel/

有一个演示类向您解释如何使用它。

票数 7
EN

Stack Overflow用户

发布于 2010-01-15 17:32:12

您可能对在Google App Engine上实现类似geohash系统的GeoModel开放源码项目感兴趣,而不是自己实现geohash。您无需了解所有细节,只需导入此库并调用proximity_fetch()bounding_box_fetch()即可。

This more recent article描述了它是如何工作的,并提供了一个使用它的示例。

票数 6
EN

Stack Overflow用户

发布于 2010-01-14 16:06:49

无需使用4个坐标(最小和最大纬度、最小和最大经度)定义边界框,可以使用框的西北角坐标和两个参数来定义边界框:分辨率和切片。分辨率定义了框的比例,它被实现为小数点以下的数字的数量。切片是方框的宽度和高度,使用最低有效数字作为其单位。

geobox.py中的注释更详细地解释了这一点,并提供了很好的示例:

为了查询边界框的成员,我们从一些输入坐标开始,比如lat=37.78452

=-122.39532(两个分辨率都是5)。然后,我们将这些坐标向上和向下舍入到最近的“切片”,以生成一个geobox。“切片”是如何精细地划分地理框中的每个分辨率级别。最小切片大小为1,最大切片大小没有限制,因为较大的切片将溢出到较低的分辨率(希望示例将会解释)。

下面是一些例子:

resolution=5、slice=2和lat=37.78452 long=-122.39532:"37.78452|-122.39532|37.78450|-122.39530“

resolution=5、slice=10和lat=37.78452 long=-122.39532:"37.78460|-122.39540|37.78450|-122.39530“

"37.78475|-122.39550|37.78450|-122.39525":resolution=5、slice=25和lat=37.78452 long=-122.39532

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2060219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档