Well-known Text (WKT)とは
Well-known Text(WKT)は、ベクタ形式の
幾何学オブジェクトをテキスト形式で表現するための
マークアップ言語です。この言語は、地理空間データを異なるシステム間で交換する際に、その
幾何学的形状を正確に伝えるために利用されます。WKTは、点をはじめ、線、
多角形、
曲線、
多面体、
TIN(不規則三角形網)など、多様なジオメトリオブジェクトを表現できます。これらのオブジェクトは、
2次元(x, y)、
3次元(x, y, z)、またはm値(線形参照に使用)を含む
2次元(x, y, m)といった異なる座標系で定義可能です。
ジオメトリオブジェクト
WKTで表現できるジオメトリオブジェクトは、以下の18種類です。
- - 点 (POINT):単一の座標で表現される位置。
- - 線分 (LINESTRING):複数の点を結ぶ線。
- - 多角形 (POLYGON):複数の線分で囲まれた面。
- - 曲線 (CURVE):円弧やスプラインなどの曲線。
- - 多面体 (POLYHEDRALSURFACE):複数の面で構成される3次元形状。
- - TIN (TRIANGLE):不規則な三角形の集合体。
座標は、
2次元(x, y)、
3次元(x, y, z)、またはm値を含む
2次元(x, y, m)で表現され、座標が空の場合は`EMPTY`と表示されます。
WKTの構造
WKTでは、各ジオメトリオブジェクトはキーワードと座標値で表現されます。例えば、`POINT(4 6)`は、(4, 6)という座標を持つ点を表します。複数のオブジェクトをまとめて表現する場合は、`GEOMETRYCOLLECTION`を使用します。以下にWKTの例をいくつか示します。
- - `GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))`:点と線分の集合
- - `POINT ZM (1 1 5 60)`:Z値とM値を持つ点
- - `POINT M (1 1 80)`:M値を持つ点
- - `POINT EMPTY`:空の点
- - `MULTIPOLYGON EMPTY`:空の多角形
- - `CIRCULARSTRING(1 5, 6 2, 7 3)`:円弧
- - `COMPOUNDCURVE(CIRCULARSTRING(0 0,1 1,1 0),(1 0,0 1))`:円弧と線分で構成される曲線
- - `CURVEPOLYGON(CIRCULARSTRING(-2 0,-1 -1,0 0,1 -1,2 0,0 2,-2 0),(-1 0,0 0.5,1 0,0 1,-1 0))`:円弧と線分で構成される面
- - `MULTICURVE((5 5,3 5,3 3,0 3),CIRCULARSTRING(0 0,2 1,2 2))`:複数の曲線
- - `TRIANGLE((0 0 0,0 1 0,1 1 0,0 0 0))`:三角形
- - `TIN (((0 0 0, 0 0 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 1 0, 0 0 0)))`:TINデータ
- - `POLYHEDRALSURFACE Z ( ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 0 1 0, 0 1 1, 0 0 1, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), ((1 1 1, 1 0 1, 0 0 1, 0 1 1, 1 1 1)), ((1 1 1, 1 0 1, 1 0 0, 1 1 0, 1 1 1)), ((1 1 1, 1 1 0, 0 1 0, 0 1 1, 1 1 1)) )`:多面体
Well-known Binary (WKB)
WKBは、WKTをバイナリ形式で表現したものです。これは、データの保存や転送において、テキスト形式よりも効率的に処理できるため、データベースシステムでよく利用されます。WKBでは、データの
エンディアン(バイト順)を示す1バイトと、ジオメトリ型を示す4バイトの
整数、そして座標値が格納されます。例えば、`POINT(2.0 4.0)`は、16進数で `000000000140000000000000004010000000000000` と表現されます。
座標参照系
WKTは、座標参照系(CRS)も記述できます。CRSは、地球上の位置を座標で表すためのシステムであり、地理座標系、投影座標系、鉛直座標系などがあります。WKTは、CRSの定義を記述することで、座標の解釈を統一し、異なるシステム間でのデータの整合性を保ちます。
WKT1とWKT2
WKTの標準には、WKT1とWKT2の2つの主要なバージョンがあります。WKT1は初期の標準で、WKT2はWKT1の拡張版であり、より多くの種類の座標参照系や変換をサポートしています。WKT2はISO 19162:2015としても公表されており、WKT1との後方互換性も考慮されています。
変換
WKT形式は、異なる空間参照システム間の座標変換に使用する変換手法やパラメータの記述を明示できます。これにより、ある座標系で表現されたデータを別の座標系に変換することが可能です。
サポート提供RDBMSエンジン
WKT/WKBは、以下の主要なRDBMSエンジンでサポートされています。
サポート提供API
また、以下のAPIやライブラリでもWKT/WKBがサポートされています。
関連項目
まとめ
WKTは、地理空間データをテキスト形式で表現するための強力なツールであり、WKBはそのバイナリ形式です。これらの形式は、データの交換やデータベースでの保存、異なるシステム間でのデータの整合性を保つために広く利用されています。WKT/WKBの理解は、地理情報システム(GIS)や関連分野におけるデータ処理において不可欠です。