gis-wkt-functions.md 7.1 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
### 12.17.3 从 WKT 值创建几何值的函数

这些函数将众所周知的文本 (WKT) 表示形式和可选的空间参考系统标识符 (SRID) 作为参数。它们返回相应的几何图形。有关 WKT 格式的说明,请参阅[知名文本 (WKT) 格式](gis-data-formats.html#gis-wkt-format).

本节中的函数检测笛卡尔或地理空间参考系统 (SRS) 中的参数,并返回适合 SRS 的结果。

[`ST_GeomFromText()`](gis-wkt-functions.html#function_st-geomfromtext)接受任何几何类型的 WKT 值作为其第一个参数。其他函数提供特定类型的构造函数,用于构造每种几何类型的几何值。

功能如[`ST_MPointFromText()`](gis-wkt-functions.html#function_st-mpointfromtext)[`ST_GeomFromText()`](gis-wkt-functions.html#function_st-geomfromtext)接受 WKT 格式的表示`多点`values 允许值中的各个点用括号括起来。例如,以下两个函数调用都是有效的:

```
ST_MPointFromText('MULTIPOINT (1 1, 2 2, 3 3)')
ST_MPointFromText('MULTIPOINT ((1 1), (2 2), (3 3))')
```

功能如[`ST_GeomFromText()`](gis-wkt-functions.html#function_st-geomfromtext)接受 WKT 几何集合参数的人理解 OpenGIS`'几何集合为空'`标准语法和 MySQL`'几何集合()'`非标准语法。功能如[`ST_AsWKT()`](gis-format-conversion-functions.html#function_st-astext)产生 WKT 值的产生`'几何集合为空'`标准语法:

```
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 |
+--------------------------+--------------------------+
```

除非另有说明,本节中的函数按如下方式处理其几何参数:

-   如果任何几何参数是`空值`或者不是语法格式正确的几何,或者如果 SRID 参数是`空值`,返回值为`空值`.

-   默认情况下,地理坐标(纬度、经度)按照几何参数的空间参考系统指定的顺序进行解释。一个可选的*`选项`*可以给出参数以覆盖默认轴顺序。`选项`由逗号分隔的列表组成`*`钥匙`*=*`价值`*`.唯一允许的*`钥匙`*值为`轴序`, 允许的值为`经纬度`,`长纬度``网格定义`(默认)。

    如果*`选项`*论据是`空值`,返回值为`空值`.如果*`选项`*参数无效,发生错误以说明原因。

-   如果 SRID 参数引用未定义的空间参考系统 (SRS),则[`ER_SRS_NOT_FOUND`](https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html#error_er_srs_not_found)发生错误。

-   对于地理 SRS 几何参数,如果任何参数的经度或纬度超出范围,则会发生错误:

    -   如果经度值不在 (−180, 180] 范围内,则[`ER_LONGITUDE_OUT_OF_RANGE`](https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html#error_er_longitude_out_of_range)发生错误。

    -   如果纬度值不在范围内[−90, 90], 一个[`ER_LATITUDE_OUT_OF_RANGE`](https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html#error_er_latitude_out_of_range)发生错误。

        显示的范围以度为单位。如果 SRS 使用另一个单位,则范围使用其单位中的相应值。由于浮点运算,确切的范围限制略有偏差。

    这些函数可用于从 WKT 值创建几何图形:

-   [](<>)

    [`ST_GeomColFromText(*`周转`* [, *`斯里德`* [, *`选项`*]])`](gis-wkt-functions.html#function_st-geomcollfromtext),[`ST_GeometryCollectionFromText(*`周转`* [, *`斯里德`* [, *`选项`*]])`](gis-wkt-functions.html#function_st-geomcollfromtext), [`ST_GeomColFromTxt(*`周转`* [, *`斯里德`* [, *`选项`*]])`](gis-wkt-functions.html#function_st-geomcollfromtext)

    [](<>)[](<>)

    构造一个`几何集合`值使用其 WKT 表示和 SRID。

    这些函数处理它们的参数,如本节介绍中所述。

    ```
    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(*`周转`* [, *`斯里德`* [, *`选项`*]])`](gis-wkt-functions.html#function_st-geomfromtext), [`ST_GeometryFromText(*`周转`* [, *`斯里德`* [, *`选项`*]])`](gis-wkt-functions.html#function_st-geomfromtext)

    [](<>)[](<>)

    使用其 WKT 表示和 SRID 构造任何类型的几何值。

    这些函数处理它们的参数,如本节介绍中所述。

-   [](<>)

    [`ST_LineFromText(*`周转`* [, *`斯里德`* [, *`选项`*]])`](gis-wkt-functions.html#function_st-linefromtext), [`ST_LineStringFromText(*`周转`* [, *`斯里德`* [, *`选项`*]])`](gis-wkt-functions.html#function_st-linefromtext)

    [](<>)[](<>)

    构造一个`线串`值使用其 WKT 表示和 SRID。

    这些函数处理它们的参数,如本节介绍中所述。

-   [](<>)

    [`ST_MLineFromText(*`周转`* [, *`斯里德`* [, *`选项`*]])`](gis-wkt-functions.html#function_st-mlinefromtext), [`ST_MultiLineStringFromText(*`周转`* [, *`斯里德`* [, *`选项`*]])`](gis-wkt-functions.html#function_st-mlinefromtext)

    [](<>)[](<>)

    构造一个`多行字符串`值使用其 WKT 表示和 SRID。

    这些函数处理它们的参数,如本节介绍中所述。

-   [](<>)

    [`ST_MPointFromText(*`周转`* [, *`斯里德`* [, *`选项`*]])`](gis-wkt-functions.html#function_st-mpointfromtext), [`ST_MultiPointFromText(*`周转`* [, *`斯里德`* [, *`选项`*]])`](gis-wkt-functions.html#function_st-mpointfromtext)

    [](<>)[](<>)

    构造一个`多点`值使用其 WKT 表示和 SRID。

    这些函数处理它们的参数,如本节介绍中所述。

-   [](<>)

    [`ST_MPolyFromText(*`周转`* [, *`斯里德`* [, *`选项`*]])`](gis-wkt-functions.html#function_st-mpolyfromtext), [`ST_MultiPolygonFromText(*`周转`* [, *`斯里德`* [, *`选项`*]])`](gis-wkt-functions.html#function_st-mpolyfromtext)

    [](<>)[](<>)

    构造一个`多多边形`值使用其 WKT 表示和 SRID。

    这些函数处理它们的参数,如本节介绍中所述。

-   [](<>)

    [`ST_PointFromText(*`周转`* [, *`斯里德`* [, *`选项`*]])`](gis-wkt-functions.html#function_st-pointfromtext)

    [](<>)

    构造一个`观点`值使用其 WKT 表示和 SRID。

    [`ST_PointFromText()`](gis-wkt-functions.html#function_st-pointfromtext)如本节介绍中所述处理其参数。

-   [](<>)

    [`ST_PolyFromText(*`周转`* [, *`斯里德`* [, *`选项`*]])`](gis-wkt-functions.html#function_st-polyfromtext), [`ST_PolygonFromText(*`周转`* [, *`斯里德`* [, *`选项`*]])`](gis-wkt-functions.html#function_st-polyfromtext)

    [](<>)[](<>)

    构造一个`多边形`值使用其 WKT 表示和 SRID。

    这些函数处理它们的参数,如本节介绍中所述。