TairGISは、Rツリーインデックスを使用し、地理情報システム (GIS) に関連するAPIをサポートするデータ構造です。 GeoHashおよびRedis Sorted Setを使用してポイントをクエリできるネイティブのRedis GEOコマンドと比較して、TairGISはポイント、ラインストリング、およびポリゴンをクエリできるため、より多くの機能を提供します。
特徴
クエリとストレージにR-treeインデックスを使用します。
セットの共通部分のクエリを含む、ラインストリングおよびポリゴンのクエリをサポートします。
ネイティブRedisの
GEORADIUS
コマンドと同じ目的を果たすGIS.SEARCHコマンドを提供します。
モジュールはオープンソースです。 詳細については、『GitHub』をご参照ください。
ベストプラクティス
前提条件
Tair DRAMベースのインスタンスが作成されます。
最新のマイナーバージョンは、より多くの機能とより高い安定性を提供します。 インスタンスを最新のマイナーバージョンに更新することを推奨します。 詳細については、「インスタンスのマイナーバージョンの更新」をご参照ください。 インスタンスがクラスターまたは読み書き分離インスタンスの場合、インスタンスのプロキシノードを最新のマイナーバージョンに更新することを推奨します。 これにより、すべてのコマンドを期待どおりに実行できます。
使用上の注意
管理するTairGISデータは、Tairインスタンスに保存されます。
サポートされるコマンド
表 1. TairGISコマンド
コマンド | 構文 | 説明 |
| 1つ以上のポリゴンをエリアに追加します。 ポリゴンは、周知のテキスト (WKT) で記述される。 WKTは、マップ上のベクトル幾何オブジェクト、空間オブジェクトの空間参照システム、および空間参照システム間の変換を表すためのテキストマークアップ言語です。 | |
| 領域内のポリゴンのWKT表現を取得します。 | |
| 領域内のすべてのポリゴンの名前とWKT表現を取得します。 WITHOUTWKTパラメーターを指定した場合、ポリゴンの名前のみが返されます。 | |
| ポイント、ラインストリング、またはポリゴンが特定の領域内のポリゴンにあるかどうかを確認します。 はいの場合、このコマンドは、領域内の点、線列、またはポリゴンを含むポリゴンの数とWKT表現を返します。 | |
| 領域が点、線列、またはポリゴン内にあるかどうかをチェックします。 はいの場合、このコマンドは、ポイント、ラインストリング、またはポリゴン内にある領域内のポリゴンの番号とWKT表現を返します。 | |
| ポイント、ラインストリング、またはポリゴンが特定の領域内のポリゴンと交差するかどうかを確認します。 はいの場合、このコマンドは、点、線列、またはポリゴンと交差する領域内のポリゴンの数とWKT表現を返します。 | |
| 特定の経度と緯度の位置の半径内にあるエリア内のポイントを照会します。 | |
| 特定のポリゴンを領域から削除します。 | |
| 1つ以上のTairGISキーを削除します。 これはネイティブのRedisコマンドです。 |
このトピックで使用されるコマンド構文の規則を次に示します。
Uppercase keyword
: commandキーワードを示します。イタリックテキスト
: 変数を示します。[options]
: 囲まれたパラメータがオプションであることを示します。 括弧で囲まれていないパラメータを指定する必要があります。A | B
: 縦棒 (|) で区切られたパラメータが相互に排他的であることを示します。 指定できるパラメーターは1つだけです。...
: このシンボルの前にあるパラメーターを繰り返し指定できることを示します。
GIS.ADD
項目 | 説明 |
項目 | 説明 |
構文 |
|
時間の複雑さ | O (ログn) |
コマンド説明 | 1つ以上のポリゴンをエリアに追加します。 ポリゴンは、周知のテキスト (WKT) で記述される。 WKTは、マップ上のベクトル幾何オブジェクト、空間オブジェクトの空間参照システム、および空間参照システム間の変換を表すためのテキストマークアップ言語です。 |
パラメーター |
|
Output |
|
例: | サンプルコマンド:
サンプル出力:
|
GIS.GET
項目 | 説明 |
項目 | 説明 |
構文 |
|
時間の複雑さ | O(1) |
コマンド説明 | 領域内のポリゴンのWKT表現を取得します。 |
パラメーター |
|
Output |
|
例: |
サンプルコマンド:
サンプル出力:
|
GIS.GETALL
項目 | 説明 |
項目 | 説明 |
構文 |
|
時間の複雑さ | O(n) |
コマンド説明 | 領域内のすべてのポリゴンの名前とWKT表現を取得します。 WITHOUTWKTパラメーターを指定した場合、ポリゴンの名前のみが返されます。 |
パラメーター |
|
Output |
|
例: |
サンプルコマンド:
サンプル出力:
|
GIS.CONTAINS
項目 | 説明 |
項目 | 説明 |
構文 |
|
時間の複雑さ |
|
コマンド説明 | ポイント、ラインストリング、またはポリゴンが特定の領域内のポリゴンにあるかどうかを確認します。 はいの場合、このコマンドは、領域内の点、線列、またはポリゴンを含むポリゴンの数とWKT表現を返します。 |
パラメーター |
|
Output |
|
例: |
サンプルコマンド:
サンプル出力:
|
GIS.WITHIN
項目 | 説明 |
項目 | 説明 |
構文 |
|
時間の複雑さ |
|
コマンド説明 | 領域が点、線列、またはポリゴン内にあるかどうかをチェックします。 はいの場合、このコマンドは、ポイント、ラインストリング、またはポリゴン内にある領域内のポリゴンの番号とWKT表現を返します。 |
パラメーター |
|
Output |
|
例: |
サンプルコマンド:
サンプル出力:
|
GIS.INTERSECTS
項目 | 説明 |
項目 | 説明 |
構文 |
|
時間の複雑さ |
|
コマンド説明 | ポイント、ラインストリング、またはポリゴンが特定の領域内のポリゴンと交差するかどうかを確認します。 はいの場合、このコマンドは、点、線列、またはポリゴンと交差する領域内のポリゴンの数とWKT表現を返します。 |
パラメーター |
|
Output |
|
例: |
サンプルコマンド:
サンプル出力:
|
GIS.SEARCH
項目 | 説明 |
項目 | 説明 |
構文 |
|
時間の複雑さ |
|
コマンド説明 | 特定の経度と緯度の位置の半径内にあるエリア内のポイントを照会します。 |
パラメーター |
RADIUS、MEMBER、およびGEOMパラメーターのいずれかのみを指定できます。 |
Output |
|
例: | 事前に サンプルコマンド:
サンプル出力:
|
GIS.DEL
項目 | 説明 |
項目 | 説明 |
構文 |
|
時間の複雑さ | O (ログn) |
コマンド説明 | 特定のポリゴンを領域から削除します。 |
パラメーター |
|
Output |
|
例: |
サンプルコマンド:
サンプル出力:
|