空間データの空間参照システム (Spatial Reference System, SRS) は、座標に基づく地理的位置システムです。OceanBase データベースの現在のバージョンでは、システムがデフォルトでサポートする SRS のみが対応しています。
空間参照システムの種類
空間参照システム (SRS) は、主に以下のカテゴリに分類されます:
- 地理 SRS:地球楕円体を基盤とし、経度と緯度を座標として使用します。通常は角度(度など)で表され、実際の地理的位置(GPS の経度・緯度など)を記述するのに適しています。例えば、一般的に使用される WGS 84 (SRID=4326) が該当します。
- 投影 SRS:楕円体上の地理座標を平面に投影し、デカルト座標系を採用して長さ単位(メートル、フィートなど)を使用します。平面地図の表示や空間分析でよく見られます。
さらに、OceanBase は特殊な空間参照システムである SRID 0 もサポートしています。これは無限大で単位のない二次元平面(抽象的なデカルト座標系)を表します。この座標系には地理的意味がなく、地球表面のどの位置にも対応しません。通常はゲーム、シミュレーション、工学設計などの仮想または局所座標シナリオで使用されます。注意点として、SRID 0 は空間データのデフォルト SRID であり、使用時には実際の地理座標系との用途を慎重に区別する必要があります。
空間参照システム情報の取得
INFORMATION_SCHEMA.ST_SPATIAL_REFERENCE_SYSTEMS システムテーブルをクエリすることで、データベースに組み込まれた空間参照システム情報を取得できます。例えば、SRID が 4326 (WGS 84) の定義は以下のとおりです:
obclient> SELECT * FROM INFORMATION_SCHEMA.ST_SPATIAL_REFERENCE_SYSTEMS
WHERE SRS_ID = 4326\G
*************************** 1. row ***************************
SRS_NAME: WGS 84
SRS_ID: 4326
ORGANIZATION: EPSG
ORGANIZATION_COORDSYS_ID: 4326
DEFINITION: GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.017453292519943278,AUTHORITY["EPSG","9122"]],AXIS["Lat",NORTH],AXIS["Lon",EAST],AUTHORITY["EPSG","4326"]]
DESCRIPTION: NULL
1 row in set
上記の例は、GPS システムで広く使用されている SRS を示しています。SRS_NAME は WGS 84、SRS_ID は 4326 です。DEFINITION フィールドは WKT (Well-Known Text) 形式で、SRS の詳細な構造を記述しています。WKT は EBNF (拡張バーコス・ノール形式) に基づいて定義された標準的なテキスト表現方法であり、幾何データの格納だけでなく、GIS シナリオにおける SRS 説明にも適しています。
以下の二点に注意してください:
SRS_IDの数値は、空間データの SRID フィールドや空間関数内の関連パラメータとして直接使用できます。- 空間演算を行う際、演算に参加するすべての幾何オブジェクトは同じ SRID を持っている必要があります。そうでない場合、エラーが発生します。
SRID 選択ガイド
空間データを使用する際、正しい SRID (空間参照システム識別子) を設定することは、計算結果の正確性を確保するために非常に重要です。データタイプに応じて選択してください。
** SRID=4326 の使用を推奨します。** ほとんどの地理アプリケーションでは SRID=4326 を使用すべきです。SRID=4326 は、正確な距離、面積、バッファの計算をサポートし、国際標準に準拠しているため、他の GIS システムとの統合が容易です。以下のシナリオに適しています:
- GPS 座標(経度・緯度)
- スマートフォンの位置情報、Map API(高徳、Google Maps、百度地图など)が返す座標
- 都市、道路、POI などの地理情報
** SRID=0 の使用は慎重に行ってください。** SRID=0 は「座標系なし」を表し、すべての計算は純粋な数学的平面として処理され、結果には地理的意味がありません。
警告
実際の経度・緯度データを SRID=0 に設定しないでください。そうすると、距離、面積などの分析結果に重大な誤差が生じます。
SRID=0 は、データが実際の地球の位置を表していないシナリオにのみ適用されます。例えば:
- ゲームのマップや仮想シーンの座標
- CAD工程図や建築平面図などの局所座標系
- 抽象的なチャート、フローチャート、またはテスト用のシミュレーションデータ
さらに、地理情報クエリにおいて、SRID=0 は境界のない平面デカルト座標系と見なされるため、データベースは SRID=4326(WGS 84)の場合のように、緯度・経度範囲を用いた事前定義された細かいメッシュ分割を行うことができません。この空間インデックスの解像度の欠如により、SRID=0 のインデックスフィルタリング効率が低下し(False Positiveが過剰に発生する)、高並行性や大規模データのシナリオでは、正しい空間参照系を設定した SRID=4326 データに比べて、クエリ性能が著しく低下します。