redis使用GEO获取经纬度位置距离

RedisGEO是Redis3.2引入的新特性,用于存储和处理地理位置信息。通过`geoadd`添加坐标,`geopos`获取坐标,`geodist`计算距离,`georadius`和`georadiusbymember`查找范围内的位置。例如,添加两个位置a和b,并计算它们之间的距离,然后查询300米范围内的位置。这一功能在地理信息系统和推荐系统中十分有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis GEO 主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 版本新增。

Redis GEO 操作方法有:

  1. geoadd:添加地理位置的坐标。
  2. geopos:获取地理位置的坐标。
  3. geodist:计算两个位置之间的距离。
  4. georadius:根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。
  5. georadiusbymember:根据储存在位置集合里面的某个地点获取指定范围内的地理位置集合。
  6. geohash:返回一个或多个位置对象的 geohash 值。

下面是简单例子:

        $redis = new \Redis();
        //增加两个位置的经纬度 a,b
        $redis->geoadd('demo',114.03587211582945,22.663998990300417,'a');
        $redis->geoadd('demo',114.03435934994505,22.665820644352582,'b');
        //计算两个位置之间的距离 默认单位是米
        echo $redis->geodist('demo','a','b','m');
        //输出结果为  255.1134
		
		//计算在指定经纬度300米之内的元素
		$redis->georadius('demo',114.03587211582945,22.663998990300417,300,'m');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值