Redis数据类型Geospatia

本文介绍了Redis中的Geospatia功能,包括存储地理位置、查询位置信息、计算距离以及基于地理位置的范围查询,以实例展示了如何使用geoadd、geopos、geodist和georadius这些关键命令。
摘要由CSDN通过智能技术生成

1、Geospatia介绍

        GEO,Geographic,地理信息的缩写。该类型就是元素的二维坐标,在地图上就是经纬度。Redis基于该类型,提供了经纬度设置、查询、范围查询、距离查询、经纬度Hash等常见操作。

使用场景:

  • 附近的电影院
  • 附近的好友
  • 离最近的火锅店

2、常用命令

2.1 geoadd

        用于存储指定的地理空间位置,可以将一个或多个经度(longitude)、纬度(latitude)、位置名称(member)添加到指定的 key 中。

geoadd key longitude latitude member

示例1:将北京的经纬度和名称添加到china

示例2:将成都和上海的经纬度、名称添加到china

2.2 geopos

        从给定的 key 里返回所有指定名称(member)的位置(经度和纬度),不存在的返回 nil。

geopos key member [member ……]

示例1:返回china中名称为shanghai和beijing的经纬度

2.3 geodist

        用于返回两个给定位置之间的距离。

geodist key member1 member2 [m|km|ft|mi]

参数说明:

  • m :米,默认单位。
  • km :千米。
  • mi :英里。
  • ft :英尺。

示例1:返回shanghai和beijing之间的距离,结果1067597.9668,单位米

示例2:返回shanghai和chengdu之间的距离,结果1660.0198,单位是千米

2.4 georadius

        以给定的经纬度(longitude latitude)为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离(radius )的所有位置元素。

georadius key longitude latitude radius m|km|ft|mi

 示例:获取经纬度110 30为中心,在china内1200公里范围内的所有元素。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值