ここでは、OpenGIS 標準で定義された Well-Known Text および Well-Known Binary 関数を使用するか MySQL 固有の関数を使用して空間値を作成する方法について説明します。
MySQL には、Well-Known Text 表現を引数に取り、空間参照システム識別子 (SRID) も必要に応じて指定可能な関数がいくつか用意されています。これらは対応する幾何図形を返します。
GeomFromText()
では、任意の幾何型の WKT を第 1
引数に指定できます。実装には、各幾何型の幾何値を構築するための型固有の構築関数も用意されています。
GeomCollFromText(
、wkt
[,srid
])GeometryCollectionFromText(
wkt
[,srid
])
WKT 表現と SRID に基づいて
GEOMETRYCOLLECTION
値を構築します。
GeomFromText(
、wkt
[,srid
])GeometryFromText(
wkt
[,srid
])
WKT 表現と SRID に基づいて任意の型の幾何値を構築します。
LineFromText(
、wkt
[,srid
])LineStringFromText(
wkt
[,srid
])
WKT 表現と SRID に基づいて
LINESTRING
値を構築します。
MLineFromText(
、wkt
[,srid
])MultiLineStringFromText(
wkt
[,srid
])
WKT 表現と SRID に基づいて
MULTILINESTRING
値を構築します。
MPointFromText(
、wkt
[,srid
])MultiPointFromText(
wkt
[,srid
])
WKT 表現と SRID に基づいて
MULTIPOINT
値を構築します。
MPolyFromText(
、wkt
[,srid
])MultiPolygonFromText(
wkt
[,srid
])
WKT 表現と SRID に基づいて
MULTIPOLYGON
値を構築します。
WKT 表現と SRID に基づいて
POINT
値を構築します。
PolyFromText(
、wkt
[,srid
])PolygonFromText(
wkt
[,srid
])
WKT 表現と SRID に基づいて
POLYGON
値を構築します。
OpenGIS
の仕様書には次のオプション関数も定義されていますが、これらは
MySQL
では実装されていません。これらの関数は、リングつまり閉じた
LineString
値のコレクションの WKT
表現に基づいて、Polygon
または MultiPolygon
値を構築します。これらの値は交差していてもかまいません。
MySQL には、Well-Known Binary 表現が格納された
BLOB
を引数に取り、空間参照システム識別子
(SRID)
も必要に応じて指定可能な関数がいくつか用意されています。これらは対応する幾何図形を返します。
MySQL 5.1.35 では、項7.13.4.2.3. 「MySQL 固有関数を使用した幾何値の作成」 の関数の戻り値に対して MySQL 5.1.35 で施された変更との互換性を維持するため、これらの関数に幾何オブジェクトも指定できるようになりました。したがって、それらの関数は引き続き、この節の関数の第 1 引数として使用できます。
GeomCollFromWKB(
、wkb
[,srid
])GeometryCollectionFromWKB(
wkb
[,srid
])
WKB 表現と SRID に基づいて
GEOMETRYCOLLECTION
値を構築します。
GeomFromWKB(
、wkb
[,srid
])GeometryFromWKB(
wkb
[,srid
])
WKB 表現と SRID に基づいて任意の型の幾何値を構築します。
LineFromWKB(
、wkb
[,srid
])LineStringFromWKB(
wkb
[,srid
])
WKB 表現と SRID に基づいて
LINESTRING
値を構築します。
MLineFromWKB(
、wkb
[,srid
])MultiLineStringFromWKB(
wkb
[,srid
])
WKB 表現と SRID に基づいて
MULTILINESTRING
値を構築します。
MPointFromWKB(
、wkb
[,srid
])MultiPointFromWKB(
wkb
[,srid
])
WKB 表現と SRID に基づいて
MULTIPOINT
値を構築します。
MPolyFromWKB(
、wkb
[,srid
])MultiPolygonFromWKB(
wkb
[,srid
])
WKB 表現と SRID に基づいて
MULTIPOLYGON
値を構築します。
WKB 表現と SRID に基づいて
POINT
値を構築します。
PolyFromWKB(
、wkb
[,srid
])PolygonFromWKB(
wkb
[,srid
])
WKB 表現と SRID に基づいて
POLYGON
値を構築します。
OpenGIS の仕様書には、リングつまり閉じた
LineString
値のコレクションの WKB
表現に基づいて、Polygon
または MultiPolygon
値を構築するためのオプション関数も規定されています。これらの値は交差していてもかまいません。MySQL
では次の関数は実装されていません。
MySQL には、幾何値を作成するための一連の有用な非標準関数が用意されています。ここで説明する関数は、OpenGIS 仕様に対する MySQL の拡張です。
MySQL 5.1.35 では、これらの関数は、引数の WKB
値または幾何オブジェクトから幾何オブジェクトを生成します。適切でない
WKB
や適切でないオブジェクト型の幾何表現を含む引数が
1 つでも存在していると、戻り値は
NULL
になります。
MySQL 5.1.35
より前のバージョンでは、これらの関数は、WKB
引数の SRID は含まないが幾何値の WKB
表現は含むような
BLOB
値を生成します。これらの関数から返された
WKB
値を幾何図形の引数に変換するには、GeomFromWKB()
関数ファミリの関数の第 1
引数にその値を指定します。
たとえば MySQL 5.1.35
では次のように、Point()
からの戻り値の幾何図形を
Point
カラムに直接挿入できます。
INSERT INTO t1 (pt_col) VALUES(Point(1,2));
MySQL 5.1.35
より前のバージョンでは次のように、戻り値の
WKB を Point
に変換してから挿入を行います。
INSERT INTO t1 (pt_col) VALUES(GeomFromWKB(Point(1,2)));
GeometryCollection
を構築します。
いくつかの Point
または WKB Point
引数から
LineString
値を構築します。引数が 2
個未満の場合、戻り値は
NULL
になります。
LineString
または
WKB LineString
引数に基づいて
MultiLineString
値を構築します。
Point
または WKB
Point
引数に基づいて
MultiPoint
値を構築します。
一連の Polygon
または WKB Polygon
引数から
MultiPolygon
値を構築します。
座標に基づいて
Point
を構築します。
いくつかの
LineString
または
WKB LineString
引数から Polygon
値を構築します。LinearRing
(つまり単純で閉じた
LineString
)
を表していない引数が存在する場合、戻り値は
NULL
になります。