本节描述用于在GeoJSON文档和空间值之间转换的函数。GeoJSON是一个用于编码几何/地理特性的开放标准。有关更多信息,请参阅GydF4y2Bahttp://geojson.org.GydF4y2Ba。这里讨论的函数遵循GeoJSON规范修订1.0。GydF4y2Ba
Geojson支持MySQL支持的相同几何/地理数据类型。除了从它们中提取几何对象之外,不支持特征和特派团对象。CRS支持仅限于识别SRID的值。GydF4y2Ba
MySQL还支持一个本地人GydF4y2Ba杰森GydF4y2Ba
数据类型和一组SQL函数以启用JSON值的操作。有关更多信息,请参阅GydF4y2Ba第11.5节“JSON数据类型”GydF4y2Ba,GydF4y2Ba第12.18节“JSON函数”GydF4y2Ba。GydF4y2Ba
从几何体生成地理杂志对象GydF4y2Ba
GGydF4y2Ba
。对象字符串具有连接字符集和排序规则。GydF4y2Ba如果有任何参数是GydF4y2Ba
零GydF4y2Ba
,返回值是GydF4y2Ba零GydF4y2Ba
。如果有非GydF4y2Ba零GydF4y2Ba
参数无效,发生错误。GydF4y2Bamax_dec_digits.GydF4y2Ba
,如果指定,则限制坐标的十进制位数,并导致输出四舍五入。如果没有指定,该参数默认为其最大值2GydF4y2Ba32.GydF4y2Ba- 1.最小值为0。GydF4y2Ba选项GydF4y2Ba
,如果指定,则为位掩码。下表显示了允许的标志值。如果几何参数的SRID为0,则不会生成CRS对象,即使是那些请求一个的标志值。GydF4y2Ba标志价值GydF4y2Ba 意义GydF4y2Ba 0.GydF4y2Ba 没有选择。这是默认情况下的GydF4y2Ba 选项GydF4y2Ba
未指定。GydF4y2Ba1GydF4y2Ba 将边界框添加到输出。GydF4y2Ba 2GydF4y2Ba 向输出添加短格式CRS URN。默认格式是短格式(GydF4y2Ba epsg:GydF4y2Ba
)。GydF4y2BasridGydF4y2Ba
4.GydF4y2Ba 添加一个长格式CRS URN(GydF4y2Ba urn: [: def: crs: EPSG::GydF4y2Ba
)。这个标志覆盖标志2。例如,选项值5和7表示相同的意思(添加边框和长格式CRS URN)。GydF4y2BasridGydF4y2Ba
MySQL> Select ST_ASGEOJSON(ST_GEOMFROMTEXT('POINT(11.11111 12.2222222),2);+ ------------------------------------------------------ + |st_asgeojson(st_geom fromtext('point(11.11111 12.222222),2)|+ ------------------------------------------------------ + |{“类型”:“点”,“坐标”:[11.11,12.22]} |+ ------------------------------------------------------ +GydF4y2Ba
st_geomfromgeojson(GydF4y2Ba
str.GydF4y2Ba
(,GydF4y2Ba选项GydF4y2Ba
(,GydF4y2BasridGydF4y2Ba
]])GydF4y2Ba解析一个字符串GydF4y2Ba
str.GydF4y2Ba
表示一个GeoJSON对象并返回一个几何图形。GydF4y2Ba如果有任何参数是GydF4y2Ba
零GydF4y2Ba
,返回值是GydF4y2Ba零GydF4y2Ba
。如果有非GydF4y2Ba零GydF4y2Ba
参数无效,发生错误。GydF4y2Ba选项GydF4y2Ba
,描述如何处理坐标尺寸大于2的几何图形的GeoJSON文档。下表显示了允许的GydF4y2Ba选项GydF4y2Ba
价值观。GydF4y2Ba选项值GydF4y2Ba 意义GydF4y2Ba 1GydF4y2Ba 拒绝文档并产生错误。这是默认情况下的GydF4y2Ba 选项GydF4y2Ba
未指定。GydF4y2Ba2、3、4GydF4y2Ba 接受文档并剥离坐标以获得更高的坐标尺寸。GydF4y2Ba 选项GydF4y2Ba
目前2,3和4的值产生相同的效果。如果将来支持具有高于2的坐标尺寸的几何形状,则可以预期这些值来产生不同的效果。GydF4y2Ba这GydF4y2Ba
sridGydF4y2Ba
参数,如果给定,则必须是32位无符号整数。如果没有给出,几何返回值具有4326的SRID。GydF4y2BaGeojson几何,功能和功能集合对象可能有一个GydF4y2Ba
crsGydF4y2Ba
财产。中的命名的CRS urn解析函数GydF4y2Baurn: [: def: crs: EPSG::GydF4y2Ba
和GydF4y2BasridGydF4y2Ba
epsg:GydF4y2Ba
命名空间,而不是作为链接对象给出的crs。同时,GydF4y2BasridGydF4y2Ba
urn: [: def: crs: [: 1.3: CRS84GydF4y2Ba
的编号为SRID 4326。如果一个对象有一个不被理解的CRS,则会发生错误,但如果可选GydF4y2BasridGydF4y2Ba
参数,任何CRS被忽略,即使它无效。GydF4y2Ba如Geojson规范中所述,解析为区分大小写GydF4y2Ba
类型GydF4y2Ba
GeoJSON输入的成员(GydF4y2Ba点GydF4y2Ba
那GydF4y2BaLinestring.GydF4y2Ba
等等)。该规范对于其他解析的情况沉默是关于其他解析的敏感性,在MySQL中不区分大小写。GydF4y2Ba这个例子显示了一个简单的GeoJSON对象的解析结果:GydF4y2Ba
MySQL> SET @JSON ='{“类型”:“点”,“坐标”:[102.0,0.0]}';mysql>选择st_astext(st_geomfromgeojson(@json));+ -------------------------------------------------st_astext(st_geomfromgeojson(@json))|+ -------------------------------------------------点(102 0)|+ -----------------------------------GydF4y2Ba