文档

构造函数

更新时间:

时空函数中的构造函数可以将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)');

    返回结果:

    +----------------------------------------------------+
    |             "ST_GeomFromText"('POINT(1 1)')        |
    +----------------------------------------------------+
    | 0020000001000010E63FF00000000000003FF0000000000000 |
    +----------------------------------------------------+
  • 示例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');

    返回结果:

    +-------------------------------------+
    | "ST_GeomFromText"('POLYGON  EMPTY') |
    +-------------------------------------+
    |    0020000003000010E600000000       |
    +-------------------------------------+

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类型。

说明

不支持设定空间参考系和三维对象。

示例

SELECT ST_AsText(ST_MakePoint(1, 2));

返回结果:

+------------------------------------+
| "ST_AsText"("ST_MakePoint"(1, 2))  |
+------------------------------------+
| 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)
  • 本页导读 (1)