MariaDBのLineFromText関数:WKT表記からLineStringオブジェクトを作成する方法


WKT 表記は、空間データを表すための標準的なテキスト形式です。 LineFromText 関数は、WKT 文字列を解釈し、対応する LineString オブジェクトを返します。

LineFromText 関数の構文

ST_LineFromText(wkt_text)

引数

  • wkt_text: WKT 表記の文字列

戻り値

  • LineString オブジェクト


SELECT ST_LineFromText('LINESTRING(1 2, 3 4, 5 6)');

このクエリは、次の LineString オブジェクトを返します。

LINESTRING(1 2, 3 4, 5 6)

LineFromText 関数の使用例

  • 空間データの可視化を行う
  • 空間データの分析を実行する
  • 地図上の道路や境界線などの線形フィーチャーを作成する
  • LineFromText 関数は、空の文字列または無効な WKT 文字列を受け取ると、エラーを返します。
  • WKT 文字列が正しくフォーマットされていることを確認する必要があります。
  • LineFromText 関数は、MariaDB 10.0.0 以降で使用できます。
  • LineFromText 関数は、ST_LineStringFromText 関数の別名です。


SELECT ST_LineFromText('LINESTRING(1 2, 3 4, 5 6)');
LINESTRING(1 2, 3 4, 5 6)

例 2: LineString オブジェクトを使用して地図上に線を表示する

CREATE TABLE lines (
  id INT PRIMARY KEY AUTO_INCREMENT,
  line_string LINESTRING
);

INSERT INTO lines (line_string)
VALUES (ST_LineFromText('LINESTRING(1 2, 3 4, 5 6)'));

SELECT ST_AsText(line_string) AS line_text
FROM lines;

このクエリは、次の出力を生成します。

LINESTRING(1 2, 3 4, 5 6)

例 3: LineString オブジェクトを使用して空間データの分析を実行する

CREATE TABLE lines (
  id INT PRIMARY KEY AUTO_INCREMENT,
  line_string LINESTRING
);

INSERT INTO lines (line_string)
VALUES (ST_LineFromText('LINESTRING(1 2, 3 4, 5 6)'));

SELECT ST_Length(line_string) AS line_length
FROM lines;
7.280000000000000
CREATE TABLE lines (
  id INT PRIMARY KEY AUTO_INCREMENT,
  line_string LINESTRING
);

INSERT INTO lines (line_string)
VALUES (ST_LineFromText('LINESTRING(1 2, 3 4, 5 6)'));

SELECT ST_AsText(line_string) AS line_text
FROM lines;

CREATE TABLE points (
  id INT PRIMARY KEY AUTO_INCREMENT,
  point POINT
);

INSERT INTO points (point)
VALUES (ST_PointFromText('POINT(1 2)'));

SELECT *
FROM lines, points;
LINESTRING(1 2, 3 4, 5 6)
POINT(1 2)


ST_GeomFromText 関数を使用する

ST_GeomFromText 関数 は、WKT 表記の文字列から Geometry オブジェクトを生成するために使用されます。 Geometry オブジェクトは、ポイント、ライン、ポリゴンなどの空間データを表すことができます。

LineFromText 関数の代わりに ST_GeomFromText 関数を使用するには、次のようにします。

SELECT ST_AsText(ST_GeomFromText('LINESTRING(1 2, 3 4, 5 6)')) AS line_text;
LINESTRING(1 2, 3 4, 5 6)

ST_GeomFromWKB 関数を使用する

ST_GeomFromWKB 関数 は、Well-Known Binary (WKB) 表記のバイナリデータから Geometry オブジェクトを生成するために使用されます。 WKB 表記は、空間データをバイナリ形式で表すための標準的な形式です。

LineFromText 関数の代わりに ST_GeomFromWKB 関数を使用するには、次のようにします。

SELECT ST_AsText(ST_GeomFromWKB(0x14000000000200000005000000010000000200000003000000040000000500000006000000)) AS line_text;
LINESTRING(1 2, 3 4, 5 6)

ST_PointFromText 関数と ST_MakeLine 関数を使用する

ST_PointFromText 関数 は、WKT 表記の文字列から Point オブジェクトを生成するために使用されます。 Point オブジェクトは、単一の点を表します。

ST_MakeLine 関数 は、Point オブジェクトのリストから LineString オブジェクトを生成するために使用されます。

LineFromText 関数の代わりに ST_PointFromText 関数と ST_MakeLine 関数を使用するには、次のようにします。

SELECT ST_AsText(ST_MakeLine(
  ST_PointFromText('POINT(1 2)'),
  ST_PointFromText('POINT(3 4)'),
  ST_PointFromText('POINT(5 6)')
)) AS line_text;
LINESTRING(1 2, 3 4, 5 6)