全部產品
Search
文件中心

:建構函式

更新時間:Apr 16, 2025

時空函數中的建構函式可以將WKT字串構建為Geometry對象,也可以將給定的Geometry對象轉換為其他格式。本文介紹Lindorm流引擎支援的建構函式及其使用方法。

函數列表

函數

說明

ST_GeomFromText

返回與指定WKT字串對應的Geometry對象。

ST_LineFromMultiPoint

返回與指定MultiPoint對象對應的LineString對象。

ST_MakePoint

構建一個Point對象。

ST_MakeLine

將給定的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對象,可以使用ST_Collect函數將Point對象組合成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)