地理情報 − 単純地物アクセス − SQLオプション(要約)

ISO/CD 19125-1(1999年11月29日)


適用範囲

本国際規格は単純な地空間地物の集まりの記憶、検索、問い合わせ、更新をODBC APIを通して支援するSQLスキーマを規定し、地物テーブル実装のための体系を制定し、体系内で使用する用語を定義したものである。
そして、ジオメトリのためのSQLタイプの名称と幾何的定義ならびにSQL関数の名称、署名、幾何的定義の標準化を行っている。
 

用語と定義

属性(Attribute)
エンティティの幾何、位相、主題や他の性質を記述する特性。
地物(Feature)
実世界の現象の抽出概念。
単純地物(Simple Feature)
頂点間の内挿を持ち空間的非空間的属性を備えた二次元幾何に限定された地物。

体系

本国際規格ではSQLスキーマの対象となる単純空間地物の幾何学的なオブジェクト・モデルについて説明し、それを参照する場合のメソッドについて、各構成要素毎に述べている。
オブジェクトモデルの基本となるGeometryクラスは、Point、Curve、Surface、Geometry Collectionをサブクラスとして持っており、その概要は次図に示すとおりである。

ジオメトリの各構成要素毎の説明ならびにメソッドは次のとおりである。
 

ジオメトリの各構成要素の説明とそのメソッド

 
 
説明
メソッド
1.Geometry 1. 幾何に関する基本的メソッド
Geometryの最小矩形、バイナリ表現、テキスト表現、座標系等
2. 幾何的オブジェクト間の空間関係をテストするためのメソッド
(イコール、文書、包含、重なり等)
3. 空間解析を行うメソッド
距離、バッファリング、凹凸、交差、和、差、等
2.Geometry Collection 1つ以上の図形の集まりであるGeometry X,Y
3.Point 0次元の図形
座標空間の一つの場所を表わす
4.Multi Point 0次元のGeometry Collection
5.Curve 一連のポイントとして記憶される1次元の幾何オブジェクト 長さ、スタートポイント、エンドポイント、カーブが閉じているか否か等
6.Line String
  Line
  Linear Ring
点間が直線的に保管されたカーブ
2つのポイントからなるLine String
閉じて単純なLine String
Line Stringのポイント数、指定されたポイント
7.Multi Curve Curveを要素とした1次元のGeometry Collection 長さ、閉じているか否か
8.Multi Line String 要素がLine StringであるMulti Curve
9.Surface 2次元のジオメトリ・オブジェクト 面積、重心、Surface上にあるポイント
10.Polygon 1つの外部境界と0またはそれ以上の内部境界によって定義される平面なSurface 外部Ringのラインストリング、内部Ring数、N番目の内部Ringのラインストリング
11.Multi Surface 要素がSurfaceの2次元のGeometry Collection 面積、重心、Multi Surface上にあるポイント
12.Multi Polygon 要素がPolygonであるMulti Surface

地物テーブルのSQL実装

地物テーブルのSQL実装はSQL92とジオメトリタイプを有するSQL92で実装される。
 

1 SQL92で実装する場合

SQL92での実装に係る地物テーブル、ジオメトリ、空間参照系情報、メタデータ等のテーブルの格納に対するスキーマの定義は以下の通りである。
a)地物テーブル
 地物データが格納されているが、幾何属性は各ジオメトリを参照する外部キーとして定義される。
b)ジオメトリ(テーブル)
 実際の幾何情報が格納されているテーブルで、データが正規化表現か、Well-known Binary表現かを定義する。
c)空間参照系情報
 座標系情報を定義する。
d)メタデータ
 地物テーブル、ジオメトリ(テーブル)を参照する外部キーを定義する。
 

2 ジオメトリタイプを有するSQL92で実装する場合

 ジオメトリタイプを有するSQL92で実装に係る地物テーブル、空間参照系情報、メタデータ等のテーブルの格納に対するスキーマの定義は以下に述べる通りである。
a)地物テーブル
 地物データならびに地物のジオメトリ属性が格納される。
b)空間参照系情報
 座標系情報を定義する。
c)メタデータ
 地物テーブル、ジオメトリ(テーブル)を参照する外部キーを定義する。
 

各構成要素の具体的仕様

 ここではSQLで述べた実装のための具体的構築等について述べる。
 SQL92で実装する場合とジオメトリタイプを有するSQL92で実装する場合の2つの実装環境にわけて述べる。
 

1 SQL92で実装する場合

 各テーブルの具体的構築文とそのフィールドの説明を行っている。対象となるテーブルは、1.空間参照系情報、2.メタデータ、3.地物テーブル、4.ジオメトリテーブル、の各々である。
 

2 ジオメトリタイプを有するSQL92で実装する場合

2.1 Create対象テーブル

 各テーブルの具体的Create文とそのフィールドの説明を行っている。
 対象となるテーブルは、1.地物テーブル、2.空間参照系情報、3.メタデータ、の各々である。

2.2 ジオメトリの表現方法と構築のためのSQL関数

 SQL言語はSQL Geometry Typeのセット(Geometry, Point, Curve, Line String, Surface, Polygon, Geometry Collection, Multi Curve, Multi Line String, Multi Surface, Multi Polygon, Multi Point)のサブセットをサポートする。
 Geometryの表現方法はテキストとバイナリーの2つの方法があり、その各々の構築に係るSQL関数を次のように定義する。
 
Well-known Text表現で与えられるGeometryを構築するためのSQL関数 Geom From Text, Point From Text, Line From Text, Poly From Text, M Point From Text, M Line From Text, M Poly From Text, Geom Coll From Text
Well-known Binary表現で与えられるGeometryを構築するためのSQL関数 Geom From WKB, Point From WKB, Line From WKB, Poly From WKB, M Point From WKB, M Line From WKB, M Poly From WKB, Geom Coll From WKB

2.3 Geometry Typeの各サブセットのSQL関数

 Geometry Typeの各サブセットのSQL関数は次のように定義されている。
 
ジオメトリのサブセット SQL関数
(1) Point X,Y
(2) Curve Start Point, End Point, Is Closed, Is Ring, Length
(3) Line String Numpoints, Point N
(4) Surface Centroid, Point On Surface, Area
(5) Polygon Exterior Ring, Num Interior Ring, Interior Ring N
(6) Geom Collection Num Geometries, Geometry N
(7) Multi Curve Is Closed, Length
(8) Multi Surface Centroid, Point On Surface Area

2.4 空間関係のSQL関数

 Equals, Disjoint, Touches, Within, Overlaps, Crosses, Intersects, Contains, Relate
 

2.5 距離関係のSQL関数

 Distance
 

2.6 空間演算のSQL関数

 Intersection, Difference, Union, SymDifference, Buffer, ConvexHull
 (なお、各SQL関数の引数を含む詳細な説明は本文を参照のこと)
 
 

[ もどる ]