|
|
|
|
18.5.2.3. LineString Functions
A LineString consists of
Point values. You can extract particular
points of a LineString , count the number of
points that it contains, or obtain its length.
-
EndPoint(ls )
Returns the Point that is the endpoint
of the LineString value
ls .
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 )
Returns as a double-precision number the length of the
LineString value
ls in its associated spatial
reference.
mysql> SET @ls = 'LineString(1 1,2 2,3 3)';
mysql> SELECT GLength(GeomFromText(@ls));
+----------------------------+
| GLength(GeomFromText(@ls)) |
+----------------------------+
| 2.8284271247462 |
+----------------------------+
GLength() is a non-standard name. It
corresponds to the OpenGIS Length()
function.
-
NumPoints(ls )
Returns the number of Point objects in
the LineString value
ls .
mysql> SET @ls = 'LineString(1 1,2 2,3 3)';
mysql> SELECT NumPoints(GeomFromText(@ls));
+------------------------------+
| NumPoints(GeomFromText(@ls)) |
+------------------------------+
| 3 |
+------------------------------+
-
PointN(ls ,N )
Returns the N -th
Point in the
Linestring value
ls . Points are numbered
beginning with 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 )
Returns the Point that is the start
point of the LineString value
ls .
mysql> SET @ls = 'LineString(1 1,2 2,3 3)';
mysql> SELECT AsText(StartPoint(GeomFromText(@ls)));
+---------------------------------------+
| AsText(StartPoint(GeomFromText(@ls))) |
+---------------------------------------+
| POINT(1 1) |
+---------------------------------------+
The OpenGIS specification also defines the following function,
which MySQL does not implement:
-
IsRing(ls )
Returns 1 if the LineString value
ls is closed (that is, its
StartPoint() and
EndPoint() values are the same) and is
simple (does not pass through the same point more than
once). Returns 0 if ls is not a
ring, and –1 if it is NULL .
|
|
|