几何对象创建函数

ST_BdPolyFromText

ST_BdPolyFromText — 根据一个任意的封闭的WKT描述的MultiLineString几何类型对象创建一个Polygon对象。

语法

st_bdpolyfromtext ::=

参数

WKT

text类型,以WKT格式描述的MultiLineString几何类型对象

srid

integer类型,空间参考系

返回值

返回值为geometry类型。返回创建的Polygon对象。

示例

DROP TABLE sysdba.myspatial_table;
CREATE TABLE sysdba.myspatial_table(gid serial, geom geometry);
INSERT INTO myspatial_table(geom) VALUES(ST_GeomFromText('LINESTRING(1 2, 3 4)',4326) );

SELECT AddGeometryColumn( 'myspatial_table', 'geom1', 3819, 'LINESTRING', 2);
ADDGEOMETRYCOLUMN(text)      |
-----------------------------
SYSDBA.myspatial_table.geom1 |
SRID:3819 TYPE:LINESTRING DI|
MS:2                         |
总数目:1

SELECT AddGeometryColumn ('sysdba','myspatial_table','geom_c',4326,'POINT',2, false);
ADDGEOMETRYCOLUMN(text)      |
-----------------------------
sysdba.myspatial_table.geom_c|
 SRID:4326 TYPE:POINT DIMS:2|
                             |
总数目:1
SELECT AddGeometryColumn ('sysdba','myspatial_table','geom_c',4326,'int',2, false);
ERROR, Invalid type name "int(2)" - valid ones are:
	POINT, MULTIPOINT,
	LINESTRING, MULTILINESTRING,
	POLYGON, MULTIPOLYGON,
	CIRCULARSTRING, COMPOUNDCURVE, MULTICURVE,
	CURVEPOLYGON, MULTISURFACE,
	GEOMETRY, GEOMETRYCOLLECTION,
	POINTM, MULTIPOINTM,
	LINESTRINGM, MULTILINESTRINGM,
	POLYGONM, MULTIPOLYGONM,
	CIRCULARSTRINGM, COMPOUNDCURVEM, MULTICURVEM
	CURVEPOLYGONM, MULTISURFACEM, TRIANGLE, TRIANGLEM,
	POLYHEDRALSURFACE, POLYHEDRALSURFACEM, TIN, TINM
	or GEOMETRYCOLLECTIONM


select * from MYSPATIAL_TABLE;
GID(int)      |GEOM(GEOMETRY)      |GEOM1(GEOMETRY)      |GEOM_C(GEOMETRY)      |
-----------------------------------------------------------------------------
1             |0102000020E610000002|null                 |null                  |
              |000000000000000000F|                     |                      |
              |03F0000000000000040|                     |                      |
              |0000000000000840000|                     |                      |
              |0000000001040       |                     |                      |
总数目:1

select F_TABLE_SCHEMA,F_TABLE_NAME,F_GEOMETRY_COLUMN,COORD_DIMENSION,SRID,TYPE from geometry_columns where F_TABLE_NAME = 'MYSPATIAL_TABLE';
F_TABLE_SCHEMA(name)      |F_TABLE_NAME(name)      |F_GEOMETRY_COLUMN(name)      |COORD_DIMENSION(int)      |SRID(int)      |TYPE(varchar)      |
-------------------------------------------------------------------------------------------------------------------------------------------
SYSDBA                    |MYSPATIAL_TABLE         |GEOM                         |2                         |0              |GEOMETRY           |
-------------------------------------------------------------------------------------------------------------------------------------------
SYSDBA                    |MYSPATIAL_TABLE         |GEOM1                        |2                         |3819           |LINESTRING         |
-------------------------------------------------------------------------------------------------------------------------------------------
SYSDBA                    |MYSPATIAL_TABLE         |GEOM_C                       |2                         |4326           |POINT              |
总数目:3

ST_BdMPolyFromText

ST_BdMPolyFromText — 根据一个任意的封闭的WKT描述的MultiLineString几何类型对象创建一个 MultiPolygon 对象。

语法

st_bdpolyfromtext ::=

参数

WKT

text类型,以WKT格式描述的MultiLineString几何类型对象

srid

integer类型,空间参考系

返回值

返回值为geometry类型。返回创建的MultiPolygon对象。

示例

SELECT ST_BdMPolyFromText('MULTILINESTRING((0 0,0 1,1 1),(1 1,1 0,0 0))',4326);
ST_BDMPOLYFROMTEXT(GEOMETRY)      |
----------------------------------
0106000020E61000000100000001030000|
000100000005000000000000000000000|
000000000000000000000000000000000|
000000000000F03F000000000000F03F0|
00000000000F03F000000000000F03F00|
000000000000000000000000000000000|
0000000000000                     |
总数目:1

select ST_AsText(ST_BdMPolyFromText(ST_AsText(geom_type), 4326)) from geom_table  where id =1 or id =36;
ST_ASTEXT(text)      |
---------------------
MULTIPOLYGON(((0 0,1 |
1,1 2,3 2,0 0)))     |
---------------------
null                 |
总数目:2

ST_Box2dFromGeoHash

ST_Box2dFromGeoHash — 从一个GeoHash字符串返回一个BOX2D对象。

语法

st_box2dfromgeohash ::=

参数

geohash

text类型,GeoHash字符串(GeoHash常用于将二维的经纬度转换为字符串,个GeoHash把一个point对象加密成一个基于前缀的可排

序可收缩的形式。)

precision

integer类型,GeoHash的精度,默认全精度。

返回值

返回值为box2d类型。返回创建的BOX2D对象。

注解

如果precision参数没有给出,ST_Box2dFromGeoHash函数根据输入的GeoHash字符串的全精度返回一个BOX2D对象。如果指定了precision参数,

ST_Box2dFromGeoHash函数会从GeoHash字符串中使用很多字符来创建一个BOX2D对象。更低的精度值会产生更大的BOX2D对象,而更大的精度值会提高精度。

示例

SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0');
ST_BOX2DFROMGEOHASH(BOX2D)      |
--------------------------------
BOX(-115.172816 36.114646,-115.1|
72816 36.114646)                |
总数目:1

SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0',10);
ST_BOX2DFROMGEOHASH(BOX2D)      |
--------------------------------
BOX(-115.17282128334 36.11464083|
19473,-115.172810554504 36.1146|
461963654)                      |
总数目:1

ST_GeogFromText

ST_GeogFromText — 从一个WKT或EWKT规范描述的对象返回一个具体的geography对象。

语法

st_geogfromtext ::=

参数

EWKT

text类型,EWKT格式描述的对象。

返回值

返回值为geography类型。返回创建的geography对象。

注解

SRID默认设置为4326。这个函数是ST_GeographyFromText的别名。Point类型必须用经纬度的形式做参数。

示例

SELECT ST_Summary(ST_GeogFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) As geog;
GEOG(text)      |
----------------
Polygon[BGS] wit|
h 1 rings
   ri|
ng 0 has 5 poin|
ts              |
总数目:1

SELECT ST_Summary(ST_GeogFromText('LINESTRING(0 0 1, 1 1 1)')) As geog_line;
GEOG_LINE(text)      |
---------------------
LineString[ZGS] with |
2 points             |
总数目:1

SELECT ST_AsEWKT(ST_GeogFromText('SRID=4267;POINT(-77.0092 38.889588)'));
ST_ASEWKT(text)      |
---------------------
SRID=4267;POINT(-77.0|
092 38.889588)       |
总数目:1

ST_GeographyFromText

ST_GeographyFromText — 从一个WKT或EWKT规范描述的对象返回一个具体的geography对象。

语法

st_geographyfromtext ::=

参数

EWKT

text类型,EWKT格式描述的对象。

返回值

返回值为geography类型。返回创建的geography对象。

注解

SRID默认设置为4326。这个函数是ST_GeogFromText的别名。

示例

SELECT ST_Summary(ST_GeographyFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) As geog;
GEOG(text)      |
----------------
Polygon[BGS] wit|
h 1 rings
   ri|
ng 0 has 5 poin|
ts              |
总数目:1

SELECT ST_Summary(ST_GeographyFromText('LINESTRING(0 0 1, 1 1 1)')) As geog_line;
GEOG_LINE(text)      |
---------------------
LineString[ZGS] with |
2 points             |
总数目:1

SELECT ST_AsEWKT(ST_GeographyFromText('SRID=4267;POINT(-77.0092 38.889588)'));
ST_ASEWKT(text)      |
---------------------
SRID=4267;POINT(-77.0|
092 38.889588)       |
总数目:1

ST_GeomFromTWKB

ST_GeomFromTWKB — 从 TWKB(“Tiny Well-Known Binary”)几何表示创建geometry对象。

语法

st_geomfromtwkb ::=

参数

TWKB

bytea类型,TWKB格式描述的对象。

返回值

返回值为geometry类型。返回创建的geometry对象。

示例

SELECT ST_GeomFromTWKB('\001\002\000\000\000\002\000\000\000\037\205\353Q\270~\\\300\323Mb\020X\231C@\020X9\264\310~\\\300)\\\217\302\365\230C@');
ST_GEOMFROMTWKB(GEOMETRY)      |
-------------------------------
0101000000000000000000000000000|
00000000000                    |
总数目:1

SELECT ST_AsText(ST_GeomFromTWKB(ST_AsTWKB('LINESTRING(126 34, 127 35)'::geometry)));
ST_ASTEXT(text)      |
---------------------
LINESTRING(126 34,127|
 35)                 |
总数目:1

ST_GeomCollFromText

ST_GeomCollFromText — 根据WKT和给定的SRID值创建一个geometry collection类型的对象,如果SRID值没有给出,默认为0。

语法

st_geomcollfromtext ::=

参数

WKT

text类型,WKT格式描述的对象。

srid

integer类型,空间参考系。

返回值

返回值为geometry类型。返回创建的geometry collection对象。如果WKT描述不是一个GEOMETRYCOLLECTION对象,返回null。

注解

如果确定输入的WKT geometry类型是collection类型的,就没必要使用这个函数,建议使用ST_GeomFromText。因为ST_GeomCollFromText比ST_GeomFromText函数慢得多,

因为 ST_GeomCollFromText 这个函数会进行额外的类型校验步骤。

示例

SELECT ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(1 2, 3 4))');
ST_GEOMCOLLFROMTEXT(GEOMETRY)      |
-----------------------------------
01070000000200000001010000000000000|
00000F03F0000000000000040010200000|
002000000000000000000F03F000000000|
0000040000000000000084000000000000|
01040                              |
总数目:1

SELECT ST_AsText(ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(1 2, 3 4))'));
ST_ASTEXT(text)      |
---------------------
GEOMETRYCOLLECTION(PO|
INT(1 2),LINESTRING(|
1 2,3 4))            |
总数目:1


--输入的WKT描述不是一个GEOMETRYCOLLECTION对象,返回NULL
SELECT ST_GeomCollFromText('LINESTRING(1 2, 3 4)');
ST_GEOMCOLLFROMTEXT(GEOMETRY)      |
-----------------------------------
null                               |
总数目:1

ST_GeomFromEWKB

ST_GeomFromEWKB — 从一个EWKB描述的几何对象返回一个具体的ST_Geometry值。

语法

st_geomfromewkb ::=

参数

EWKB

bytea类型,EWKB格式描述的对象。

返回值

返回值为geometry类型。返回创建的 ST_Geometry 对象。

注解

EWKB 格式不是OGC标准,而是PostGIS的具体的一种包含SRID的格式。

示例

SELECT ST_GeomFromEWKB('\001\002\000\000 \255\020\000\000\003\000\000\000\344J=\013B\312Q\300n\303(\010\036!E@''\277E''K\312Q\300\366{b\235*!E@\225|\354.P\312Q\300p\231\323e1!E@');
ST_GEOMFROMEWKB(GEOMETRY)      |
-------------------------------
0102000020AD10000003000000E44A3|
D0B42CA51C06EC328081E21454027B|
F45274BCA51C0F67B629D2A2145409|
57CEC2E50CA51C07099D3653121454|
0                              |
总数目:1

select ST_GeomFromEWKB(ST_AsEWKB(geom_type)) from geom_table where id = 1;
ST_GEOMFROMEWKB(GEOMETRY)      |
-------------------------------
0105000000020000000102000000030|
000000000000000000000000000000|
0000000000000000000F03F0000000|
00000F03F000000000000F03F00000|
000000000400102000000030000000|
00000000000F03F000000000000004|
000000000000008400000000000000|
040000000000000000000000000000|
00000                          |
总数目:1

ST_GeomFromEWKT

ST_GeomFromEWKT — 从一个EWKT描述的几何对象返回一个具体的ST_Geometry值。

语法

st_geomfromewkt ::=

参数

EWKT

text类型,EWKT格式描述的对象。

返回值

返回值为geometry类型。返回创建的 ST_Geometry 对象。

注解

EWKT 格式不是OGC标准,而是PostGIS的具体的一种包含SRID的格式。

示例

SELECT ST_GeomFromEWKT('SRID=4269;LINESTRING(-71.160281 42.258729,-71.160837 42.259113,-71.161144 42.25932)');
ST_GEOMFROMEWKT(GEOMETRY)      |
-------------------------------
0102000020AD10000003000000E44A3|
D0B42CA51C06EC328081E21454027B|
F45274BCA51C0F67B629D2A2145409|
57CEC2E50CA51C07099D3653121454|
0                              |
总数目:1

select ST_GeomFromEWKB(geom_type) from geom_table where id = 1;
ST_GEOMFROMEWKB(GEOMETRY)      |
-------------------------------
0105000000020000000102000000030|
000000000000000000000000000000|
0000000000000000000F03F0000000|
00000F03F000000000000F03F00000|
000000000400102000000030000000|
00000000000F03F000000000000004|
000000000000008400000000000000|
040000000000000000000000000000|
00000                          |
总数目:1

ST_GeometryFromText

ST_GeometryFromText — 根据WKT描述的对象返回一个具体的ST_Geometry 函数值(也是一个geometry对象),该函数是

ST_GeomFromText的别名,即两者等价。

语法

st_geometryfromtext ::=

参数

WKT

text类型,WKT格式描述的对象。

srid

integer类型,空间参考系

返回值

返回值为geometry类型。返回创建的 ST_Geometry 对象。

示例

SELECT ST_GeometryFromText('POINT(1 2)');
ST_GEOMETRYFROMTEXT(GEOMETRY)      |
-----------------------------------
0101000000000000000000F03F000000000|
0000040                            |
总数目:1

SELECT ST_GeometryFromText('POINT(1 2)',4326);
ST_GEOMETRYFROMTEXT(GEOMETRY)      |
-----------------------------------
0101000020E6100000000000000000F03F0|
000000000000040                    |
总数目:1

ST_GeomFromGeoHash

ST_GeomFromGeoHash — 从一个GeoHash型字符串返回一个geometry对象类型。

语法

st_geomfromgeohash ::=

参数

geohash

text类型,GeoHash字符串。

default

integer类型,GeoHash的精度,默认全精度。

返回值

返回值为geometry类型。返回创建的 geometry。

注解

从一个GeoHash字符串返回一个geometry类型对象,该geometry对象会是一个polygon对象,表示GeoHash的边界。

如果precision参数没有给出,ST_GeomFromGeoHash函数根据输入的GeoHash字符串的全精度返回一个polygon对象。

如果指定了precision参数,ST_GeomFromGeoHash函数会从GeoHash字符串中使用很多字符来创建一个polygon对象。

示例

SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0'));
ST_ASTEXT(text)      |
---------------------
POLYGON((-115.172816 |
36.114646,-115.17281|
6 36.114646,-115.172|
816 36.114646,-115.1|
72816 36.114646,-115|
.172816 36.114646))  |
总数目:1

SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0'));
ST_ASTEXT(text)      |
---------------------
POLYGON((-115.172816 |
36.114646,-115.17281|
6 36.114646,-115.172|
816 36.114646,-115.1|
72816 36.114646,-115|
.172816 36.114646))  |
总数目:1

ST_GeomFromGML

ST_GeomFromGML — 根据一个geometry对象的GML描述,返回一个geometry类型对象。

语法

st_geomfromgml ::=

参数

geohash

text类型,GeoHash字符串。

srid

integer类型,空间参考系。

返回值

返回值为geometry类型。返回创建的 geometry。

注解

ST_GeomFromGML 只对GML描述的Geometry fragment元素标记类型输入有效,如果在整个GML文档上执行该函数,将会抛出异常。

示例

SELECT ST_GMLToSQL('
<gml:LineString srsName="EPSG:4269">
<gml:coordinates>
-71.16028,42.258729 -71.160837,42.259112 -71.161143,42.25932
</gml:coordinates>
</gml:LineString>');
ST_GMLTOSQL(GEOMETRY)      |
---------------------------
0102000020AD10000003000000F|
C8C0B0742CA51C06EC328081E2|
1454027BF45274BCA51C02600F|
F942A214540ADBEBA2A50CA51C|
07099D36531214540          |
总数目:1


SELECT ST_GMLToSQL('
<gml:LineString srsName="EPSG:4269">
<gml:coordinates>
-71.16028,42.258729 -71.160837,42.259112 -71.161143,42.25932
</gml:coordinates>
</gml:LineString>',4326);
ST_GMLTOSQL(GEOMETRY)      |
---------------------------
0102000020E610000003000000F|
C8C0B0742CA51C06EC328081E2|
1454027BF45274BCA51C02600F|
F942A214540ADBEBA2A50CA51C|
07099D36531214540          |
总数目:1

ST_GeomFromGeoJSON

ST_GeomFromGeoJSON — 根据一个geometry对象的GML描述,返回一个geometry类型对象。

语法

st_geomfromgeojson ::=

参数

geomjson

text类型,geojson描述的几何对象。

返回值

返回值为geometry类型。返回创建的 geometry。

注解

ST_GeomFromGeoJSON 只能在Json 的Geometry的元素标记起作用,如果你把整个JSON文档当做该函数的输入,将会抛出异常。

示例

SELECT ST_AsText(ST_GeomFromGeoJSON('{"type":"Point","coordinates":[-48.23456,20.12345]}')) As wkt;
WKT(text)      |
---------------
POINT(-48.23456|
 20.12345)     |
总数目:1

ST_GeomFromKML

ST_GeomFromKML — 该函数根据一个KML描述的几何对象,生成一个geometry对象。

语法

st_geomfromkml ::=

参数

geomkml

text类型,geomkml描述的几何对象。

返回值

返回值为geometry类型。返回创建的 geometry。

注解

ST_GeomFromKML只能在 KML 的Geometry的元素标记起作用,如果你把整个 KML 文档当做该函数的输入,将会抛出异常。

示例

SELECT ST_GeomFromKML('
<LineString>
<coordinates>-71.1663,42.2614
-71.1667,42.2616</coordinates>
</LineString>');
ST_GEOMFROMKML(GEOMETRY)      |
------------------------------
0102000020E610000002000000CA54|
C1A8A4CA51C05396218E752145409|
10F7A36ABCA51C01A51DA1B7C2145|
40                            |
总数目:1


SELECT ST_AsText(ST_GeomFromKML('
<LineString>
<coordinates>-71.1663,42.2614
-71.1667,42.2616</coordinates>
</LineString>'));
ST_ASTEXT(text)      |
---------------------
LINESTRING(-71.1663 4|
2.2614,-71.1667 42.2|
616)                 |
总数目:1

ST_GMLToSQL

ST_GMLToSQL — 根据GML表述的对象返回一个ST_Geometry值,这个函数是ST_GeomFromGML的别名。

语法

st_gmltosql ::=

参数

geomgml

text类型,geomgml描述的几何对象。

srid

integer类型,空间参考系

返回值

返回值为geometry类型。返回创建的 geometry。

示例

SELECT ST_GMLToSQL('
<gml:LineString srsName="EPSG:4269">
<gml:coordinates>
-71.16028,42.258729 -71.160837,42.259112 -71.161143,42.25932
</gml:coordinates>
</gml:LineString>');
ST_GMLTOSQL(GEOMETRY)      |
---------------------------
0102000020AD10000003000000F|
C8C0B0742CA51C06EC328081E2|
1454027BF45274BCA51C02600F|
F942A214540ADBEBA2A50CA51C|
07099D36531214540          |
总数目:1


SELECT ST_GMLToSQL('
<gml:LineString srsName="EPSG:4269">
<gml:coordinates>
-71.16028,42.258729 -71.160837,42.259112 -71.161143,42.25932
</gml:coordinates>
</gml:LineString>',4326);
ST_GMLTOSQL(GEOMETRY)      |
---------------------------
0102000020E610000003000000F|
C8C0B0742CA51C06EC328081E2|
1454027BF45274BCA51C02600F|
F942A214540ADBEBA2A50CA51C|
07099D36531214540          |
总数目:1

ST_GeomFromText

ST_GeomFromText — 根据WKT描述返回一个具体的ST_Geometry 值。

语法

st_geomfromtext ::=

参数

WKT

text类型,WKT描述的几何对象。

srid

integer类型,空间参考系

返回值

返回值为geometry类型。返回创建的 geometry。

示例

SELECT ST_GeometryFromText('POINT(1 2)');
ST_GEOMETRYFROMTEXT(GEOMETRY)      |
-----------------------------------
0101000000000000000000F03F000000000|
0000040                            |
总数目:1

SELECT ST_GeometryFromText('POINT(1 2)',4326);
ST_GEOMETRYFROMTEXT(GEOMETRY)      |
-----------------------------------
0101000020E6100000000000000000F03F0|
000000000000040                    |
总数目:1

ST_GeomFromWKB

ST_GeomFromWKB — 根据WKB表述创建一个geometry几何类型对象,SRID可选。

语法

st_geomfromwkb ::=

参数

WKB

bytea类型,WKB描述的几何对象。

srid

integer类型,空间参考系

返回值

返回值为geometry类型。返回创建的 geometry。

注解

根据WKB表述创建一个geometry几何类型对象,SRID可选,这个函数在SQL中充当Geometry Factory 的角色,该函数ST_WKBToSQL的候选别名。

如果SRID没有指定,SRID将被设置为0,表示SRID未知。

示例

SELECT ST_AsEWKT(
ST_GeomFromWKB('\001\002\000\000\000\002\000\000\000\037\205\353Q 
\270~\\\300\323Mb\020X\231C@\020X9\264\310~\\\300)\\\217\302\365\230 
C@')
);
ST_ASEWKT(text)      |
---------------------
LINESTRING(2.57586e+3|
02 0,5.29411e+302 0) |
总数目:1


SELECT ST_AsText(ST_GeomFromWKB(ST_AsEWKB('POINT(2 5)'::geometry, 4326)));
ST_ASTEXT(text)      |
---------------------
POINT(2 5)           |
总数目:1

ST_LineFromEncodedPolyline

ST_LineFromEncodedPolyline — 根据EncodedPolyline表述创建一个 LineString几何类型对象。

语法

st_linefromencodedpolyline ::=

参数

polyline

text类型,EncodedPolyline描述的几何对象。

default

integer类型,EncodedPolyline的精度,默认全精度。

返回值

返回值为geometry类型。返回创建的 geometry。

注解

可选精度指定编码多段线中保留的小数位数。编码和解码时的值应相同,否则坐标将不正确。

示例

SELECT ST_AsEWKT(ST_LineFromEncodedPolyline('_p~iF~ps|U_ulLnnqC_mqNvxq`@'));
ST_ASEWKT(text)      |
---------------------
SRID=4326;LINESTRING(|
-120.2 38.5,-120.95 |
40.7,-126.453 43.252|
)                    |
总数目:1

SELECT ST_AsEWKT(ST_LineFromEncodedPolyline('_p~iF~ps|U_ulLnnqC_mqNvxq`@',6));
ST_ASEWKT(text)      |
---------------------
SRID=4326;LINESTRING(|
-12.02 3.85,-12.095 |
4.07,-12.6453 4.3252|
)                    |
总数目:1

ST_LineFromMultiPoint

ST_LineFromMultiPoint — 从一个MultiPoint几何类型中返回一个LineString类型对象。

语法

st_linefrommultipoint ::=

参数

aMultiPoint

geometry类型,MultiPoint几何类型对象。

返回值

返回值为geometry类型。返回创建的 LineString 对象。

示例

SELECT ST_AsEWKT(ST_LineFromMultiPoint(ST_GeomFromEWKT('MULTIPOINT(1 2 3, 4 5 6, 7 8 9)'))) ;
ST_ASEWKT(text)      |
---------------------
LINESTRING(1 2 3,4 5 |
6,7 8 9)             |
总数目:1

ST_LineFromText

ST_LineFromText — 根据WKT表述和给定的SRID创建一个geometry几何类型对象,如果SRID没有给定默认设置为0。

语法

st_linefromtext ::=

参数

WKT

text类型,WKT表述的LineString几何类型对象。

srid

integer类型,空间参考系

返回值

返回值为geometry类型。返回创建的 LineString 对象。

注解

如果传递的WKT参数不是LINESTRING返回值将为空。

示例

SELECT ST_LineFromText('LINESTRING(1 2, 3 4)') AS aline, ST_LineFromText('POINT(1 2)') AS null_return;
ALINE(GEOMETRY)      |NULL_RETURN(GEOMETRY)      |
------------------------------------------------
010200000002000000000|null                       |
000000000F03F0000000|                           |
00000004000000000000|                           |
00840000000000000104|                           |
0                    |                           |
总数目:1

SELECT ST_LineFromText('LINESTRING(1 2, 3 4)',4326) As aline, ST_LineFromText('POINT(1 2)',4326) As null_return;
ALINE(GEOMETRY)      |NULL_RETURN(GEOMETRY)      |
------------------------------------------------
0102000020E6100000020|null                       |
00000000000000000F03|                           |
F0000000000000040000|                           |
00000000008400000000|                           |
000001040            |                           |
总数目:1

ST_LineFromWKB

ST_LineFromWKB — 根据WKB表述和给定的SRID创建一个LINESTRING几何类型对象,如果SRID没有给定默认设置为0。

语法

st_linefromwkb ::=

参数

WKB

bytea类型,WKB表述的LineString几何类型对象。

srid

integer类型,空间参考系

返回值

返回值为geometry类型。返回创建的 LineString 对象。

注解

根据WKB表述和给定的SRID创建一个LINESTRING几何类型对象,该函数在SQL中充当Geometry Factory角色

如果SRID没有给定默认设置为0,如果输入的的bytea类型参数不是LINESTRING 几何类型对象,返回NULL值。

示例

SELECT ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)'))) AS aline,
ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('POINT(1 2)'))) IS NULL AS null_return;
ALINE(GEOMETRY)      |NULL_RETURN(boolean)      |
-----------------------------------------------
010200000002000000000|true                      |
000000000F03F0000000|                          |
00000004000000000000|                          |
00840000000000000104|                          |
0                    |                          |
总数目:1


SELECT 
ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)')),4326) As aline,
ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('POINT(1 2)')),4326) IS NULL As null_return;
ALINE(GEOMETRY)      |NULL_RETURN(boolean)      |
-----------------------------------------------
0102000020E6100000020|true                      |
00000000000000000F03|                          |
F0000000000000040000|                          |
00000000008400000000|                          |
000001040            |                          |
总数目:1

ST_LinestringFromWKB

ST_LinestringFromWKB — 根据WKB表述和给定的SRID创建一个geometry几何类型对象。该函数是 ST_LineFromWKB 的别名,两者等价。

示例

SELECT ST_LinestringFromWKB(ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)'))) AS aline,
ST_LinestringFromWKB(ST_AsBinary(ST_GeomFromText('POINT(1 2)'))) IS NULL AS null_return;
ALINE(GEOMETRY)      |NULL_RETURN(boolean)      |
-----------------------------------------------
010200000002000000000|true                      |
000000000F03F0000000|                          |
00000004000000000000|                          |
00840000000000000104|                          |
0                    |                          |
总数目:1


SELECT 
ST_LinestringFromWKB(ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)')),4326) As aline,
ST_LinestringFromWKB(ST_AsBinary(ST_GeomFromText('POINT(1 2)')),4326) IS NULL As null_return;
ALINE(GEOMETRY)      |NULL_RETURN(boolean)      |
-----------------------------------------------
0102000020E6100000020|true                      |
00000000000000000F03|                          |
F0000000000000040000|                          |
00000000008400000000|                          |
000001040            |                          |
总数目:1

ST_MakeBox2D

ST_MakeBox2D — 根据给定的point几何类型创建BOX2D对象。

语法

st_makebox2d ::=

参数

pointLowLeft

point类型。

pointUpRight

point类型。

返回值

返回值为BOX2D类型。返回创建的 BOX2D 对象。该函数对范围查询很有用。

示例

SELECT ST_MakeBox2D(ST_Point(-989502.1875, 528439.5625),ST_Point(-987121.375 ,529933.1875));
ST_MAKEBOX2D(BOX2D)      |
-------------------------
BOX(-989502.1875 528439.5|
625,-987121.375 529933.1|
875)                     |
总数目:1

ST_3DMakeBox

ST_3DMakeBox — 根据3D 类型的point几何类型创建BOX3D对象。

语法

st_3dmakebox ::=

参数

point3DLowLeftBottom

3D point类型。

point3DUpRightTop

3D point类型。

返回值

返回值为BOX3D类型。返回创建的 BOX3D 对象。

示例

select ST_3DMakeBox('SRID=3;POINT(0 0)', 'SRID=3;POINT(1 1)');
ST_3DMAKEBOX(BOX3D)      |
-------------------------
BOX3D(0 0 0,1 1 0)       |
总数目:1

select ST_3DMakeBox('POINT(0 0 1)', 'POINT(1 1 1)');
ST_3DMAKEBOX(BOX3D)      |
-------------------------
BOX3D(0 0 1,1 1 1)       |
总数目:1

ST_MakeLine

ST_MakeLine — 根据point或line几何类型创建Linestring类型对象。

语法

st_makeline ::=

参数

geoms

聚集函数。它用一排point或line几何类型生成一个linestring几何对象。

geom1 geom2

两个point或linestring类型。

geoms_array

point或line类型的数组。

返回值

返回值为geometry类型。返回创建的 linestring 对象。

示例

DROP table geom_test;
CREATE table geom_test(col geometry);
INSERT into geom_test VALUES (ST_GeomFromText('POINT(1 2)'));
INSERT into geom_test VALUES (ST_GeomFromText('POINT(3 4)'));

SELECT ST_AsText(ST_MakeLine(col)) FROM geom_test;
ST_ASTEXT(text)      |
---------------------
LINESTRING(1 2,3 4)  |
总数目:1
DROP table geom_test;


SELECT ST_AsText(ST_MakeLine(ST_MakePoint(1,2), ST_MakePoint(3,4)));
ST_ASTEXT(text)      |
---------------------
LINESTRING(1 2,3 4)  |
总数目:1


SELECT ST_AsEWKT(ST_MakeLine(ARRAY[ST_MakePoint(1,2,3),ST_MakePoint(3,4,5)]));
ST_ASEWKT(text)      |
---------------------
LINESTRING(1 2 3,3 4 |
5)                   |
总数目:1

ST_MakeEnvelope

ST_MakeEnvelope — 根据给定的最小值范围和最大值范围生成一个矩形,输入值必须是SRS(spatial_reference_system表)规定的SRID值。

语法

st_makeenvelope ::=

参数

xmin ymin xmax ymax

double类型,分别为 x y 坐标的组成。

default

integer类型,代表srid的值,可缺省。

返回值

返回值为geometry类型。返回创建的 POLYGON 对象。

示例

SELECT ST_AsText(ST_MakeEnvelope(10, 10, 11, 11, 4326));
ST_ASTEXT(text)      |
---------------------
POLYGON((10 10,10 11,|
11 11,11 10,10 10))  |
总数目:1

SELECT ST_AsText(ST_MakeEnvelope(10, 10, 11, 11));
ST_ASTEXT(text)      |
---------------------
POLYGON((10 10,10 11,|
11 11,11 10,10 10))  |
总数目:1

ST_MakePolygon

ST_MakePolygon — 根据给定的闭合的LineString类型,生成一个多边形,输入的几何类型必须是封闭的曲线。

语法

st_makepolygon ::=

参数

linestring

geometry 类型。输入参数是闭合的linestring。

outerlinestring

geometry类型。

geo_array

geometry数组类型。

返回值

返回值为geometry类型。返回创建的 POLYGON 对象。

示例

SELECT ST_MakePolygon(ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 29.5, 75.15 29.53)'));
ST_MAKEPOLYGON(GEOMETRY)      |
------------------------------
010300000001000000040000009A99|
999999C9524048E17A14AE873D400|
0000000004053400000000000003D|
40666666666666534000000000008|
03D409A99999999C9524048E17A14|
AE873D40                      |
总数目:1

SELECT ST_MakePolygon(ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 29.5, 78.15 27.53)'));
ERROR, lwpoly_from_lwlines: shell must be closed



SELECT ST_MakePolygon(
ST_ExteriorRing(ST_Buffer(foo.line,10)),
ARRAY[ST_Translate(foo.line,1,1),ST_ExteriorRing(ST_Buffer(ST_MakePoint(20,20),1))])
FROM
(SELECT ST_ExteriorRing(ST_Buffer(ST_MakePoint(10,10),10,10))
As line )
As foo;
ST_MAKEPOLYGON(GEOMETRY)      |
------------------------------
0103000000030000005200000094F5|
BA2C97D83D40BB67C29FB09A1E400|
D302CC8BF993D4038D7DC6BA16718|
404093E2BFF83B3D407C7FC3792F4|
D1240B526C516D6BF3C409AC8A9AA|
F9A9084007EAE2B91B263C40802D1|
FF3D521FA3F8AAF364BBC6F3B4080|
634F381018CE3F1E0EB3A2D79D3A4|
060AC14A339A5F1BF2ED7F207B9B1|
394024B727BA89FA02C06A1D5B27D|
5AC3840B86A402F3E860CC05D0DE8|
C5C79037408E756C9D54B312C0EBF|
64437515F36409F5CCB1FE4C616C0|
D34A319A531A35405638CC8A5E771|
AC046618FDFCFC333400CBEDA2CF1|
BE1DC0310DCEA0E25D324007D4C57|
3374C20C0F7C6AACAC0EA3040644D|
8A2DAC7F21C053401E4368D92E407|
B26C57FF17722C07594114A2FCC2B|
40166058907F3323C03BCC1EB0A7B|
2284025EB75592EB123C0337FECE7|
B59125406DFCD77C37F023C0F9801|
3184A6E22406EFCD77C37F023C0DE|
67C29FB09A1E4029EB75592EB123C|
070D7DC6BA16718401F6058907F33|
23C0B67FC3792F4D12408826C57FF|
17722C014C9A9AAF9A90840764D8A|
2DAC7F21C06C2E1FF3D521FA3F1DD|
4C573374C20C020664F381018CE3F|
36BEDA2CF1BE1DC018AC14A339A5F|
1BF8438CC8A5E771AC0D4B627BA89|
FA02C0D15CCB1FE4C616C0706A402|
F3E860CC0C3756C9D54B312C06F75|
6C9D54B312C02A6B402F3E860CC08|
55CCB1FE4C616C09AB727BA89FA02|
C04038CC8A5E771AC0ACAD14A339A|
5F1BFFABDDA2CF1BE1DC0E0584F38|
1018CE3F02D4C573374C20C09A2C1|
FF3D521FA3F604D8A2DAC7F21C025|
C8A9AAF9A908407926C57FF17722C|
0427FC3792F4D1240156058907F33|
23C0FED6DC6BA167184024EB75592|
EB123C07467C29FB09A1E406DFCD7|
7C37F023C0C48013184A6E22406FF|
CD77C37F023C0FC7EECE7B5912540|
2BEB75592EB123C007CC1EB0A7B22|
840206058907F3323C04894114A2F|
CC2B408826C57FF17722C028401E4|
368D92E40764D8A2DAC7F21C0DCC6|
AACAC0EA30401DD4C573374C20C01|
80DCEA0E25D324038BEDA2CF1BE1D|
C033618FDFCFC333408638CC8A5E7|
71AC0C14A319A531A3540D05CCB1F|
E4C616C0DBF64437515F3640C3756|
C9D54B312C04E0DE8C5C790374042|
6B402F3E860CC0591D5B27D5AC384|
0B4B727BA89FA02C01FD7F207B9B1|
394088AD14A339A5F1BF120EB3A2D|
79D3A40205A4F381018CE3F80AF36|
4BBC6F3B40A02C1FF3D521FA3F01E|
AE2B91B263C402AC8A9AAF9A90840|
B026C516D6BF3C402A7FC3792F4D1|
2403A93E2BFF83B3D40E6D6DC6BA1|
6718400A302CC8BF993D408067C29|
FB09A1E4092F5BA2C97D83D40CA80|
13184A6E224036FE6BBE1BF83D40F|
C7EECE7B591254038FE6BBE1BF83D|
4006CC1EB0A7B2284096F5BA2C97D|
83D404694114A2FCC2B4010302CC8|
BF993D4026401E4368D92E404493E|
2BFF83B3D40DAC6AACAC0EA3040BC|
26C516D6BF3C40160DCEA0E25D324|
010EAE2B91B263C4035618FDFCFC3|
33408DAF364BBC6F3B40C34A319A5|
31A3540200EB3A2D79D3A40DAF644|
37515F364035D7F207B9B139404E0|
DE8C5C7903740721D5B27D5AC3840|
5A1D5B27D5AC3840680DE8C5C7903|
74020D7F207B9B13940F6F6443751|
5F3640120EB3A2D79D3A40D84A319|
A531A354080AF364BBC6F3B404B61|
8FDFCFC3334000EAE2B91B263C403|
60DCEA0E25D3240B026C516D6BF3C|
40FBC6AACAC0EA30403A93E2BFF83|
B3D406B401E4368D92E400A302CC8|
BF993D408D94114A2FCC2B4092F5B|
A2C97D83D4038CC1EB0A7B2284036|
FE6BBE1BF83D401E7FECE7B591254|
0CFA25A012AF43D402E0000000000|
244038FE6BBE1BF83D40F18013184|
A6E224094F5BA2C97D83D40BB67C2|
9FB09A1E402900000000000000000|
0354000000000000026405DF74E6E|
7BE03440F7B2CD370EDF2240905A0|
566B4823440320E827DAAA31F40E2|
1D2309FAE8334045F5F42423D7194|
0767C9F6015173340114F6D3A147D|
1440B2C20780311232408EEAC1FF7|
36E0F4040AC64F1BAE030406C1C04|
FB544707406785856D6E142F40001|
1E7B62FB80040F2F83EC12A2E2C40|
1857AA9FB9D4F73F144D32C8F1202|
940408A101B49F8F13F0C00000000|
002640000000000000F03F02B3CD3|
70EDF2240288A101B49F8F13F4A0E|
827DAAA31F40E056AA9FB9D4F73F5|
BF5F42423D71940D410E7B62FB800|
40244F6D3A147D1440381C04FB544|
70740ACEAC1FF736E0F4054EAC1FF|
736E0F40801C04FB54470740F24E6|
D3A147D14400C11E7B62FB8004024|
F5F42423D719402857AA9FB9D4F73|
F100E827DAAA31F40488A101B49F8|
F13FE6B2CD370EDF2240000000000|
000F03FF0FFFFFFFFFF2540208A10|
1B49F8F13FFB4C32C8F1202940E05|
6AA9FB9D4F73FDAF83EC12A2E2C40|
D410E7B62FB800405285856D6E142|
F40381C04FB5447074037AC64F1BA|
E0304052EAC1FF736E0F40AAC2078|
031123240F04E6D3A147D1440707C|
9F601517334023F5F42423D71940D|
E1D2309FAE83340100E827DAAA31F|
408D5A0566B4823440E6B2CD370ED|
F22405CF74E6E7BE03440F0FFFFFF|
FFFF25400000000000003540FA4C3|
2C8F12029405EF74E6E7BE03440DA|
F83EC12A2E2C40925A0566B482344|
05285856D6E142F40E61D2309FAE8|
334037AC64F1BAE03040797C9F601|
5173340AAC2078031123240B6C207|
8031123240707C9F601517334044A|
C64F1BAE03040DE1D2309FAE83340|
6E85856D6E142F408D5A0566B4823|
440F8F83EC12A2E2C405CF74E6E7B|
E034401A4D32C8F12029400000000|
00000354000000000000026402100|
00000000000000003540000000000|
0003440E6BA7FBE14FB3440B42C87|
8F0ECE33406A94795E83EC34405B4|
56575089E33400D754831DBD43440|
BA8C3226C6713340DFF933F304B53|
4402206CC0CFB4A33404673CDD939|
8E3440F38AB7CE242B3340A6BA9A8|
AF7613440966B86A17C1333404CD3|
7870F13134401B458041EB0433400|
00000000000344000000000000033|
40B42C878F0ECE33401A458041EB0|
433405B456575089E3340966B86A1|
7C133340BA8C3226C6713340F38AB|
7CE242B33402206CC0CFB4A334021|
06CC0CFB4A3340F38AB7CE242B334|
0B98C3226C6713340966B86A17C13|
33405A456575089E33401B458041E|
B043340B32C878F0ECE3340000000|
0000003340FFFFFFFFFFFF33401A4|
58041EB0433404BD37870F1313440|
956B86A17C133340A5BA9A8AF7613|
440F28AB7CE242B33404573CDD939|
8E34402106CC0CFB4A3340DEF933F|
304B53440B98C3226C67133400C75|
4831DBD4344059456575089E33406|
A94795E83EC3440B32C878F0ECE33|
40E5BA7FBE14FB3440FFFFFFFFFFF|
F334000000000000035404BD37870|
F1313440E6BA7FBE14FB3440A5BA9|
A8AF76134406B94795E83EC344046|
73CDD9398E34400E754831DBD4344|
0DEF933F304B53440DFF933F304B5|
34400D754831DBD434404773CDD93|
98E34406A94795E83EC3440A6BA9A|
8AF7613440E5BA7FBE14FB34404DD|
37870F13134400000000000003540|
0000000000003440              |
总数目:1

ST_MakePoint

ST_MakePoint — 创建一个2D,3DZ 或者 4D point 几何类型。

语法

st_makepoint ::=

参数

x y z

double 类型。x是经度,y是维度。

m

double 类型。4D坐标(目前用到3D)。

返回值

返回值为geometry类型。返回创建的 geometry 对象。

示例

SELECT ST_AsText(ST_MakePoint(-71.1043443253471, 42.3150676015829));
ST_ASTEXT(text)      |
---------------------
POINT(-71.10434432534|
71 42.3150676015829) |
总数目:1

SELECT ST_AsText(ST_MakePoint(-71.1043443253471, 42.3150676015829,2));
ST_ASTEXT(text)      |
---------------------
POINT Z (-71.10434432|
53471 42.31506760158|
29 2)                |
总数目:1

SELECT ST_AsText(ST_MakePoint(-71.1043443253471, 42.3150676015829,2,1));
ST_ASTEXT(text)      |
---------------------
POINT ZM (-71.1043443|
253471 42.3150676015|
829 2 1)             |
总数目:1

ST_MakePointM

ST_MakePointM — 使用x,y,m坐标创建一个 point 几何类型对象。

语法

st_makepointm ::=

参数

x y m

double 类型。x是经度,y是维度。

返回值

返回值为geometry类型。返回创建的 point 对象。

示例

我们在下面的样例中使用ST_AsEWKT 函数来显示几何对象的文本表述而不是ST_AsText 函数,因为 ST_AsText 不支持返回M值

SELECT ST_AsEWKT(ST_MakePointM(-71.1043443253471, 42.3150676015829, 10));
ST_ASEWKT(text)      |
---------------------
POINTM(-71.1043443253|
471 42.3150676015829|
 10)                 |
总数目:1

SELECT ST_M(ST_MakePointM(-71.1043443253471, 42.3150676015829,10));
ST_M(double precision)      |
----------------------------
10                          |
总数目:1

ST_MLineFromText

ST_MLineFromText — 根据WKT表述的几何对象返回ST_MultiLineString值。

语法

st_mlinefromtext ::=

参数

WKT

text类型。WKT表述的MULTILINESTRING几何类型对象,如果不是返回NULL。

srid

integer类型,空间参考系。

返回值

返回值为geometry类型。返回创建的 MULTILINESTRING 对象。

示例

SELECT ST_MLineFromText('MULTILINESTRING((1 2, 3 4), (4 5, 6 7))');
ST_MLINEFROMTEXT(GEOMETRY)      |
--------------------------------
01050000000200000001020000000200|
0000000000000000F03F00000000000|
0004000000000000008400000000000|
0010400102000000020000000000000|
0000010400000000000001440000000|
00000018400000000000001C40      |
总数目:1

SELECT ST_MLineFromText('MULTILINESTRING((1 2, 3 4), (4 5, 6 7))',3426);
ST_MLINEFROMTEXT(GEOMETRY)      |
--------------------------------
0105000020620D000002000000010200|
000002000000000000000000F03F000|
0000000000040000000000000084000|
0000000000104001020000000200000|
0000000000000104000000000000014|
4000000000000018400000000000001|
C40                             |
总数目:1

SELECT ST_MLineFromText('POINT(3 4)');
ST_MLINEFROMTEXT(GEOMETRY)      |
--------------------------------
null                            |
总数目:1

ST_MPointFromText

ST_MPointFromText — 根据WKT表述和给定的SRID创建一个geometry几何类型对象,如果SRID没有给定默认设置为0。

语法

st_mpointfromtext ::=

参数

WKT

text类型。WKT表述的MULTIPOINT几何类型对象,如果不是返回NULL。

srid

integer类型,空间参考系。

返回值

返回值为geometry类型。返回创建的 MULTIPOINT 对象。

注解

如果你十分确定你的几何类型列是MULTIPOINT类型,不要使用这个函数,使用ST_GeomFromText性能更高,因为该函数添加了对输入类型的校验步骤。

示例

SELECT ST_MPointFromText('MULTIPOINT(1 2, 3 4)');
ST_MPOINTFROMTEXT(GEOMETRY)      |
---------------------------------
010400000002000000010100000000000|
0000000F03F000000000000004001010|
00000000000000000084000000000000|
01040                            |
总数目:1

SELECT ST_MPointFromText('MULTIPOINT(-70.9590 42.1180, -70.9611 42.1223)', 4326);
ST_MPOINTFROMTEXT(GEOMETRY)      |
---------------------------------
0104000020E6100000020000000101000|
0004C37894160BD51C0C976BE9F1A0F4|
5400101000000E10B93A982BD51C0812|
6C286A70F4540                    |
总数目:1

SELECT ST_MPointFromText('POINT(3 4)');
ST_MPOINTFROMTEXT(GEOMETRY)      |
---------------------------------
null                             |
总数目:1

ST_MPolyFromText

ST_MPolyFromText — 根据WKT表述和给定的SRID创建一个MultiPolygon Geometry几何类型对象,如果SRID没有给定默认设置为0。

语法

st_mpolyfromtext ::=

参数

WKT

text类型。WKT表述的MultiPolygon几何类型对象,如果不是返回NULL。

srid

integer类型,空间参考系。

返回值

返回值为geometry类型。返回创建的 MultiPolygon 对象。

注解

如果你十分确定你的几何类型列是MultiPolygon类型,不要使用这个函数,使用ST_GeomFromText性能更高,因为该函数添加了对输入类型的校验步骤。

示例

SELECT ST_MPolyFromText('MULTIPOLYGON(((0 0 1,20 0 1,20 20 1,0 20 1,0 0 1),(5 5 3,5 7 3,7 7 3,7 5 3,5 5 3)))');
ST_MPOLYFROMTEXT(GEOMETRY)      |
--------------------------------
01060000800100000001030000800200|
0000050000000000000000000000000|
0000000000000000000000000F03F00|
0000000000344000000000000000000|
00000000000F03F0000000000003440|
0000000000003440000000000000F03|
F000000000000000000000000000034|
40000000000000F03F0000000000000|
0000000000000000000000000000000|
F03F050000000000000000001440000|
0000000001440000000000000084000|
000000000014400000000000001C400|
0000000000008400000000000001C40|
0000000000001C40000000000000084|
00000000000001C4000000000000014|
4000000000000008400000000000001|
4400000000000001440000000000000|
0840                            |
总数目:1

SELECT ST_MPolyFromText('MULTIPOLYGON(((0 0 1,20 0 1,20 20 1,0 20 1,0 0 1),(5 5 3,5 7 3,7 7 3,7 5 3,5 5 3)))',4326);
ST_MPOLYFROMTEXT(GEOMETRY)      |
--------------------------------
01060000A0E610000001000000010300|
0080020000000500000000000000000|
0000000000000000000000000000000|
00F03F0000000000003440000000000|
0000000000000000000F03F00000000|
0000344000000000000034400000000|
00000F03F0000000000000000000000|
0000003440000000000000F03F00000|
0000000000000000000000000000000|
00000000F03F0500000000000000000|
0144000000000000014400000000000|
0008400000000000001440000000000|
0001C40000000000000084000000000|
00001C400000000000001C400000000|
0000008400000000000001C40000000|
0000001440000000000000084000000|
0000000144000000000000014400000|
000000000840                    |
总数目:1

ST_Point

ST_Point — 根据给定的坐标值,返回ST_Point值对应的几何类型对象,这个函数是OGC 函数ST_MakePoint 的别名。

语法

st_point ::=

参数

x_lon y_lat

float类型。给定的坐标值。

返回值

返回值为geometry类型。返回创建的 point 对象。

示例

SELECT ST_Point(-71.1043443253471, 42.3150676015829);
ST_POINT(GEOMETRY)      |
------------------------
0101000000E538D293ADC651|
C0F3699A2254284540      |
总数目:1

ST_PointFromGeoHash

ST_PointFromGeoHash — 根据GeoHash字符串返回一个point几何类型对象,返回的point是GeoHash的中心点。

语法

st_pointfromgeohash ::=

参数

geohash

text类型。GeoHash字符串表述的几何类型。

default

integer类型。GeoHash类型的精度,缺省时,默认全精度。

返回值

返回值为geometry类型。返回创建的 point 对象。

示例

SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0'));
ST_ASTEXT(text)      |
---------------------
POINT(-115.172816 36.|
114646)              |
总数目:1

SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 4));
ST_ASTEXT(text)      |
---------------------
POINT(-115.13671875 3|
6.123046875)         |
总数目:1

SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10));
ST_ASTEXT(text)      |
---------------------
POINT(-115.1728159189|
22 36.1146435141563) |
总数目:1

ST_PointFromText

ST_PointFromText — 根据WKT表述和给定的SRID创建一个geometry几何类型对象,如果SRID没有给定默认设置为0,即未知。

语法

st_pointfromtext ::=

参数

WKT

text类型。如果输入的WKT对象不是point类型,返回为null,如果是无效的WKT描述对象,返回一个错误。

srid

integer类型,空间参考系。

返回值

返回值为geometry类型。返回创建的 point 对象。

注解

如果你十分确定你的几何类型列是Point类型,不要使用这个函数,使用ST_GeomFromText性能更高,因为该函数添加了对输入类型的校验步骤。

如果你根据经纬度来构造point对象,并且和OGC兼容的函数使用后相比,更关注性能和精度,请使用函数ST_MakePoint或与OGC的ST_Point函数。

示例

SELECT ST_PointFromText('POINT(-71.064544 42.28787)');
ST_POINTFROMTEXT(GEOMETRY)      |
--------------------------------
0101000000CB49287D21C451C0F0BF95|
ECD8244540                      |
总数目:1

SELECT ST_PointFromText('POINT(-71.064544 42.28787)', 4326);
ST_POINTFROMTEXT(GEOMETRY)      |
--------------------------------
0101000020E6100000CB49287D21C451|
C0F0BF95ECD8244540              |
总数目:1

ST_PointFromWKB

ST_PointFromWKB — 根据WKB表述和给定的SRID创建一个geometry几何类型对象,如果SRID没有给定默认设置为0,即未知。

语法

st_pointfromwkb ::=

参数

WKB

bytea类型。如果输入的不是point类型的描述,返回NULL。

srid

integer类型,空间参考系。

返回值

返回值为geometry类型。返回创建的 point 对象。

示例

SELECT ST_AsText(ST_PointFromWKB(ST_AsEWKB('POINT(2 5)'::geometry)));
ST_ASTEXT(text)      |
---------------------
POINT(2 5)           |
总数目:1

SELECT
ST_AsText(
ST_PointFromWKB(
ST_AsEWKB('LINESTRING(2 5, 2 6)'::geometry)
)
);
ST_ASTEXT(text)      |
---------------------
null                 |
总数目:1

ST_Polygon

ST_Polygon — 根据具体的linestring类型对象和SRID创建一个polygon对象。

语法

st_polygon ::=

参数

aLineString

geometry类型。

srid

integer类型,空间参考系。

返回值

返回值为geometry类型。返回创建的 polygon 对象。

示例

SELECT ST_Polygon(ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 29.5, 75.15 29.53)'),4326);
ST_POLYGON(GEOMETRY)      |
--------------------------
0103000020E610000001000000|
040000009A99999999C952404|
8E17A14AE873D400000000000|
4053400000000000003D40666|
6666666665340000000000080|
3D409A99999999C9524048E17|
A14AE873D40               |
总数目:1

ST_PolygonFromText

ST_PolygonFromText — 根据WKT表述和给定的SRID创建一个geometry几何类型对象,如果SRID没有给定默认设置为0,即未知。

语法

st_polygonfromtext ::=

参数

WKT

text类型。如果输入不是WKT表述的polygon对象,返回null值。

srid

integer类型,空间参考系。

返回值

返回值为geometry类型。返回创建的 polygon 对象。

示例

SELECT ST_PolygonFromText('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
ST_POLYGONFROMTEXT(GEOMETRY)      |
----------------------------------
0103000000010000000500000000000000|
000000000000000000000000000000000|
000000000000000000024400000000000|
002440000000000000244000000000000|
024400000000000000000000000000000|
00000000000000000000              |
总数目:1

SELECT ST_PolygonFromText('POINT(1 2)') IS NULL as point_is_notpoly;
POINT_IS_NOTPOLY(boolean)      |
-------------------------------
true                           |
总数目:1

ST_WKBToSQL

ST_WKBToSQL — 根据WKB描述的对象参数,返回一个geometry类型对象。这个函数是ST_GeomFromWKB的别名,但ST_WKBToSQL这个函数没有SRID参数。

语法

st_wkbtosql ::=

参数

WKB

bytea类型。

返回值

返回值为geometry类型。返回创建的 geometry 对象。

示例

SELECT ST_AsEWKT(
ST_WKBToSQL('\001\002\000\000\000\002\000\000\000\037\205\353Q 
\270~\\\300\323Mb\020X\231C@\020X9\264\310~\\\300)\\\217\302\365\230 
C@')
);
ST_ASEWKT(text)      |
---------------------
LINESTRING(2.57586e+3|
02 0,5.29411e+302 0) |
总数目:1


SELECT ST_AsText(ST_WKBToSQL(ST_AsEWKB('POINT(2 5)'::geometry)));
ST_ASTEXT(text)      |
---------------------
POINT(2 5)           |
总数目:1

ST_WKTToSQL

ST_WKTToSQL — 根据WKT描述的对象参数,返回一个geometry类型对象,这个函数是ST_GeomFromWKT的别名。

语法

st_wkttosql ::=

参数

WKT

text类型。

返回值

返回值为geometry类型。返回创建的 geometry 对象。

示例

SELECT ST_WKTToSQL('SRID=4269;LINESTRING(-71.160281 42.258729,-71.160837 42.259113,-71.161144 42.25932)');
ST_WKTTOSQL(GEOMETRY)      |
---------------------------
0102000020AD10000003000000E|
44A3D0B42CA51C06EC328081E2|
1454027BF45274BCA51C0F67B6|
29D2A214540957CEC2E50CA51C|
07099D36531214540          |
总数目:1

SELECT ST_AsEWKT(ST_WKTToSQL(ST_AsText(geom_type))) from geom_table where id =1 or id =36;
ST_ASEWKT(text)      |
---------------------
MULTILINESTRING((0 0,|
1 1,1 2),(1 2,3 2,0 |
0))                  |
---------------------
null                 |
总数目:2