正面刚算法-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(一)简明介绍geohash)