GEOSEARCH

Redis 開発者教育の申込 Redis 定期点検/技術サポート
Redis Technical Support
Redis エンタープライズサーバー
Redis Enterprise Server

GEOSEARCH 照会

指定した都市または座標で周辺都市を検索します。
このコマンドは georadiusbymember と georadius コマンドの代わりに使用できます。

Example: テストデータの入力

コマンド>GEOADD map 126.97796919999996 37.566535 seoul
コマンド>GEOADD map 126.70520693063735 37.4562551 incheon
コマンド>GEOADD map 127.38454750000005 36.3504119 daejeon
コマンド>GEOADD map 129.07564160000004 35.1795543 busan

都市または座標の指定

これは必須入力です。

  • FROMMEMBER: 都市を基準に検索する場合に使用します。
  • FROMLONLAT: 座標(経度、緯度)を基準に検索する場合に使用します。

半径(円)または四角形(box)の入力

これは必須入力です。

  • BYRADIUS: 円の半径で検索します。
  • BYBOX: 四角形の高さ(height)と幅(width)で検索します。
  • 距離は m(meter), km(kilometer), ft(feet), mi(mile) で入力できます。

Example: FROMMEMBER, BYRADIUS

コマンド>GEOSEARCH map FROMMEMBER seoul BYRADIUS 200 km
結果> 1) "incheon"
2) "seoul"
3) "daejeon"
コマンド>GEOSEARCH map FROMMEMBER seoul BYRADIUS 200 km asc
結果> 1) "seoul"
2) "incheon"
3) "daejeon"
コマンド>GEOSEARCH map FROMMEMBER seoul BYRADIUS 200 km asc withcoord
結果> 1) 1) "seoul"
    2) 1) "126.97797149419784546"
        2) "37.56653579238348328"
2) 1) "incheon"
    2) 1) "126.70520693063735962"
        2) "37.45625514418296831"
3) 1) "daejeon"
    2) 1) "127.38454610109329224"
        2) "36.3504120662288841"
コマンド>GEOSEARCH map FROMMEMBER seoul BYRADIUS 200 km asc withdist
結果> 1) 1) "seoul"
    2) "0.0000"
2) 1) "incheon"
    2) "27.0112"
3) 1) "daejeon"
    2) "140.0080"
コマンド>GEOSEARCH map FROMMEMBER seoul BYRADIUS 200 km asc withhash
結果> 1) 1) "seoul"
    2) (integer) 4077564854912194
2) 1) "incheon"
    2) (integer) 4077544197320088
3) 1) "daejeon"
    2) (integer) 4074568686606292

ASC/DESC

  • ASC: 距離が近い順に表示します。
  • DESC: 距離が遠い順に表示します。

WITHCOORD/WITHDIST/WITHHASH

  • WITHCOORD: 座標(経度、緯度)を表示します。
  • WITHDIST: 距離を表示します。
  • WITHHASH: ハッシュ値を表示します。

COUNT <count>

項目数を制限するには COUNT オプションを使用します。

BYBOX で検索する場合

Example: FROMMEMBER, BYBOX

コマンド>GEOSEARCH map FROMMEMBER seoul BYBOX 200 200 km
結果> 1) "incheon"
2) "seoul"
コマンド>GEOSEARCH map FROMMEMBER seoul BYBOX 200 200 km asc withdist
結果> 1) 1) "seoul"
    2) "0.0000"
2) 1) "incheon"
    2) "27.0112"

FROMLONLAT で検索する場合

Example: FROMLONLAT

コマンド>GEOSEARCH map FROMLONLAT 127 38 BYRADIUS 200 km
結果> 1) "incheon"
2) "seoul"
3) "daejeon"
コマンド>GEOSEARCH map FROMLONLAT 127 38 BYRADIUS 200 km asc withdist
結果> 1) 1) "seoul"
    2) "48.2515"
2) 1) "incheon"
    2) "65.8043"
3) 1) "daejeon"
    2) "186.6152"
コマンド>GEOSEARCH map FROMLONLAT 127 38 BYBOX 200 200 km
結果> 1) "incheon"
2) "seoul"
コマンド>GEOSEARCH map FROMLONLAT 127 38 BYBOX 200 200 km asc withdist
結果> 1) 1) "seoul"
    2) "48.2515"
2) 1) "incheon"
    2) "65.8043"

構文

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]

  • このコマンドは version 6.2.0 から使用できます。
  • 時間計算量は O(N+log(M)) です。

<< GEOHASH GEOSEARCH GEOSEARCHSTORE >>

Email 返事がかかってなれば、メールでお知らせします。