這些函數以 Well-Known Text (WKT) 表示法以及可選的空間參考系統識別碼 (SRID) 作為引數。它們會傳回對應的幾何。如需 WKT 格式的描述,請參閱Well-Known Text (WKT) 格式。
本節中的函數會偵測笛卡爾或地理空間參考系統 (SRS) 中的引數,並傳回適合 SRS 的結果。
ST_GeomFromText()
接受任何幾何類型的 WKT 值作為其第一個引數。其他函數提供特定類型的建構函數,以建構每個幾何類型的幾何值。
諸如 ST_MPointFromText()
和 ST_GeomFromText()
等接受 MultiPoint
值的 WKT 格式表示法的函數,允許值內的個別點以括號括住。例如,下列兩個函數呼叫都是有效的
ST_MPointFromText('MULTIPOINT (1 1, 2 2, 3 3)')
ST_MPointFromText('MULTIPOINT ((1 1), (2 2), (3 3))')
諸如 ST_GeomFromText()
等接受 WKT 幾何集合引數的函數會理解 OpenGIS 'GEOMETRYCOLLECTION EMPTY'
標準語法和 MySQL 'GEOMETRYCOLLECTION()'
非標準語法。諸如 ST_AsWKT()
等產生 WKT 值的函數會產生 '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
值。這些函數會按照本節簡介中的說明處理其引數。