基于redis的位置信息计算(经纬度)
[redis版本 >= 3.2]写入经纬度信息geoadd key longitude latitude member [longitude latitude member ...]示例将l1的位置信息写入location中geoadd location 120.0742 30.2904 l1将l2的位置信息写入location中geoadd location 121.0742...
[redis版本 >= 3.2]
写入经纬度信息
geoadd key longitude latitude member [longitude latitude member ...]
示例
将l1的位置信息写入location中
geoadd location 120.0742 30.2904 l1
将l2的位置信息写入location中
geoadd location 121.0742 31.2904 l2
查询指定key的经纬度
geopos key member [member ...]
示例
获取location中l1的位置
geopos location l1
输出
1) 1) "120.07420152425765991"
2) "30.29040071848131532"
计算两个位置之间的举例
geodist key member1 member2 [unit]
返回两个地方的距离,可以指定单位,比如米m(默认),千米km,英里mi,英尺ft
示例
计算l1 l2之间的距离
geodist location l1 l2
输出
"146629.3499"
计算l1 l2之间的距离 km
geodist location l1 l2 km
输出
"146.6293"
中心点指定半径内的元素
指定中心置为坐标
georadius key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count]
给定的位置元素
georadiusbymember key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count]
参数
- WITHDIST 在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回。 距离的单位和用户给定的范围单位保持一致
- WITHCOORD 将位置元素的经度和维度也一并返回
- WITHHASH 返回位置元素经过原始 geohash 编码的有序集合分值。 这个选项主要用于底层应用或者调试, 实际中的作用并不大
- COUNT 需要返回的元素数量
- ASC 根据中心的位置, 按照从近到远的方式返回位置元素
- DESC 根据中心的位置, 按照从远到近的方式返回位置元素
示例
获取location中以 120.0012 30.2321 为中心半径200km内的元素 返回距离和位置信息 按距离升序 取5条
georadius location 120.0012 30.2321 200 km WITHDIST WITHCOORD ASC COUNT 5
输出
1) 1) "l1"
2) "9.5517"
3) 1) "120.07420152425765991"
2) "30.29040071848131532"
2) 1) "l2"
2) "156.1170"
3) 1) "121.07419878244400024"
2) "31.29039891026372544"
georadiusbymember location l1 200 km WITHDIST WITHCOORD ASC COUNT 5
输出
1) 1) "l1"
2) "0.0000"
3) 1) "120.07420152425765991"
2) "30.29040071848131532"
2) 1) "l2"
2) "146.6293"
3) 1) "121.07419878244400024"
2) "31.29039891026372544"
删除location中的指定袁术
zrem key member [member ...]
示例
删除location中的l3元素
zrem location l3
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)