Well-known text

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

Well-known text(略称:WKT)は 、ベクタ形式幾何学オブジェクトを投影法 (地図)を基に変換し地図上に表現させるマークアップ言語である。 バイナリ形式で実装されているものはwell-known binary (WKB)であり、PostGISMicrosoft SQL ServerDB2等のデータベースでの保存に利用されている。

ジオメトリオブジェクト[編集]

点 (数学)線分多角形曲線多面体TINを含む計18種類が表現できる。

ジオメトリ上の座標は、2次元(x、y)・3次元(x、y、z)・4次元(x、y、z、m:m値は線形参照で用いる)・m値を含む2次元(x、y、m) で示される。 座標が空のジオメトリはEMPTY表示になる。

ジオメトリの仕様はOpen Geospatial Consortium (OGC) により策定されており、PostGIS等のアプリケーションにてOGC仕様に則しジオメトリ変換関数が実装されている。

OGC標準定義においてポリゴン外部の各頂点は反時計周りであり、内部の各頂点は全て時計回りである。[1]


Geometry primitives (2D)
Type 凡例
Point SFA Point.svg POINT (30 10)
LineString SFA LineString.svg LINESTRING (30 10, 10 30, 40 40)
Polygon SFA Polygon.svg POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))
SFA Polygon with hole.svg POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10),
(20 30, 35 35, 30 20, 20 30))
Multipart geometries (2D)
Type 凡例
MultiPoint SFA MultiPoint.svg MULTIPOINT ((10 40), (40 30), (20 20), (30 10))
MULTIPOINT (10 40, 40 30, 20 20, 30 10)
MultiLineString SFA MultiLineString.svg MULTILINESTRING ((10 10, 20 20, 10 40),
(40 40, 30 30, 40 20, 30 10))
MultiPolygon SFA MultiPolygon.svg MULTIPOLYGON (((30 20, 45 40, 10 40, 30 20)),
((15 5, 40 10, 10 20, 5 10, 15 5)))
SFA MultiPolygon with hole.svg MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),
((20 35, 10 30, 10 10, 30 5, 45 20, 20 35),
(30 20, 20 15, 20 25, 30 20)))

以下にWKTのジオメトリ文字列を示す。

GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))
POINT ZM (1 1 5 60)
POINT M (1 1 80)
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)))
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では十六進法の文字列で表す。 始めのバイト_(情報)はデータのエンディアンを示す。

  • 00 : ビッグエンディアン
  • 01 : リトルエンディアン

続くジオメトリ型整数は以下の通り。

Geometry types, and WKB integer codes
Type 2D Z M ZM
Geometry 0000 1000 2000 3000
Point 0001 1001 2001 3001
LineString 0002 1002 2002 3002
Polygon 0003 1003 2003 3003
MultiPoint 0004 1004 2004 3004
MultiLineString 0005 1005 2005 3005
MultiPolygon 0006 1006 2006 3006
GeometryCollection 0007 1007 2007 3007
CircularString 0008 1008 2008 3008
CompoundCurve 0009 1009 2009 3009
CurvePolygon 0010 1010 2010 3010
MultiCurve 0011 1011 2011 3011
MultiSurface 0012 1012 2012 3012
Curve 0013 1013 2013 3013
Surface 0014 1014 2014 3014
PolyhedralSurface 0015 1015 2015 3015
TIN 0016 1016 2016 3016
Triangle 0017 1017 2017 3017

各データ型は、倍精度浮動小数点(double)の座標を持つ、ポイントか線状のリングの数などの固有データ構造を有する。

例えば、ジオメトリのPOINT(2.0 4.0)は:000000000140000000000000004010000000000000

  • 1バイト整数:00または0:ビッグエンディアン
  • 4バイト整数:00000001または1:ポイント(2D)
  • 8バイト浮動小数点:4000000000000000または2.0:x座標
  • 8バイト浮動小数点:4010000000000000または4.0:y座標

で表される。

変換[編集]

WKT形式は異なる空間参照システム間の座標変換に使用する変換手法及びパラメータの記述を明示している。 下記に変換記述例を示す。

  1. PARAM_MT["Mercator_2SP", 
    
  2.     PARAMETER["semi_major",6370997.0], 
    
  3.     PARAMETER["semi_minor",6370997.0], 
    
  4.     PARAMETER["central_meridian",180.0], 
    
  5.     PARAMETER["false_easting",-500000.0], 
    
  6.     PARAMETER["false_northing",-1000000.0], 
    
  7.     PARAMETER["standard parallel 1",60.0]]
    
  8. PARAM_MT["Affine",
    
  9.     PARAMETER["num_row",3],
    
  10.     PARAMETER["num_col",3],
    
  11.     PARAMETER["elt_0_1",1],
    
  12.     PARAMETER["elt_0_2",2],
    
  13.     PARAMETER["elt 1 2",3]]
    

サポート提供RDBMSエンジン[編集]

  • PostgreSQL:PostGISモジュール2.0
  • Oracle Spatial9i, 10g, 11g
  • MySQLVer4.1以降[2]
  • DB2 LUW 9, 10:Spatial Extender
  • DB2 for z/OS 9, 10:Spatial Support
  • IBM Netezza:Netezza Spatial
  • Informix9,10,11:Spatial datablade module
  • Microsoft SQL Server 2008 / 2008 R2 / 2012 'Denali'
  • SpatiaLite
  • Teradata6.1、6.2、12、13(13から標準搭載、以前はアドイン提供)
  • Ingres:GeoSpatial
  • altibase 5.x
  • SQL Anywhere 12

サポート提供API[編集]

関連項目[編集]

脚注[編集]

  1. ^ See the OGC Implementation Specification for geographic information - Simple Feature Access, section 6.1.11.1. http://www.opengeospatial.org/standards/sfa
  2. ^ GIS and Spatial Extensions with MySQL

外部リンク[編集]