時空函數中的建構函式可以將WKT字串構建為Geometry對象,也可以將給定的Geometry對象轉換為其他格式。本文介紹Lindorm流引擎支援的建構函式及其使用方法。
函數列表
函數 | 說明 |
返回與指定WKT字串對應的Geometry對象。 | |
返回與指定MultiPoint對象對應的LineString對象。 | |
構建一個Point對象。 | |
將給定的Point或LineString等類型的Geometry對象,構造為LineString對象。 |
ST_GeomFromText
返回與指定WKT字串對應的Geometry對象。
文法
geometry ST_GeomFromText(string wkt)參數說明
參數 | 描述 |
wkt | 指定WKT字串。 |
Geometry對象支援Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon、GeometryCollection類型。
如果WKT格式中帶有SRID,不支援WKT帶有空間參考系資訊,SRID(預設為4326)可以單獨建列儲存,僅作為標識。
可以建立任意資料類型的EMPTY。
樣本
樣本1:Geometry對象為Point類型。
SELECT ST_GeomFromText('POINT(1 1)') as geom;返回結果:
+-------------+ | geom | +-------------+ | POINT (1 1) | +-------------+樣本2:Geometry對象為Polygon類型。
SELECT ST_GeomFromText('POLYGON (( 1 1, 1 2, 2 2, 2 1, 1 1))') AS poly;返回結果:
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | poly | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 0020000003000010E600000001000000053FF00000000000003FF00000000000003FF000000000000040000000000000004000000000000000400000000000000040000000000000003FF00000000000003FF00000000000003FF0000000000000 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+樣本3:Geometry對象為EMPTY。
SELECT ST_GeomFromText('POLYGON EMPTY') as geom;返回結果:
+---------------+ | geom | +---------------+ | POLYGON EMPTY | +---------------+
ST_LineFromMultiPoint
返回與指定MultiPoint對象對應的LineString對象。
文法
geometry ST_LineFromMultiPoint(geometry aMultiPoint)參數說明
參數 | 描述 |
aMultiPoint | 指定MultiPoint對象,可以使用 |
樣本
SELECT ST_AsText(ST_LineFromMultiPoint(ST_Collect(ST_MakePoint(1,2),ST_MakePoint(3,4),ST_MakePoint(5,6)))) AS astext;返回結果:
+-------------------------+
| astext |
+-------------------------+
| LINESTRING(1 2,3 4,5 6) |
+-------------------------+ST_MakePoint
構建一個Point對象。
文法
geometry ST_MakePoint(double x, double y)參數說明
參數 | 描述 |
x | 經度x值。DOUBLE類型,如果輸入的資料類型為INTEGER或者LONG會自動轉換為DOUBLE類型。 |
y | 緯度y值。DOUBLE類型,如果輸入的資料類型為INTEGER或者LONG會自動轉換為DOUBLE類型。 |
不支援設定空間參考系和3D 物件。
樣本
SELECT ST_AsText(ST_MakePoint(1, 2)) as text;返回結果:
+-------------+
| text |
+-------------+
| POINT (1 2) |
+-------------+ST_MakeLine
將給定的Point或LineString等類型的Geometry對象,構造為LineString對象。
文法
geometry ST_MakeLine(geometry geomA, geometry geomB);
geometry ST_MakeLine(geometry... geoms)參數說明
參數 | 描述 |
geomA | 指定的第一個Geometry對象。 |
geomB | 指定的第二個Geometry對象。 |
geoms | Geometry對象集合。 |
僅支援Point和LineString類型的輸入。
當給定多個LineString類型的Geometry對象時,構造過程將重複資料刪除的節點。實際實現請參見樣本三。
當給定的Geometry對象為Point類型時,構造過程中不會重複資料刪除的節點。
樣本
樣本一:Geometry對象為Point類型。
SELECT ST_AsText(ST_MakeLine(ST_MakePoint(1,2), ST_MakePoint(3,4)));返回結果:
LINESTRING(1 2, 3 4)樣本二:Geometry對象為Point類型,構造多個LineString對象。
SELECT ST_AsText(ST_MakeLine(ST_MakePoint(1,2), ST_MakePoint(3,4), ST_MakePoint(5,6)));返回結果:
LINESTRING(1 2, 3 4, 5 6)樣本三:Geometry對象為LineString類型。
SELECT ST_AsText(ST_MakeLine(ST_GeomFromText('LINESTRING(0 0, 1 1)'), ST_GeomFromText('LINESTRING(1 1, 2 2, 3 3)')));返回結果:
LINESTRING(0 0, 1 1, 2 2, 3 3)