這些函數將 Well-Known Text (WKT) 表示法以及(選擇性地)空間參考系統識別碼 (SRID) 作為引數。它們會傳回對應的幾何。如需 WKT 格式的說明,請參閱Well-Known Text (WKT) 格式。
本節中的函數會偵測笛卡爾或地理空間參考系統 (SRS) 中的引數,並傳回適合 SRS 的結果。
ST_GeomFromText()
會接受任何幾何類型的 WKT 值作為其第一個引數。其他函數提供類型特定的建構函數,用於建構每種幾何類型的幾何值。
接受 MultiPoint
值的 WKT 格式表示法的函數(例如 ST_MPointFromText()
和 ST_GeomFromText()
)允許值內的個別點以括號括住。例如,以下兩個函數呼叫都是有效的
ST_MPointFromText('MULTIPOINT (1 1, 2 2, 3 3)')
ST_MPointFromText('MULTIPOINT ((1 1), (2 2), (3 3))')
接受 WKT 幾何集合引數的函數(例如 ST_GeomFromText()
)可理解 OpenGIS 'GEOMETRYCOLLECTION EMPTY'
標準語法和 MySQL 'GEOMETRYCOLLECTION()'
非標準語法。產生 WKT 值的函數(例如 ST_AsWKT()
)會產生 'GEOMETRYCOLLECTION EMPTY'
標準語法
mysql> SET @s1 = ST_GeomFromText('GEOMETRYCOLLECTION()');
mysql> SET @s2 = ST_GeomFromText('GEOMETRYCOLLECTION EMPTY');
mysql> SELECT ST_AsWKT(@s1), ST_AsWKT(@s2);
+--------------------------+--------------------------+
| ST_AsWKT(@s1) | ST_AsWKT(@s2) |
+--------------------------+--------------------------+
| GEOMETRYCOLLECTION EMPTY | GEOMETRYCOLLECTION EMPTY |
+--------------------------+--------------------------+
除非另有指定,否則本節中的函數會依以下方式處理其幾何引數
如果任何幾何引數是
NULL
或不是語法正確的幾何,或如果 SRID 引數是NULL
,則傳回值是NULL
。依預設,地理座標(緯度、經度)會按照幾何引數的空間參考系統所指定的順序解譯。可以提供選擇性的
options
引數來覆寫預設的軸順序。options
由以逗號分隔的
清單組成。唯一允許的key
=value
key
值是axis-order
,允許的值為lat-long
、long-lat
和srid-defined
(預設值)。如果
options
引數是NULL
,則傳回值是NULL
。如果options
引數無效,則會發生錯誤以指示原因。如果 SRID 引數參照未定義的空間參考系統 (SRS),則會發生
ER_SRS_NOT_FOUND
錯誤。對於地理 SRS 幾何引數,如果任何引數的經度或緯度超出範圍,則會發生錯誤
如果經度值不在 (-180, 180] 範圍內,則會發生
ER_LONGITUDE_OUT_OF_RANGE
錯誤。如果緯度值不在 [-90, 90] 範圍內,則會發生
ER_LATITUDE_OUT_OF_RANGE
錯誤。
顯示的範圍是以度為單位。如果 SRS 使用另一個單位,則範圍會使用其單位中的對應值。由於浮點算術,確切的範圍限制會略有偏差。
這些函數可用於從 WKT 值建立幾何圖形
ST_GeomCollFromText(
,wkt
[,srid
[,options
]])ST_GeometryCollectionFromText(
,wkt
[,srid
[,options
]])ST_GeomCollFromTxt(
wkt
[,srid
[,options
]])使用其 WKT 表示法和 SRID 建構一個
GeometryCollection
值。這些函數會按照本節的簡介中所述的方式處理其參數。
mysql> SET @g = "MULTILINESTRING((10 10, 11 11), (9 9, 10 10))"; mysql> SELECT ST_AsText(ST_GeomCollFromText(@g)); +--------------------------------------------+ | ST_AsText(ST_GeomCollFromText(@g)) | +--------------------------------------------+ | MULTILINESTRING((10 10,11 11),(9 9,10 10)) | +--------------------------------------------+
ST_GeomFromText(
,wkt
[,srid
[,options
]])ST_GeometryFromText(
wkt
[,srid
[,options
]])使用其 WKT 表示法和 SRID 建構任何類型的幾何值。
這些函數會按照本節的簡介中所述的方式處理其參數。
ST_LineFromText(
,wkt
[,srid
[,options
]])ST_LineStringFromText(
wkt
[,srid
[,options
]])使用其 WKT 表示法和 SRID 建構一個
LineString
值。這些函數會按照本節的簡介中所述的方式處理其參數。
ST_MLineFromText(
,wkt
[,srid
[,options
]])ST_MultiLineStringFromText(
wkt
[,srid
[,options
]])使用其 WKT 表示法和 SRID 建構一個
MultiLineString
值。這些函數會按照本節的簡介中所述的方式處理其參數。
ST_MPointFromText(
,wkt
[,srid
[,options
]])ST_MultiPointFromText(
wkt
[,srid
[,options
]])使用其 WKT 表示法和 SRID 建構一個
MultiPoint
值。這些函數會按照本節的簡介中所述的方式處理其參數。
ST_MPolyFromText(
,wkt
[,srid
[,options
]])ST_MultiPolygonFromText(
wkt
[,srid
[,options
]])使用其 WKT 表示法和 SRID 建構一個
MultiPolygon
值。這些函數會按照本節的簡介中所述的方式處理其參數。
ST_PointFromText(
wkt
[,srid
[,options
]])使用其 WKT 表示法和 SRID 建構一個
Point
值。ST_PointFromText()
按照本節的簡介中所述的方式處理其參數。ST_PolyFromText(
,wkt
[,srid
[,options
]])ST_PolygonFromText(
wkt
[,srid
[,options
]])使用其 WKT 表示法和 SRID 建構一個
Polygon
值。這些函數會按照本節的簡介中所述的方式處理其參數。