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公里范围内的所有元素。