MySql 中文文档

您所在的位置:网站首页 smgeometry MySql 中文文档

MySql 中文文档

2024-04-24 16:47| 来源: 网络整理| 查看: 265

本节介绍在 GeoJSON 文档和空间值之间转换的函数。 GeoJSON 是用于编码几何/地理 Feature 的开放标准。有关更多信息,请参见http://geojson.org。此处讨论的功能遵循 GeoJSON 规范修订版 1.0.

GeoJSON 支持与 MySQL 支持相同的几何/地理数据类型。不支持 Feature 和 FeatureCollection 对象,只是从它们中提取几何对象。 CRS 支持仅限于标识 SRID 的值。

MySQL 还支持本机JSON数据类型和一组 SQL 函数,以启用对 JSON 值的操作。有关更多信息,请参见第 11.5 节“ JSON 数据类型”和第 12.17 节“ JSON 函数”。

ST_AsGeoJSON(g [, max_dec_digits [, options]])

从几何* g *生成一个 GeoJSON 对象。对象字符串具有连接字符集和排序规则。

如果任何参数为NULL,则返回值为NULL。如果任何非NULL参数无效,则会发生错误。

max_dec_digits *,如果指定,则限制坐标的小数位数,并导致输出舍入。如果未指定,则此参数默认为其最大值 232-1.最小值为 0.

options *(如果已指定)是位掩码。下 table 显示了允许的标志值。如果 geometry 参数的 SRID 为 0,则即使请求那些标志值的那些标志值也不会生成 CRS 对象。

Flag ValueMeaning 0没有选择。如果未指定* options *,则为默认设置。 1在输出中添加一个边界框。 2将简短格式的 CRS URN 添加到输出中。默认格式是短格式(EPSG:srid)。 4添加长格式的 CRS URN(urn:ogc:def:crs:EPSG::srid)。该标志覆盖标志 2.例如,选项值 5 和 7table 示相同(添加边界框和长格式 CRS URN)。 mysql> SELECT ST_AsGeoJSON(ST_GeomFromText('POINT(11.11111 12.22222)'),2); +-------------------------------------------------------------+ | ST_AsGeoJSON(ST_GeomFromText('POINT(11.11111 12.22222)'),2) | +-------------------------------------------------------------+ | {"type": "Point", "coordinates": [11.11, 12.22]} | +-------------------------------------------------------------+

ST_GeomFromGeoJSON(str [, options [, srid]])

解析代 tableGeoJSON 对象的字符串* str *并返回几何。

如果任何参数为NULL,则返回值为NULL。如果任何非NULL参数无效,则会发生错误。

options (如果提供)描述了如何处理包含坐标尺寸大于 2 的几何的 GeoJSON 文档。下 table 显示了允许的 options *值。 Option ValueMeaning 1拒绝文档并产生错误。如果未指定* options *,则为默认设置。 2, 3, 4接受文档并去除坐标以获取更高的坐标尺寸。

options *值 2、3 和 4 当前产生相同的效果。如果将来支持坐标尺寸大于 2 的几何,这些值将产生不同的效果。

srid *参数(如果提供)必须是 32 位无符号整数。如果未给出,则几何返回值的 SRID 为 4326.

GeoJSON 几何,要素和要素集合对象可能具有crs属性。解析函数解析urn:ogc:def:crs:EPSG::srid和EPSG:srid名称空间中的命名 CRS URN,但不解析作为链接对象给出的 CRS。另外,urn:ogc:def:crs:OGC:1.3:CRS84被识别为 SRID4326.如果对象具有不被理解的 CRS,则会发生错误,但如果给出了可选的* srid *参数,则任何 CRS 都将被忽略,即使它无效。

根据 GeoJSON 规范中的规定,对于 GeoJSONImporting 的type成员(Point,LineString等),解析是区分大小写的。该规范没有提及其他解析的大小写敏感性,而在 MySQL 中则不区分大小写。

此示例显示了一个简单的 GeoJSON 对象的解析结果:

mysql> SET @json = '{ "type": "Point", "coordinates": [102.0, 0.0]}'; mysql> SELECT ST_AsText(ST_GeomFromGeoJSON(@json)); +--------------------------------------+ | ST_AsText(ST_GeomFromGeoJSON(@json)) | +--------------------------------------+ | POINT(102 0) | +--------------------------------------+


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3