zoukankan      html  css  js  c++  java
  • Geo命令

    简介:

    Geo是redis用于存储地理位置信息的结构,与redis3.2版本新增。
     

    命令简介:

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

    命令介绍:

    1)geoadd

    可用版本: >=3.2.0
    时间复杂度: 每添加一个元素复杂度为O(log(N))
    命令格式: geoadd key longitude latitude member [longitude latitude member ....]
    作用:
    将给定的空间元素(经度,纬度,名字)添加到指定的键里面,这些数据将会以有序集合的形式保存在key中。
    返回值:
    新添加到key中的空间元素的数量,不包括已经存在但是被更新的元素。
    注意:
    GEOADD可以记录的坐标有限,很接近两级的区域将无法被索引。
    有效的经度在-180到180之间。
    有效的纬度在-85.05112878到85.05112878之间。
    如果输入的经纬度不在有效度数之间的话,geoadd将会返回一个error。
     

    2)geopos

    可用版本: >=3.2.0
    时间复杂度: 获取每一个元素的复杂度为O(log(N))
    命令格式: geopos key member [member ...]
    作用:
    获取key中指定member的位置信息(经度+纬度)。
    返回值:
    返回一个数组,数组中每一个项都由两个元素组成,第一个为经度,第二个为纬度。
    注意:
    当给定的位置元素不存在时,对应的数组项为nil。
     

    3)geodist

    可用版本: >=3.2.0
    时间复杂度: O(log(N))
    命令格式: geodist key member1 member2 [unit]
    作用:
    获取两个位置之间的距离。
    返回值:
    计算出的距离会以双精度浮点数的形式被返回,如果给定的元素不存在,将会返回nil。
    注意:
    unit参数必须是下面其中的一个:
    1. m-米
    2.km-千米
    3.mi-英里
    4.ft-英尺
    没有unit参数时,默认为米。
    geodist计算距离时,默认地球为完美的球形,所以会存在0.5%之内的误差。
     

    4)georadius

    可用版本: >=3.2.0
    时间复杂度: O(N+log(M)),其中 N 为指定半径范围内的位置元素数量, 而 M 则是被返回位置元素的数量。
    命令格式: georadius key longitude latitude radius unit [withcoord] [withdist] [withhash] [asc|desc] [count count]
    作用:
    以给定的经纬度为中心,返回键包含的位置元素当中,与中心的距离不超过给定的最大距离的所有位置元素。
    返回值:
    返回一个数组,在没有任何with参数的时候,返回格式为["New York","Milan","Paris"] 这样的线性(linear)列表。
    在有with参数的时候,将会返回一个两层嵌套的数组。第一个位置为元素名称,然后按以下顺序:
    1.浮点数型返回中心与位置元素的距离
    2.geohash整数。
    3.由两个元素组成的坐标,分别为经度与纬度。
    注意:
    withdist:在返回位置元素的同时,将位置元素与中心的距离也一并返回。距离的单位和用户给定的范围单位保存一致。
    withcoord:将位置元素的经度和纬度也一并返回。
    withhash:以52位有符号整数的形式,返回位置元素经过原始geohash编码的有序集合分值。(实际作用不大)
    asc|desc:根据中心位置,安装距离从近到远、从远到近排序。
    count:默认情况下会返回所有匹配的位置元素,count可以限制元素个数。
     

    5)georadiusbymember

    可用版本: >=3.2.0
    时间复杂度: O(log(N)+M), 其中 N 为指定范围之内的元素数量, 而 M 则是被返回的元素数量。
    命令格式: georadiusbymember
    作用:
    以给定的元素为中心,返回键包含的位置元素当中,与中心的距离不超过给定的最大距离的所有位置元素。
    返回值:
    同georadius命令。
     

    6)geohash

    可用版本: >=3.2.0
    时间复杂度: 寻找每个位置元素的复杂度为 O(log(N)) , 其中 N 为给定键包含的位置元素数量。
    命令格式: geohash key member [member ...]
    作用:
    获取一个或者多个位置元素的geohash表示。
    返回值:
    一个数组,每一个元素都是一个geohash。命令返回的geohash位置与用户请求时的位置一一对应。
    作者:红雨
    出处:https://www.cnblogs.com/52why
    微信公众号: 红雨python
  • 相关阅读:
    安卓日志输出-logger
    RecyclerView的使用(3)之加入Header和Footer
    这些年我踩过的坑——Android
    精简点名IAP错误
    Android中BitmapFactory.Options详解
    在Android下通过ExifInterface类操作图片的Exif信息
    android 生成随机数
    JSON入门之二:org.json的基本使用方法
    Android中的各种访问权限Permission含义
    jar命令的用法详解
  • 原文地址:https://www.cnblogs.com/52why/p/14331729.html
Copyright © 2011-2022 走看看