redis地理位置(geo)

redis 3.2版本中增加的最大功能就是对GEO(地理位置)的支持,这对于O2O项目来说,又有了一项实现LBS应用的选择。

主要命令:

命令说明
GEOADD将指定的地理空间位置(纬度、经度、名称)添加到指定的key中
GEODIST返回两个给定位置之间的距离
GEOHASH返回一个或多个位置元素的 Geohash 表示
GEOPOS从key里返回所有给定位置元素的位置(经度和纬度)
GEORADIUS以给定的经纬度为中心, 找出某一半径内的元素
GEORADIUSBYMEMBER找出位于指定范围内的元素,中心点是由给定的位置元素决定

我们来做个小demo:

先插入几个坐标地址

$redis->rawCommand('geoadd', 'location', '120.114123','30.264152', '状元峰');
$redis->rawCommand('geoadd', 'location', '120.10826','30.246569', '灵隐寺');
$redis->rawCommand('geoadd', 'location', '120.118007', '30.259293', '桃园岭');
$redis->rawCommand('geoadd', 'location', '120.119445','30.255082', '农耕科普园');
$redis->rawCommand('geoadd', 'location', '120.071655','30.272893', '西溪湿地');
$redis->rawCommand('geoadd', 'location', '120.114321','30.221218', '龙井村');
$redis->rawCommand('geoadd', 'location', '120.145012','30.205586', '白塔公园');
$redis->rawCommand('geoadd', 'location', '120.112912','30.224221', '十里琅珰');
$redis->rawCommand('geoadd', 'location', '120.107264','30.206997', '狮峰');
$redis->rawCommand('geoadd', 'location', '120.117936','30.227969', '五台寺');
复制代码

我们获取灵隐寺和状元峰的距离

$ret = $redis->rawCommand('GEODIST', 'location','灵隐寺', '状元峰', 'km');
print_r($ret);  //2.0352
复制代码

其他命令:

$ret = $redis->rawCommand('GEOPOS', 'location','灵隐寺', '状元峰');
print_r($ret);
$ret = $redis->rawCommand('GEORADIUS', 'location','120.114253','30.219759', 1, 'km', 'WITHDIST');
print_r($ret);
$ret = $redis->rawCommand('GEOHASH', 'location','龙井村', '灵隐寺');
print_r($ret);
返回值:

Array    
(    
    [0] => Array    
        (    
            [0] => 120.12203067541122    
            [1] => 30.2610410432927    
        )    
    [1] => Array    
        (    
            [0] => 120.11430591344833    
            [1] => 30.263971180952893    
        )    
)    
Array    
(    
    [0] => Array    
        (    
        [0] => 龙井村    
        [1] => 0.1624    
        )    
    [1] => Array    
        (    
        [0] => 十里琅珰    
        [1] => 0.5128    
        )    
    [2] => Array    
        (    
        [0] => 五台寺    
        [1] => 0.9793    
        )    
)    
Array    
(    
    [0] => wtm7vm8e6e0    
    [1] => wtmkjky5q40    
)
复制代码

操作比较简单,就不一一说明了。

原文链接:www.13sai.com/index.php/i…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值