トップ地図システム基礎技術 > 空間オブジェクトの表現: OpenGIS WKT形式

空間オブジェクトの表現: OpenGIS WKT形式

OpenGIS WKT形式

空間オブジェクトの表現方法としては OpenGIS Consortium(OGC) の WKT(Well Known Text)形式がよく知られている。 PostgreSQL/PostGISデータベースから、空間オブジェクトデータをテキストファイルとしてエクスポートした場合、 この WKT形式となる。

空間オブジェクトのテキスト表現(WKT)の例は、次の通りである[1]。

点の X座標、Y座標 または 経度、緯度をペアとして、スペースで区切る。点座標間は 「,」で区切る。 ラインストリングとかポリゴンといったブロックは 「()」で囲む。ブロック同士は 「,」で区切る。 このような階層構造で表される。

折れ線が一つのときを LINESTRING、複数のときを MULTILINESTRING としているが、 POLYGON は多角形が一つのこともあれば、複数のこともある。

POLYGON で多角形が二つ以上のときは、それらは対等であるが、MULTIPOLYGON の場合は、 先頭のPOLYGON が outer polygon で、2番目以降は その outer polygon の内部に含まれる inner polygon を表す。 このとき、outer polygon が複数あってもよい。

上の例では、outer polygon が二つである。 最初の outer polygon は inner polygon が一つあるが、次は outer polygon だけで inner polygon を持たない。

OpenSteetMap[2] は Wikipedia の地図版にたとえられるものであるが、ここでの用語や表記は上とは異なる。 XML形式のデータ構造としては、relation は point、line、polygon、relation をメンバーとするので、 OGCよりも複雑な構造も許されるが、レンダリング上は Point、Line、Polygon、Multipolygon のみである。 Point は OGC の POINT、Line は OGC の LINESTRING、Multipolygon は OGC の MULTIPOLYGON で outer polygon が 一つに限られる。

レンダリング上は OGC の MULTILINESTRING は複数の Line とし、MULLTIPOINT は複数の Point とし、 OGC の outer polygon が複数の MULTIPOLYGON は複数の Multipolygon とすれば対応できる。

特に、広域森林など巨大な Multipolygon はレンダリングに時間がかかるため、小さく分割することが 推奨されている。

参考記事

[1] 第4章 PostGISを使う: データ管理とクエリ
[2] OpenStreetMap Japan | 自由な地図をみんなの手で/The Free Wiki World Map