以下の内容はhttps://sakaik.hateblo.jp/entry/20260322/STX_MakeLine_funcより取得しました。


MySQL GIS拡張関数: STX_MakeLine()

自作の、Spatial(GIS)関連の関数をMySQLに追加するプラグインの関数をひとつひとつ動作確認しながら紹介するシリーズ。
https://sakaik.hateblo.jp/entry/20260215/mysql_spatial_functions_plugin

STX_Makeline(p1, p2) / STX_Makeline(multipoint)

 与えられた複数のポイント群からLINESTRINGを生成する関数です。

動作紹介

  • 2つのPOINTを与えてLINESTRINGにする例
mysql> SET @g1=ST_GeomFromText('POINT(1 1)');
mysql> SET @g2=ST_GeomFromText('POINT(2 3)');
mysql> SELECT ST_AsText(STX_MakeLine(@g1,@g2));
+----------------------------------+
| ST_AsText(STX_MakeLine(@g1,@g2)) |
+----------------------------------+
| LINESTRING(1 1,2 3)              |
+----------------------------------+
1 row in set (0.000 sec)

.

  • 上と同じ事をMULTIPOINTを使って実施する例
mysql> SET @g=ST_GeomFromText('MULTIPOINT((1 1),(2 3))');
mysql> SELECT ST_AsText(STX_MakeLine(@g1,@g2));
+----------------------------------+
| ST_AsText(STX_MakeLine(@g1,@g2)) |
+----------------------------------+
| LINESTRING(1 1,2 3)              |
+----------------------------------+
1 row in set (0.000 sec)

.

  • 以下のようにテーブルの複数の行からPOINTをひっぱってきて、MultiPointにした後、本関数でLINESTRINGに変換、なんてこともできます。
CREATE TABLE g (id integer auto_increment primary key,
                geom GEOMETRY);

INSERT INTO g (geom)
  VALUES (ST_GeomFromText('POINT(1 2)')),
  (ST_GeomFromText('POINT(3 4)')),
  (ST_GeomFromText('POINT(5 6)')),
  (ST_GeomFromText('POINT(7 8)'));
mysql> SELECT ST_AsText(ST_Collect(geom)) FROM g;
+-------------------------------------+
| ST_AsText(ST_Collect(geom))         |
+-------------------------------------+
| MULTIPOINT((1 2),(3 4),(5 6),(7 8)) |
+-------------------------------------+
1 row in set (0.000 sec)
mysql> SELECT ST_AsText(STX_MakeLine(ST_Collect(geom))) FROM g;
+-------------------------------------------+
| ST_AsText(STX_MakeLine(ST_Collect(geom))) |
+-------------------------------------------+
| LINESTRING(1 2,3 4,5 6,7 8)               |
+-------------------------------------------+
1 row in set (0.000 sec)

.




以上の内容はhttps://sakaik.hateblo.jp/entry/20260322/STX_MakeLine_funcより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14