# Geo Commands

# geoadd

  • 支持:是

  • 说明: 添加地理位置的坐标。

  • 示例:

     > GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
    (integer) 2
     > GEODIST Sicily Palermo Catania
    "166274.1516"
     > GEORADIUS Sicily 15 37 100 km
    1) "Catania"
     > GEORADIUS Sicily 15 37 200 km
    1) "Palermo"
    2) "Catania"
    

# geopos

  • 支持:是

  • 说明: 获取地理位置的坐标。

  • 示例:

     > GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
    (integer) 2
     >  GEOPOS Sicily Palermo Catania NonExisting
    1) 1) "13.36138933897018433"
       2) "38.11555639549629859"
    2) 1) "15.08726745843887329"
       2) "37.50266842333162032"
    3) (nil)
    

# geodist

  • 支持:是

  • 说明:计算两个位置之间的距离。

  • 示例:

     > GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
    (integer) 2
     > GEODIST Sicily Palermo Catania
    "166274.1516"
     > GEODIST Sicily Palermo Catania km
    "166.2742"
     > GEODIST Sicily Palermo Catania mi
    "103.3182"
     > GEODIST Sicily Foo Bar
    (nil)
    

# geohash

  • 支持:是

  • 说明:返回一个或多个位置对象的 geohash 值。

  • 示例:

     > GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
    (integer) 2
     > GEOHASH Sicily Palermo Catania
    1) "sqc8b49rny0"
    2) "sqdtr74hyu0"
    

# georadius

  • 支持:是

  • 说明:根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。

  • 示例:

     > GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
    (integer) 2
     > GEORADIUS Sicily 15 37 200 km WITHDIST
    1) 1) "Palermo"
       2) "190.4424"
    2) 1) "Catania"
       2) "56.4413"
     > GEORADIUS Sicily 15 37 200 km WITHCOORD
    1) 1) "Palermo"
       2) 1) "13.36138933897018433"
          2) "38.11555639549629859"
    2) 1) "Catania"
       2) 1) "15.08726745843887329"
          2) "37.50266842333162032"
     > GEORADIUS Sicily 15 37 200 km WITHDIST WITHCOORD
    1) 1) "Palermo"
       2) "190.4424"
       3) 1) "13.36138933897018433"
          2) "38.11555639549629859"
    2) 1) "Catania"
       2) "56.4413"
       3) 1) "15.08726745843887329"
          2) "37.50266842333162032"
    

# georadius_ro

  • 支持:是

  • 说明:与 GEORADIUS命令相同,只是它不支持可选参数STORE和STOREDIST。

  • 示例:

     > GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
    (integer) 2
     > GEORADIUS_RO Sicily 15 37 200 km WITHDIST
    1) 1) "Palermo"
       2) "190.4424"
    2) 1) "Catania"
       2) "56.4413"
     > GEORADIUS_RO Sicily 15 37 200 km WITHCOORD
    1) 1) "Palermo"
       2) 1) "13.36138933897018433"
          2) "38.11555639549629859"
    2) 1) "Catania"
       2) 1) "15.08726745843887329"
          2) "37.50266842333162032"
    

# georadiusbymember

  • 支持:是

  • 说明:根据储存在位置集合里面的某个地点获取指定范围内的地理位置集合

  • 示例:

     > GEOADD Sicily 13.583333 37.316667 "Agrigento"
    (integer) 1
     > GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
    (integer) 2
     > GEORADIUSBYMEMBER Sicily Agrigento 100 km
    1) "Agrigento"
    2) "Palermo"
    

# georadiusbymember_ro

  • 支持:是

  • 说明:与GEORADIUSBYMEMBER命令相同,只是它不支持可选参数STORE和STOREDIST。

  • 示例:

     > GEOADD Sicily 13.583333 37.316667 "Agrigento"
    (integer) 1
     > GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
    (integer) 2
     > GEORADIUSBYMEMBER_RO Sicily Agrigento 100 km
    1) "Agrigento"
    2) "Palermo"
    

# geosearch

  • 支持:是

  • 说明:返回使用GEOADD填充的地理空间信息的有序集合中的成员,这些成员位于由给定形状指定的区域边界内。

  • 示例:

     > GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
    (integer) 2
     > GEOADD Sicily 12.758489 38.788135 "edge1"   17.241510 38.788135 "edge2"
    (integer) 2
     > GEOSEARCH Sicily FROMLONLAT 15 37 BYRADIUS 200 km ASC
    1) "Catania"
    2) "Palermo"
     > GEOSEARCH Sicily FROMLONLAT 15 37 BYBOX 400 400 km ASC WITHCOORD WITHDIST
    1) 1) "Catania"
       2) "56.4413"
       3) 1) "15.08726745843887329"
          2) "37.50266842333162032"
    2) 1) "Palermo"
       2) "190.4424"
       3) 1) "13.36138933897018433"
          2) "38.11555639549629859"
    3) 1) "edge2"
       2) "279.7403"
       3) 1) "17.24151045083999634"
          2) "38.78813451624225195"
    4) 1) "edge1"
       2) "279.7405"
       3) 1) "12.7584877610206604"
    

# geosearchstore

  • 支持:是

  • 说明:这个命令类似于GEOSEARCH,但是将结果存储在目标键中。

  • 示例:

     > GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
    (integer) 2
     > GEOADD Sicily 12.758489 38.788135 "edge1"   17.241510 38.788135 "edge2"
    (integer) 2
     > GEOSEARCHSTORE key1 Sicily FROMLONLAT 15 37 BYBOX 400 400 km ASC COUNT 3
    (integer) 3
     > GEOSEARCH key1 FROMLONLAT 15 37 BYBOX 400 400 km ASC WITHCOORD WITHDIST WITHHASH
    1) 1) "Catania"
       2) "56.4413"
       3) (integer) 3479447370796909
       4) 1) "15.08726745843887329"
          2) "37.50266842333162032"
    2) 1) "Palermo"
       2) "190.4424"
       3) (integer) 3479099956230698
       4) 1) "13.36138933897018433"
          2) "38.11555639549629859"
    3) 1) "edge2"
       2) "279.7403"
       3) (integer) 3481342659049484
       4) 1) "17.24151045083999634"
          2) "38.78813451624225195"
     > GEOSEARCHSTORE key2 Sicily FROMLONLAT 15 37 BYBOX 400 400 km ASC COUNT 3 STOREDIST
    (integer) 3
     > ZRANGE key2 0 -1 WITHSCORES
    1) "Catania"
    2) "56.4412578701582"
    3) "Palermo"
    4) "190.44242984775784"
    5) "edge2"
    6) "279.7403417843143"