訪問器函數可用于從不同的字符串中獲取BIGINT、DOUBLE或GEOMETRY類型的值。
ST_XMax:返回g1的X坐標上的最大值。
ST_YMax:返回g1的Y坐標上的最大值。
ST_XMin:返回g1的X坐標上的最小值。
ST_YMin:返回g1的Y坐標上的最小值。
ST_Distance:返回g1、g2之間的直線距離。
ST_Distance_Sphere:返回g1、g2之間的球面距離,可以指定球的半徑Radius,Radius默認值為6370986米。
ST_Area:返回g1的歐幾里得2維空間值。
ST_Centroid:返回g1的中心點對象。
ST_ConvexHull:返回g1的中最小化的凸Geometry對象。
ST_CoordDim:返回g1的中坐標尺寸。
ST_Dimension:返回g1中固有的Dimension,肯定小于或者等于coordinate dimension。
ST_IsClosed:如果LineString或者Muti-LineString的start和end是一致的,返回1(1為True,0為False)。
ST_IsEmpty:如果g1是一個空的geometrycollection,或polygon,point,返回0(0為True,1為False)。
ST_IsValid:返回g1是否為合法的格式,1為True。
Geometry_invalid_reason:返回g1是不是合法的格式的原因。
ST_Length:如果輸入是LineString或者Multi-LineString的長度(計算是基于Euclidean),返回g1直線長度;如果輸入是GEOGRAPHY類型的格式,返回的是球面上的Greate-circle的長度。
Line_locate_point:返回一個float值,標識的是給定點在線上的比率。
Line_interpolate_point:給定一個比率和線,返回這個比率的點。
Line_interpolate_points:給定一個比率和線,返回按照這個比率分割的所有點。
ST_NumInteriorRing:返回Polygon的內部環的集合的基數。
ST_InteriorRings:返回在指定幾何體中找到的所有內部環的幾何體數組,如果多邊形沒有內部環,則返回空數組。如果指定的幾何體為空,則返回null。如果指定的幾何體不是多邊形,則會引發錯誤。
ST_NumGeometries:以整數形式返回集合中的幾何體數。如果幾何體是幾何體的集合(例如GEOMETRYCOLLECTION或MULTI*對象),則返回幾何體的數量。單個幾何體返回1;空幾何體返回0。對象中的空幾何體計為一個幾何體。
ST_GeometryN:返回位于指定整數索引的 GEOMETRY元素(作為GEOMETRY數據類型)。索引從1開始。如果指定的幾何體是幾何體集合(例如,GEOMETRYCOLLECTION或MULTI*對象),則將返回指定索引處的幾何體。如果指定的索引小于1或大于集合中的元素總數,則返回null。
ST_PointN:返回指定整數索引處的指定行字符串頂點(作為點幾何體數據類型)。索引從1開始。如果給定索引小于1或大于集合中的元素總數,則返回null。
ST_Geometries:返回指定集合中的幾何體數組。如果指定的幾何體不是多幾何體,則返回一個元素數組。如果指定的幾何體為空,則返回null。
ST_InteriorRingN:返回指定索引處的內部環元素(索引從1開始)。如果給定索引小于1或大于指定幾何體中的內部環總數,則返回null。如果指定的幾何體不是多邊形,則引發錯誤。
ST_NumPoints:返回幾何體中的點數。
ST_IsRing:當且僅當Line類型閉合且簡單時返回1(1為True,0為False)。
ST_StartPoint:返回Line GEOMETRY數據類型中Point GEOMETRY數據類型的第一個點。
Simplify_geometry:使用Ramer-Douglas-Peucker算法返回的GEOMETRY數據類型是指定GEOMETRY的簡化版本。避免創建無效的派生幾何體(特別是多邊形)。
ST_EndPoint:返回Line GEOMETRY數據類型中Point GEOMETRY數據類型的最后一個點。
ST_Points:從指定的線串幾何體對象返回點數組。
ST_X:返回點的X坐標。
ST_Y:返回點的Y坐標。
ST_GeometryType:以VARCHAR形式返回幾何體的類型。
ST_XMax
ST_XMax(g1)
命令說明:返回g1的X坐標上的最大值。
返回值類型:DOUBLE。
示例:
SELECT ST_XMax(ST_GeomFromText('POINT (1.5 2.5)'));
返回結果:
+----------------------------------------------+ | ST_XMax(ST_GeomFromText('POINT (1.5 2.5)')) | +----------------------------------------------+ | 1.5 |
ST_YMax
ST_YMax(g1)
命令說明:返回g1的Y坐標上的最大值。
返回值類型:DOUBLE。
示例:
SELECT ST_YMax(ST_GeomFromText('POINT (1.5 2.5)'));
返回結果:
+----------------------------------------------+ | ST_YMax(ST_GeomFromText('POINT (1.5 2.5)')) | +----------------------------------------------+ | 2.5 |
ST_XMin
ST_XMin(g1)
命令說明:返回g1的X坐標上的最小值。
返回值類型:DOUBLE。
示例:
SELECT ST_XMin(ST_GeomFromText('MULTIPOINT (1 2, 2 4, 3 6, 4 8)'));
返回結果:
+-------------------------------------------------------------+ | ST_XMin(ST_GeomFromText('MULTIPOINT (1 2, 2 4, 3 6, 4 8)')) | +-------------------------------------------------------------+ | 1.0 |
ST_YMin
ST_YMin(g1)
命令說明:返回g1的Y坐標上的最小值。
返回值類型:DOUBLE。
示例:
SELECT ST_YMin(ST_GeomFromText('MULTIPOINT (1 2, 2 4, 3 6, 4 8)'));
返回結果:
+-------------------------------------------------------------+ | ST_YMin(ST_GeomFromText('MULTIPOINT (1 2, 2 4, 3 6, 4 8)')) | +-------------------------------------------------------------+ | 2.0 |
ST_Distance
ST_Distance(g1, g2)
命令說明:返回g1、g2之間的直線距離。
返回值類型:DOUBLE。
示例:
SELECT ST_Distance(ST_Point(1,1), ST_Point(2,2));
返回結果:
+-------------------------------------------+ | ST_Distance(ST_Point(1,1), ST_Point(2,2)) | +-------------------------------------------+ | 1.4142135623730951 |
ST_Distance_Sphere
ST_Distance_Sphere(g1, g2 [, radius])
命令說明:返回g1、g2之間的球面距離,可以指定球的半徑Radius,Radius默認值為6370986米。
返回值類型:DOUBLE。
示例:
SELECT ST_Distance_Sphere(point(1,1), point(2,2));
返回結果:
+--------------------------------------------+ | ST_Distance_Sphere(point(1,1), point(2,2)) | +--------------------------------------------+ | 157225.08654191086 |
ST_Area
ST_Area(g1)
命令說明:返回g1的歐幾里得2維空間值。
返回值類型:DOUBLE。
示例:
SELECT ST_Area(ST_GeometryFromText('POLYGON ((2 2, 2 6, 6 6, 6 2))'));
返回結果:
+------------------------------------------------------------------------+ | ST_Area(ST_GeometryFromText('POLYGON ((2 2, 2 6, 6 6, 6 2))')) | +------------------------------------------------------------------------+ | 16.0 |
ST_Centroid
ST_Centroid(g1)
命令說明:返回g1的中心點對象。
返回值類型:GEOMETRY類型的對象,直接通過SELECT查詢函數結果將顯示亂碼,使用ST_AsText函數可以將返回結果轉換為可識別的文本。
示例:
SELECT ST_AsText(ST_Centroid(ST_GeometryFromText('POINT (3 5)')));
返回結果:
+-------------------------------------------------------------------+ | ST_AsText(ST_Centroid(ST_GeometryFromText('POINT (3 5)'))) | +-------------------------------------------------------------------+ | POINT (3 5) |
ST_ConvexHull
ST_ConvexHull(g1)
命令說明:返回g1的中最小化的凸Geometry對象。
返回值類型:GEOMETRY類型的對象,直接通過SELECT查詢函數結果將顯示亂碼,使用ST_AsText函數可以將返回結果轉換為可識別的文本。
示例:
SELECT ST_AsText(ST_ConvexHull(ST_GeometryFromText('LINESTRING (20 20, 30 30)')));
返回結果:
+--------------------------------------------------------------------------------+ | ST_AsText(ST_ConvexHull(ST_GeometryFromText('LINESTRING (20 20, 30 30)'))) | +--------------------------------------------------------------------------------+ | POLYGON ((1 1, 5 1, 6 6, 1 1)) |
ST_CoordDim
ST_CoordDim(g1)
命令說明:返回g1的中坐標尺寸。
返回值類型:TINYINT。
示例:
SELECT ST_CoordDim(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 4, 4 1))'));
返回結果:
+--------------------------------------------------------------------------------+ | ST_CoordDim(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 4, 4 1))')) | +--------------------------------------------------------------------------------+ | 2 |
ST_Dimension
ST_Dimension(g1)
命令說明:返回g1中固有的Dimension,肯定小于或者等于Coordinate Dimension。
返回值類型:TINYINT。
示例:
SELECT ST_Dimension(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 4, 4 1))'));
返回結果:
+--------------------------------------------------------------------------------+ | ST_Dimension(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 4, 4 1))')) | +--------------------------------------------------------------------------------+ | 2 |
ST_IsClosed
ST_IsClosed(g1)
命令說明:如果LineString或者Muti-LineString的start和end是一致的,返回1(1為True,0為False)。
返回值類型:INT。
示例:
SELECT ST_IsClosed(ST_GeometryFromText('LINESTRING (1 1, 2 2, 1 3, 1 1)'));
返回結果:
+-------------------------------------------------------------------------------+ | ST_IsClosed(ST_GeometryFromText('LINESTRING (1 1, 2 2, 1 3, 1 1)')) | +-------------------------------------------------------------------------------+ | 1 |
ST_IsEmpty
ST_IsEmpty(g1)
命令說明:如果g1是一個空的GeometryCollection、Polygon或Point,返回0(0為True,1為False)。
返回值類型:INT。
示例:
SELECT ST_IsEmpty(ST_GeometryFromText('POINT (1.5 2.5)'));
返回結果:
+-------------------------------------------------------------+ | ST_IsEmpty(ST_GeometryFromText('POINT (1.5 2.5)')) | +-------------------------------------------------------------+ | 0 |
ST_IsValid
ST_IsValid(g1)
命令說明:返回g1是否為合法的格式,1為True。
返回值類型:INT。
示例:
SELECT ST_IsValid(ST_GeometryFromText('LINESTRING (1 1, 2 2, 1 3, 1 1)'));
返回結果:
+------------------------------------------------------------------------+ | ST_IsValid(ST_GeometryFromText('LINESTRING (1 1, 2 2, 1 3, 1 1)')) | +-------------------------------------------------------------------- ---+ | 1 |
Geometry_invalid_reason
Geometry_invalid_reason(g1)
命令說明:返回g1是不是合法的格式的原因。
返回值類型:VARCHAR。
示例:
SELECT Geometry_invalid_reason(ST_GeometryFromText('POLYGON ((0 0, 1 1, 0 1, 1 0, 0 0))'));
返回結果:
+----------------------------------------------------------------------------------------+ | Geometry_invalid_reason(ST_GeometryFromText('POLYGON ((0 0, 1 1, 0 1, 1 0, 0 0))')) | +----------------------------------------------------------------------------------------+ | Intersecting or overlapping segments at or near (1.0 0.0) and (1.0 1.0) |
ST_Length
ST_Length(g1)
命令說明:如果輸入是LineString或者Multi-LineString的長度(計算是基于Euclidean),返回g1直線長度;如果輸入是GEOGRAPHY類型的格式,返回的是球面上的Greate-circle的長度。
返回值類型:DOUBLE。
示例:
SELECT ST_Length(ST_GeometryFromText('LINESTRING (1 1, 1 2)'));
返回結果:
+----------------------------------------------------------+ | ST_Length(ST_GeometryFromText('LINESTRING (1 1, 1 2)')) | +----------------------------------------------------------+ | 1.0 |
Line_locate_point
Line_locate_point(g1, g2)
命令說明:返回一個float值,表示給定點在線上的比率。
返回值類型:DOUBLE。
示例:
SELECT Line_locate_point(ST_GeometryFromText('LINESTRING (0 0, 0 1)'), ST_Point(0, 0.2));
返回結果:
+-------------------------------------------------------------------------------------+ | Line_locate_point(ST_GeometryFromText('LINESTRING (0 0, 0 1)'), ST_Point(0, 0.2)) | +-------------------------------------------------------------------------------------+ | 0.2 |
Line_interpolate_point
Line_interpolate_point(g1, d)
命令說明:給定一個比率和線,返回這個比率的點。
返回值類型:GEOMETRY類型的對象,直接通過SELECT查詢函數結果將顯示亂碼,使用ST_AsText函數可以將返回結果轉換為可識別的文本。
示例:
SELECT ST_AsText(Line_interpolate_point(ST_GeometryFromText('LINESTRING (0 0, 2 2)'), 0.5));
返回結果:
+----------------------------------------------------------------------------------------+ | ST_AsText(Line_interpolate_point(ST_GeometryFromText('LINESTRING (0 0, 2 2)'), 0.5)) | +----------------------------------------------------------------------------------------+ | POINT (1 1) |
Line_interpolate_points
Line_interpolate_points(g1, d)
命令說明:給定一個比率和線,返回按照這個比率分割的所有點。
返回值類型:GEOMETRY類型的對象,直接通過SELECT查詢函數結果將顯示亂碼,使用transform函數將Lambda表達式應用到數組的每個元素。
示例:
SELECT transform(Line_interpolate_points(ST_GeometryFromText('LINESTRING (0 0, 1 1, 10 10)'), 0.4), x -> ST_AsText(x));
返回結果:
+-----------------------------------------------------------------------------------------------------------------+ | transform(Line_interpolate_points(ST_GeometryFromText('LINESTRING (0 0, 1 1, 10 10)'), 0.4), x -> ST_AsText(x)) | +-----------------------------------------------------------------------------------------------------------------+ | ["POINT (4.000000000000001 4.000000000000001)","POINT (8 8)"] |
ST_NumInteriorRing
ST_NumInteriorRing(g1)
命令說明:返回Polygon的內部環的集合的基數。
返回值類型:BIGINT。
示例:
SELECT ST_NumInteriorRing(ST_GeometryFromText('POLYGON ((0 0, 0 5, 5 5, 5 0, 0 0))'));
返回結果:
+-------------------------------------------------------------------------------------+ | ST_NumInteriorRing(ST_GeometryFromText('POLYGON ((0 0, 0 5, 5 5, 5 0, 0 0))')) | +-------------------------------------------------------------------------------------+ | 0 |
ST_InteriorRings
ST_InteriorRings(g1)
命令說明:返回在指定幾何體中找到的所有內部環的幾何體數組,如果多邊形沒有內部環,則返回空數組。如果指定的幾何體為空,則返回 null。如果指定的幾何體不是多邊形,則會引發錯誤。
返回值類型:Array[GEOMETRY[GEOMETRY]。
示例:
SELECT ST_InteriorRings(ST_GeometryFromText('POLYGON EMPTY'));
返回結果:
+----------------------------------------------------------------------+ | ST_InteriorRings(ST_GeometryFromText('POLYGON EMPTY')) | +----------------------------------------------------------------------+ | null |
ST_NumGeometries
ST_NumGeometries(g1)
命令說明:以整數形式返回集合中的幾何體數。如果幾何體是幾何體的集合 (例如GEOMETRYCOLLECTION或MULTI* 對象),則返回幾何體的數量。單個幾何體返回1;空幾何體返回0。對象中的空幾何體計為一個幾何體。
返回值類型:INT。
示例:
SELECT ST_NumGeometries(ST_GeometryFromText('POINT (1 2)'));
返回結果:
+----------------------------------------------------------------------+ | ST_NumGeometries(ST_GeometryFromText('POINT (1 2)')) | +----------------------------------------------------------------------+ | 1 |
ST_GeometryN
ST_GeometryN(g, i)
命令說明:返回位于指定整數索引的GEOMETRY元素(作為GEOMETRY數據類型)。索引從1開始。如果指定的幾何體是幾何體集合(例如,GEOMETRYCOLLECTION或MULTI*對象),則返回指定索引處的幾何體。如果指定的索引小于1或大于集合中的元素總數,則返回null。
返回值類型:GEOMETRY類型的對象,直接通過SELECT查詢函數結果將顯示亂碼,使用ST_AsText函數可以將返回結果轉換為可識別的文本。
示例:
SELECT ST_ASText(ST_GeometryN(ST_GeometryFromText('POINT (1 2)'), 1));
返回結果:
+---------------------------------------------------------------------------------+ | ST_ASText(ST_GeometryN(ST_GeometryFromText('POINT (1 2)'), 1)) | +---------------------------------------------------------------------------------+ | POINT (1 2) |
ST_PointN
ST_PointN(g, i)
命令說明:返回指定整數索引處的指定行字符串頂點(作為點幾何體數據類型)。索引從1開始。如果給定索引小于1或大于集合中的元素總數,則返回null。
返回值類型:GEOMETRY類型的對象,直接通過SELECT查詢函數結果將顯示亂碼,使用ST_AsText函數可以將返回結果轉換為可識別的文本。
示例:
SELECT ST_ASText(ST_PointN(ST_GeometryFromText('LINESTRING(1 2, 3 4, 5 6, 7 8)'), 3));
返回結果:
+---------------------------------------------------------------------------------------+ | ST_ASText(ST_PointN(ST_GeometryFromText('LINESTRING(1 2, 3 4, 5 6, 7 8)'), 3)) | +---------------------------------------------------------------------------------------+ | POINT (5 6) |
ST_Geometries
ST_Geometries(g)
命令說明:返回指定集合中的幾何體數組。如果指定的幾何體不是多幾何體,則返回一個元素數組。如果指定的幾何體為空,則返回null。
返回值類型:GEOMETRY類型的對象,直接通過SELECT查詢函數結果將顯示亂碼,使用transform函數將Lambda表達式應用到數組的每個元素。
示例:
SELECT transform(ST_Geometries(ST_GeometryFromText('POINT (1 5)')), x -> ST_ASText(x));
返回結果:
+---------------------------------------------------------------------------------------+ | transform(ST_Geometries(ST_GeometryFromText('POINT (1 5)')), x -> ST_ASText(x)) | +---------------------------------------------------------------------------------------+ | POINT (1 5) |
ST_InteriorRingN
ST_InteriorRingN(g, d)
命令說明:返回指定索引處的內部環元素(索引從1開始)。如果給定索引小于1或大于指定幾何體中的內部環總數,則返回null。如果指定的幾何體不是多邊形,則引發錯誤。
返回值類型:GEOMETRY類型的對象,直接通過SELECT查詢函數結果將顯示亂碼,使用ST_AsText函數可以將返回結果轉換為可識別的文本。
示例:
SELECT ST_ASText(ST_InteriorRingN(ST_GeometryFromText('POLYGON ((0 0, 0 3, 3 3, 3 0, 0 0), (1 1, 1 2, 2 2, 2 1, 1 1))'), 1));
返回結果:
+-----------------------------------------------------------------------------------------------------------------------------+ | ST_ASText(ST_InteriorRingN(ST_GeometryFromText('POLYGON ((0 0, 0 3, 3 3, 3 0, 0 0), (1 1, 1 2, 2 2, 2 1, 1 1))'), 1)) | +-----------------------------------------------------------------------------------------------------------------------------+ | LINESTRING (1 1, 1 2, 2 2, 2 1, 1 1) |
ST_NumPoints
ST_NumPoints(g)
命令說明:返回幾何體中的點數(類型為BIGINT)。
返回值類型:BIGINT。
示例:
SELECT ST_NumPoints(ST_GeometryFromText('POINT (1 2)'));
返回結果:
+-------------------------------------------------------------------------+ | ST_NumPoints(ST_GeometryFromText('POINT (1 2)')) | +-------------------------------------------------------------------------+ | 1 |
ST_IsRing
ST_IsRing(g)
命令說明:當且僅當line類型閉合且簡單時返回1(1為True,0為False)。
返回值類型:INT。
示例:
SELECT ST_IsRing(ST_GeometryFromText('LINESTRING (1 1, 1 3, 2 3, 2 1, 1 1)'));
返回結果:
+---------------------------------------------------------------------------------+ | ST_IsRing(ST_GeometryFromText('LINESTRING (1 1, 1 3, 2 3, 2 1, 1 1)')) | +---------------------------------------------------------------------------------+ | 1 |
ST_StartPoint
ST_StartPoint(g)
命令說明:返回Line Geometry數據類型中Point Geometry數據類型的第一個點。
返回值類型:GEOMETRY類型的對象,直接通過SELECT查詢函數結果將顯示亂碼,使用ST_AsText函數可以將返回結果轉換為可識別的文本。
示例:
SELECT ST_AsText(ST_StartPoint(ST_GeometryFromText('LINESTRING (8 4, 4 8, 5 6)')));
返回結果:
+-------------------------------------------------------------------------------------+ | ST_AsText(ST_StartPoint(ST_GeometryFromText('LINESTRING (8 4, 4 8, 5 6)'))) | +-------------------------------------------------------------------------------------+ | POINT (8 4) |
Simplify_geometry
Simplify_geometry(g, d)
命令說明:使用Ramer-Douglas-Peucker算法返回的GEOMETRY數據類型是指定GEOMETRY的簡化版本。避免創建無效的派生幾何體(特別是多邊形)。
返回值類型:GEOMETRY類型的對象,直接通過SELECT查詢函數結果將顯示亂碼,使用ST_AsText函數可以將返回結果轉換為可識別的文本。
示例:
SELECT ST_AsText(Simplify_geometry(ST_GeometryFromText('POLYGON ((1 0, 2 1, 3 1, 3 1, 4 1, 1 0))'), 1.5));
返回結果:
+-----------------------------------------------------------------------------------------------------------+ | ST_AsText(Simplify_geometry(ST_GeometryFromText('POLYGON ((1 0, 2 1, 3 1, 3 1, 4 1, 1 0))'), 1.5)) | +-----------------------------------------------------------------------------------------------------------+ | POLYGON ((1 0, 4 1, 2 1, 1 0))) |
ST_EndPoint
ST_EndPoint(g)
命令說明:返回Line Geometry數據類型中Point Geometry數據類型的最后一個點。
返回值類型:GEOMETRY類型的對象,直接通過SELECT查詢函數結果將顯示亂碼,使用ST_AsText函數可以將返回結果轉換為可識別的文本。
示例:
SELECT ST_AsText(ST_EndPoint(ST_GeometryFromText('LINESTRING (8 4, 4 8, 5 6)')));
返回結果:
+-----------------------------------------------------------------------------------+ | ST_AsText(ST_EndPoint(ST_GeometryFromText('LINESTRING (8 4, 4 8, 5 6)'))) | +-----------------------------------------------------------------------------------+ | POINT (5 6) |
ST_Points
ST_Points(g)
命令說明:從指定的線串幾何體對象返回點數組。
返回值類型:GEOMETRY類型的對象,直接通過SELECT查詢函數結果將顯示亂碼,使用transform函數將Lambda表達式應用到數組的每個元素。
示例:
SELECT transform(ST_Points(ST_GeometryFromText('POINT (0 0)')), x -> ST_AsText(x));
返回結果:
+-----------------------------------------------------------------------------------+ | transform(ST_Points(ST_GeometryFromText('POINT (0 0)')), x -> ST_AsText(x)) | +-----------------------------------------------------------------------------------+ | ["POINT (0 0)"] |
ST_X
ST_X(g)
命令說明:返回點的X坐標。
返回值類型:DOUBLE。
示例:
SELECT ST_X(ST_GeometryFromText('POINT (1 2)'));
返回結果:
+------------------------------------------------+ |ST_X(ST_GeometryFromText('POINT (1 2)')) | +------------------------------------------------+ | 1.0 |
ST_Y
ST_Y(g)
命令說明:返回點的Y坐標。
返回值類型:DOUBLE。
示例:
SELECT ST_Y(ST_GeometryFromText('POINT (1 2)'));
返回結果:
+------------------------------------------------+ |ST_Y(ST_GeometryFromText('POINT (1 2)')) | +------------------------------------------------+ | 2.0 |
ST_GeometryType
ST_GeometryType(g1)
命令說明:返回幾何體的類型。
返回值類型:VARCHAR。
示例:
SELECT ST_GeometryType(ST_Point(1, 4));
返回結果:
+---------------------------------------+ |ST_GeometryType(ST_Point(1, 4)) | +---------------------------------------+ | ST_Point |