红联Linux门户
Linux帮助

php的经纬度地址编码geohash扩展1.1发布

发布时间:2014-02-14 15:57:05来源:红联作者:empast
今天是个特殊的日子,祝大家双节快乐, 还有就是措施要做好。(凡士林的搞起)

【更新】

1. 对geohash_encode 传入的经纬度参数做了简单的校验, 如果经纬度有错,会出一个notice级别的日志

2. 新增 geohash_dimension方法。可以查看某一精密度下的矩形大小,(对范围大小查看很有帮助)。

geohash简介:

geohash是一种地址编码,它能把二维的经纬度编码成一维的字符串。

geohash有以下几个特点:

首先,geohash用一个字符串表示经度和纬度两个坐标。某些情况下无法在两列上同时应用索引 (例如MySQL 4之前的版本,Google App Engine的数据层等),利用geohash,只需在一列上应用索引即可。

其次,geohash表示的并不是一个点,而是一个矩形区域。比如编码wx4g0ec19,它表示的是一个矩形区域。 使用者可以发布地址编码,既能表明自己位于北海公园附近,又不至于暴露自己的精确坐标,有助于隐私保护。

第三,编码的前缀可以表示更大的区域。例如wx4g0ec1,它的前缀wx4g0e表示包含编码wx4g0ec1在内的更大范围。 这个特性可以用于附近地点搜索。首先根据用户当前坐标计算geohash(例如wx4g0ec1)然后取其前缀进行查询 (SELECT * FROM place WHERE geohash LIKE 'wx4g0e%'),即可查询附近的所有地点。Geohash比直接用经纬度的高效很多。

用途:

移动互联网,lbs可以说是一个基础应用,geohash对于解决附近地点搜索提供了一个有效的解决方案。

github地址:http://github.com/shenzhe/geohash

来自:开源中国社区
文章评论

共有 0 条评论