正面刚算法-geohash(一)简明介绍geohash

通俗的了解geohash

1.从地图直观上看geohash

geohash 打个比方就是把世界地图平铺填充到一个矩形壳子里,然后像切蛋糕一样,分成若干份儿;每份又可以细分;当分的粒度越小时,蛋糕也就越小,代表的面积也就越小。这个时候对这些小块进行编号,就可以通过唯一的标识定位到”一块“对应大小蛋糕。

地图切分

2.从数据的转变看geohash

这让我想到如果在一个平面中如果我们需要定位一个点,一般都会引入坐标系(比如地球的经纬度就是一个坐标系),最早我们学习经纬度的时候,我们会拿着尺子,在X轴上在对应的数值画一竖线,平行于Y轴,然后在Y轴上画一道横线平行于X轴,我们画的两条线会交差于一点,我们称为目标点,这个目标点我们就可以用X轴上的数字
和Y轴上的数字来表示(10,10)。
如果我们像用类似geohash方式来表达这个目标点的时候呢?我们就需要用类似一条线一样的东西,把所有点都串起来,这样就可以通过线上的某一点来标识出目标点的位置。

二维坐标用一维数据表示

如果直接用geohash的开发包(java的ch.hsr.geohash),我们可以省去实现geohash的算法,我们可以通过一组经纬度坐标获得指定精度的geohash值。我们可以通过这个geohash值获取中心点的位置。

当前工作中负责开发的系统叫做LBS(实时空间地理系统),顾名思义,几乎所有的业务线都是和地理信息有关。经纬度解析、POI(兴趣点)信息查询、等,最近一些功能优化,接触到geohash算法,解决了我们若干需求:

  • 热力图展示中,用于geohash点聚合功能,可以提高大量点前端渲染的性能
  • 地址聚类中,通过geohash计算,进行地址归类
  • 地址信息缓存时,通过geohash为key,来索引缓存信息
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • GeoHash算法 涉及到地图的内容,基本都会遇到搜索附近的功能,比如附近的人、附近的店铺等。要实现这样的功能,我...
    小苏c阅读 6,161评论 0 2
  • Redis在3.2版本增加了GEO模板,意味着通过redis可以做附近的人,附近的门店,附近的商场这样的功能。 用...
    773eeb0e0c48阅读 5,687评论 0 0
  • 许久许久未见的人 原来真的梦不到 孤独 和谁的相处都无法避免 可能就是某个时刻的无解和凉意 这很平常呀 所以不 过...
    写在沙上阅读 1,488评论 0 0
  • 昨天晚上一直在看《课程教材教法》201705上的文章,与语文有关的不少,延伸出去又关注了顾之川、吴泓、刘宇新,但没...
    雪糕冰脚阅读 3,496评论 0 3
  • 自11.7号开始写作训练,到现在已经整整过去了21天。听说在21天里连续做一件事情,就能养成一个可持续的习惯,那么...
    张烤鸭阅读 2,166评论 1 1