LineString
は、Point
値で構成されます。LineString
の特定の点を抽出したり、そこに含まれている点の数をカウントしたり、その長さを取得したりできます。
-
LineString
値ls
の終点であるPoint
を返します。mysql> SET @ls = 'LineString(1 1,2 2,3 3)'; mysql> SELECT AsText(EndPoint(GeomFromText(@ls))); +-------------------------------------+ | AsText(EndPoint(GeomFromText(@ls))) | +-------------------------------------+ | POINT(3 3) | +-------------------------------------+
-
LineString
値ls
の関連付けられた空間参照内の長さを示す倍精度数値を返します。mysql> SET @ls = 'LineString(1 1,2 2,3 3)'; mysql> SELECT GLength(GeomFromText(@ls)); +----------------------------+ | GLength(GeomFromText(@ls)) | +----------------------------+ | 2.8284271247462 | +----------------------------+
GLength()
は非標準名です。これは、OpenGIS のLength()
関数に対応します。(文字列値の長さを計算する既存の SQL 関数Length()
が存在します。) -
LineString
値ls
が閉じており (つまり、そのStartPoint()
値とEndPoint()
値が同じであり)、かつ単純である (同じ点を複数回通っていない) 場合は 1 を返します。ls
が閉じていない場合は 0 を、NULL
である場合は -1 を返します。mysql> SET @ls1 = 'LineString(1 1,2 2,3 3,2 2)'; Query OK, 0 rows affected (0.00 sec) mysql> SET @ls2 = 'LineString(1 1,2 2,3 3,1 1)'; Query OK, 0 rows affected (0.00 sec) mysql> SELECT IsClosed(GeomFromText(@ls1)); +------------------------------+ | IsClosed(GeomFromText(@ls1)) | +------------------------------+ | 0 | +------------------------------+ 1 row in set (0.00 sec) mysql> SELECT IsClosed(GeomFromText(@ls2)); +------------------------------+ | IsClosed(GeomFromText(@ls2)) | +------------------------------+ | 1 | +------------------------------+ 1 row in set (0.00 sec)
-
LineString
値ls
内のPoint
オブジェクトの数を返します。mysql> SET @ls = 'LineString(1 1,2 2,3 3)'; mysql> SELECT NumPoints(GeomFromText(@ls)); +------------------------------+ | NumPoints(GeomFromText(@ls)) | +------------------------------+ | 3 | +------------------------------+
-
Linestring
値ls
内のN
番目のPoint
を返します。点の番号は 1 から始まります。mysql> SET @ls = 'LineString(1 1,2 2,3 3)'; mysql> SELECT AsText(PointN(GeomFromText(@ls),2)); +-------------------------------------+ | AsText(PointN(GeomFromText(@ls),2)) | +-------------------------------------+ | POINT(2 2) | +-------------------------------------+
-
LineString
値ls
の始点であるPoint
を返します。mysql> SET @ls = 'LineString(1 1,2 2,3 3)'; mysql> SELECT AsText(StartPoint(GeomFromText(@ls))); +---------------------------------------+ | AsText(StartPoint(GeomFromText(@ls))) | +---------------------------------------+ | POINT(1 1) | +---------------------------------------+