redis之Geospatial(地图)

1、官网所有命令

https://redis.io/commands/?group=geo

2、基本命令

GEOADD将一个位置添加到给定的地理空间索引(注意,使用此命令,经度在纬度之前)。
语法:
GEOADD key [NX | XX] [CH] 经度 纬度 member [经度
纬度 member …]
说明
XX:只更新已经存在的元素。不要添加元素。
NX:不要更新已经存在的元素。总是添加新元素。
CH:根据new的数目修改返回值添加的元素,加上改变的元素总数(CH是一个changed的缩写)。已更改的元素是添加的新元素和已存在的元素,这些元素的坐标已更新。所以在命令行中指定的元素具有与它们相同的分数
过去的都不算。注意:通常,GEOADD的返回值只计算添加的新元素的数量。注意:XX和NX选项互斥。
不含可选项的命令

> GEOADD locations:ca -122.27652 37.805186 station:1
(integer) 1
> GEOADD locations:ca -122.2674626 37.8062344 station:2
(integer) 1
> GEOADD locations:ca -122.2469854 37.8104049 station:3
(integer) 1

GEOSEARCH返回具有给定半径或边界框的位置。
语法:GEOSEARCH key <FROMMEMBER member | FROMLONLAT longitude latitude><BYRADIUS radius <M | KM | FT | MI> | BYBOX width height <M | KM | FT | MI>> [ASC | DESC] [COUNT count [ANY]][WITHCOORD] [WITHDIST][WITHHASH]
解释
查询的中心点由以下强制选项之一提供:
FROMMEMBER:使用给定的<成员>在排序集中的位置。
FROMLONLAT:使用给定的<经度>和<纬度>位置。
查询的形状由以下强制选项之一提供:
BYRADIUS:类似于GEORADIUS,根据给定的<半径>搜索圆形区域内。
BYBOX:在轴对齐的矩形内搜索,由和决定。
该命令使用以下选项可选地返回附加信息:
WITHDIST:返回对象的距离项目从指定的中心点的值返回距离
与radius或height和width参数指定的单位相同。
WITHCOORD:返回匹配项的经度和纬度。
WITHHASH:也返回原始的经过编码排序的地理散列设置该项的得分,以52位无符号整数的形式。
默认情况下,匹配项未排序返回。要对它们进行排序,请使用以下两个选项之一:
ASC:相对于中心点,从最近到最远对返回项进行排序。
DESC:相对于中心点,从最远到最近对返回项进行排序。
默认情况下返回所有匹配的项。若要将结果限制为前N个匹配项,请使用COUNT < COUNT >选项。当使用ANY选项时,命令会尽快返回
找到足够的匹配。这意味着返回的结果可能不是那些最接近指定点。
简单举例:
(找到给定位置5公里半径内的所有位置,并返回到每个位置的距离:)

> GEOSEARCH locations:ca FROMLONLAT -122.2612767 37.7936847 BYRADIUS 5 km WITHDIST
1) 1) "station:1"
   2) "1.8523"
2) 1) "station:2"
   2) "1.4979"
3) 1) "station:3"
   2) "2.2441"

GEODIST 返回由已排序集合表示的地理空间索引中两个成员之间的距离。
语法:GEODIST key member1 member2 [M | KM | FT | MI]
解释:M代表米。Km表示千米。MI表示英里。Ft代表英尺。

redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEODIST Sicily Palermo Catania
"166274.1516"
redis> GEODIST Sicily Palermo Catania km
"166.2742"
redis> GEODIST Sicily Palermo Catania mi
"103.3182"
redis> GEODIST Sicily Foo Bar
(nil)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值