幾何学のよく知られたテキスト表現
ウェルノウンテキスト(WKT )は、ベクタージオメトリオブジェクトを表すためのテキストマークアップ言語です。ウェルノウンバイナリ(WKB )と呼ばれるバイナリ形式は、同じ情報を、コンピュータ処理に便利なよりコンパクトな形式で転送・保存するために使用されますが、人間には判読できません。この形式は、もともとOpen Geospatial Consortium (OGC)によって定義され、 Simple Feature Accessで説明されていました。[1] 現在の標準定義はISO/IEC 13249-3:2016規格です。[2]
幾何学的オブジェクト
WKT は次の異なる幾何学的オブジェクトを表すことができます。
ジオメトリの座標は、2D ( x , y )、3D ( x , y , z )、4D ( x , y , z , m ) (線形参照システムの一部であるm値を含む) 、または2D (x , y , m )のいずれかです。3次元ジオメトリはジオメトリタイプの後に「Z」が付き、線形参照システムを持つジオメトリはジオメトリタイプの後に「M」が付きます。座標を含まない空のジオメトリは、タイプ名の後に記号を使用して指定できます。EMPTY
WKTジオメトリはOGC仕様全体で使用されており、これらの仕様を実装したアプリケーションにも存在します。例えば、PostGISには、ジオメトリをWKT表現に変換したり、WKT表現を人間が読める形式に変換したりする関数が含まれています。
OGC標準の定義では、ポリゴンは位相的に閉じている必要があります。また、ポリゴンの外側の線状リングが反時計回りに定義されている場合、その線状リングは「上」から見たものと見なされます。内側の線状リングは、外側のリングとは逆の方向、つまり時計回りに定義する必要があります。[3]
| タイプ | 例 | |
|---|---|---|
| ポイント | POINT (30 10) | |
| ラインストリング | LINESTRING (30 10, 10 30, 40 40) | |
| ポリゴン | POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10)) | |
POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10), | ||
| タイプ | 例 | |
|---|---|---|
| マルチポイント | MULTIPOINT ((10 40), (40 30), (20 20), (30 10)) | |
MULTIPOINT (10 40, 40 30, 20 20, 30 10) | ||
| マルチラインストリング | MULTILINESTRING ((10 10, 20 20, 10 40), | |
| マルチポリゴン | MULTIPOLYGON (((30 20, 45 40, 10 40, 30 20)), | |
MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)), | ||
| ジオメトリコレクション | GEOMETRYCOLLECTION (POINT (40 10), | |
以下に、ジオメトリ WKT 文字列のその他の例をいくつか示します (注: 以下の各項目は個別のジオメトリです)。
ジオメトリコレクション(点(4 6),線列(4 6,7 10))ポイントZM(1 1 5 60)ポイントM(1 1 80)ポイント・エンプティマルチポリゴンが空三角形((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)))多面体表面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)) )よく知られているバイナリ
既知のバイナリ (WKB) 表現は通常、16 進文字列で表示されます。
0x00: ビッグエンディアン0x01: リトルエンディアン
次の 4 バイトは、以下に示すように、ジオメトリ タイプの32 ビットの符号なし整数です。
| タイプ | 2D | Z | M | ZM |
|---|---|---|---|---|
| 幾何学 | 0 | 1000 | 2000 | 3000 |
| ポイント | 1 | 1001 | 2001 | 3001 |
| ラインストリング | 2 | 1002 | 2002 | 3002 |
| ポリゴン | 3 | 1003 | 2003 | 3003 |
| マルチポイント | 4 | 1004 | 2004 | 3004 |
| マルチラインストリング | 5 | 1005 | 2005 | 3005 |
| マルチポリゴン | 6 | 1006 | 2006 | 3006 |
| ジオメトリコレクション | 7 | 1007 | 2007 | 3007 |
| 円形文字列 | 8 | 1008 | 2008 | 3008 |
| 複合曲線 | 9 | 1009 | 2009 | 3009 |
| 曲線ポリゴン | 10 | 1010 | 2010 | 3010 |
| マルチカーブ | 11 | 1011 | 2011 | 3011 |
| マルチサーフェス | 12 | 1012 | 2012 | 3012 |
| 曲線 | 13 | 1013 | 2013 | 3013 |
| 表面 | 14 | 1014 | 2014 | 3014 |
| 多面体表面 | 15 | 1015 | 2015 | 3015 |
| 錫 | 16 | 1016 | 2016 | 3016 |
| 三角形 | 17 | 1017 | 2017 | 3017 |
| 丸 | 18 | 1018 | 2018 | 3018 |
| 測地線文字列 | 19 | 1019 | 2019 | 3019 |
| 楕円曲線 | 20 | 1020 | 2020 | 3020 |
| NurbsCurve | 21 | 1021 | 2021 | 3021 |
| クロソイド | 22 | 1022 | 2022 | 3022 |
| スパイラルカーブ | 23 | 1023 | 2023 | 3023 |
| 複合表面 | 24 | 1024 | 2024 | 3024 |
| ブレップソリッド | | 1025 | | |
| アフィン配置 | 102 | 1102 | | |
各データ型には、ポイントの数や線形リングの数などの固有のデータ構造があり、それに続いて64 ビットの倍精度数値の座標が続きます。
たとえば、ジオメトリPOINT(2.0 4.0)は次のように表されます: 、ここで:000000000140000000000000004010000000000000
- 1バイト整数
00または0: ビッグエンディアン - 4バイト整数
00000001または1: POINT (2D) - 8バイト浮動小数点
4000000000000000数または2.0: x座標 - 8バイト浮動小数点
4010000000000000数または4.0: y座標
フォーマットのバリエーション
- EWKTとEWKB –拡張 Well-Known Text/Binary
- PostGIS固有のフォーマットで、空間参照系識別子(SRID)と最大4つの座標値(XYZM)が含まれます。[ 4 ] [5]例えば、WGS 84参照座標系を用いて経度/緯度座標を特定できます。また、元のWKT内で名前が付けられている(ただし完全には定義されていない)要素であるCircularString、CompoundCurve、CurvePolygon、CompoundSurfaceもサポートしています。[6]
SRID=4326;POINT(-44.3 60.1) - AGF テキスト–オートデスクジオメトリ フォーマット
- OGCの標準(当時)を拡張したもので、曲線要素を含めることができます。特にMapGuideでよく使用されています。[7]
参照
参考文献
- ^ Herring, John R.編 (2011-05-28)、OpenGIS®実装標準地理情報 – シンプルフィーチャアクセス – パート1:共通アーキテクチャ、Open Geospatial Consortium 、2019年1月28日取得
- ^ 情報技術 – データベース言語 – SQL マルチメディアおよびアプリケーションパッケージ – パート3: 空間(第5版)、ISO、2016年1月15日、2019年1月28日取得
- ^ 地理情報については、OGC実装仕様書「シンプルフィーチャアクセス」のセクション6.1.11.1を参照してください。http://www.opengeospatial.org/standards/sfa
- ^ “Postgis/Postgis”. GitHub . 2021年10月6日.
- ^ “ST_GeomFromEWKT” . 2022年11月25日閲覧。
- ^ 「第4章 PostGISの使用:データ管理とクエリ」. postgis.net . 2021年7月30日閲覧。
- ^ 「MapGuide APIリファレンス: AGFテキスト」 。 2023年9月14日閲覧。
外部リンク
- シンプルな機能アクセス仕様
- ISO 空間標準(有料)
- WKTのBNF表記(2023年1月3日、Wayback Machineにアーカイブ)
- WKTのEBNF表記
- ジオメトリオブジェクト表現間のオンライン変換 2019年4月26日アーカイブ、Wayback Machine