Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.2Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


12.15.7.3 LineString プロパティー関数

LineString は、Point 値で構成されます。LineString の特定の点を抽出したり、そこに含まれている点の数をカウントしたり、その長さを取得したりできます。

  • EndPoint(ls)

    LineStringls の終点である Point を返します。

    mysql> SET @ls = 'LineString(1 1,2 2,3 3)';
    mysql> SELECT AsText(EndPoint(GeomFromText(@ls)));
    +-------------------------------------+
    | AsText(EndPoint(GeomFromText(@ls))) |
    +-------------------------------------+
    | POINT(3 3)                          |
    +-------------------------------------+
  • GLength(ls)

    LineStringls の関連付けられた空間参照内の長さを示す倍精度数値を返します。

    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() が存在します。)

  • IsClosed(ls)

    LineStringls が閉じており (つまり、その 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)
  • NumPoints(ls)

    LineStringls 内の Point オブジェクトの数を返します。

    mysql> SET @ls = 'LineString(1 1,2 2,3 3)';
    mysql> SELECT NumPoints(GeomFromText(@ls));
    +------------------------------+
    | NumPoints(GeomFromText(@ls)) |
    +------------------------------+
    |                            3 |
    +------------------------------+
  • PointN(ls,N)

    Linestringls 内の 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)                          |
    +-------------------------------------+
  • StartPoint(ls)

    LineStringls の始点である Point を返します。

    mysql> SET @ls = 'LineString(1 1,2 2,3 3)';
    mysql> SELECT AsText(StartPoint(GeomFromText(@ls)));
    +---------------------------------------+
    | AsText(StartPoint(GeomFromText(@ls))) |
    +---------------------------------------+
    | POINT(1 1)                            |
    +---------------------------------------+

User Comments
Sign Up Login You must be logged in to post a comment.