支持的空间数据格式

有两种标准空间数据格式用于表示查询中的几何对象:

●已知文本(WKT)格式

●已知二进制(WKB)格式

在内部,MySQL用与WKT或WKB格式不同的格式存储几何值。(内部格式类似于WKB,但有一个4个字节表示SRID。)

MySQL提供函数可用于在不同的数据格式之间进行转换。

以下部分介绍MySQL使用的空间数据格式:

已知文本(WKT)格式

用已知文本(WKT)表示几何值是为用ASCII格式交换几何数据而设计的。OpenGIS规范提供了一个Backus Naur语法,它指定了写入WKT值的正式生成规则。

几何体对象的WKT表示示例:

●Point :

点坐标不使用逗号分隔。这与SQL Point()函数的语法不同,后者要求坐标之间有逗号。注意使用适合给定空间操作上下文的语法。例如,以下语句都使用ST_X()从Point对象提取X坐标。第一种方法直接使用Point()函数生成对象。第二种方法使用WKT表示,该表示通过ST_GeomFromText()转换为一个Point。

●有4个点的LineString对象

点坐标对儿用逗号隔开。

●具有一个外环和一个内环的Polygon:

●具有三个Point值的MultiPoint:

接受WKT格式表示的MultiPoint值的空间函数,如ST_MPointFromText()和ST_GeomFromText(),允许将值中的各个点用括号括起来。例如,以下两个函数调用都有效:

●有两个LineString值的MultiLineString:

●具有两个Polygon值的MultiPolygon:

●包含两个Point值和一个LineString值的GeometryCollection:

已知二进制(WKB)格式

用已知二进制(WKB)表示的几何值,用于交换二进制流格式的几何数据,用包含几何WKB信息的BLOB值表示。该格式由OpenGIS规范定义。ISO SQL/MM第3部分:空间标准中也对其进行了定义。

WKB使用1字节无符号整数、4字节无符号整数和8字节双精度数字(IEEE 754格式)。一个字节有八位。

例如,对应于POINT(1 -1)的WKB值由21个字节组成,每个字节由两个十六进制数字表示:

该序列由下表所示的成分组成。

构成

大小

字节顺序

1 byte

01

WKB类型

4 bytes

01000000

X 坐标

8 bytes

000000000000F03F

Y 坐标

8 bytes

000000000000F0BF

构成表示如下:

●字节顺序指示符为1或0,表示小端或大端存储。小端字节顺序和大端字节顺序也分别称为网络数据表示(NDR)和外部数据表示(XDR)。

●WKB类型是指示几何体类型的代码。MySQL使用从1到7的值来表示Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon和GeometryCollection。

●Point值有X和Y坐标,每一个坐标都表示为双精度值。

如OpenGIS规范中所述,对于更加复杂的几何值,WKB值具有更复杂的数据结构。

内部几何存储格式

MySQL使用4个字节表示SRID,其后跟随值的WKB表示。有关WKB格式的说明,请参阅上面的讲解。

对于WKB部分,以下针对MySQL的注意事项适用:

●字节顺序指示符字节是1,因为MySQL采用小端存储来存储几何值。

●MySQL支持Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon和GeometryCollection等几何类型。不支持其他几何体类型。

●只有GeometryCollection可以为空。这样的值表示有0个存储元素。

●可以顺时针和逆时针指定Polygon环。MySQL在读取数据时会自动翻转环。

笛卡尔坐标以空间参照系的长度单位存储,X值在X坐标系中,Y值在Y坐标系中。轴方向是由空间参照系指定的方向。

地理坐标以空间参照系的角度单位存储,经度在X坐标系中,纬度在Y坐标系中。轴方向和子午线由空间参照系指定。

函数LENGTH()返回值存储所需的字节数。例如:

值长度为25个字节,由以下成分组成(从十六进制值可以看出):

●整数SRID为4字节(0)

●1字节用于整数字节顺序(1=小端)

●4字节用于整数类型信息(1=Point)

●双精度X坐标为8字节(1)

●双精度Y坐标为8字节(−1)

mysql polygon 类型_MySQL数据类型 - 空间数据类型 (4)相关推荐

  1. mysql 负数类型_MySQL数据类型详解

    MySQL数据类型,可以被分为3类:数值类型.日期和时间类型以及字符串(字符)类型 方括号("["和"]")指出可选的类型修饰符的部分 M 指出最大的显示尺寸. ...

  2. 数组在mysql中是什么类型_MySQL 中的数据类型介绍

    1.概述 要了解一个数据库,我们也必须了解其支持的数据类型. MySQL支持所有标准的SQL数据类型,主要分3类: 数值类型 字符串类型 时间日期类型 另一类是几何数据类型,用的不多,也没多介绍.  ...

  3. mysql整理类型_MYSQL数据类型分析整理

    1,时间类型 类型               所站空间 datetime           8字节 timestamp          4字节 date               3字节 ye ...

  4. mysql fulltext类型_mysql索引类型:FULLTEXT、NORMAL、SPATIAL、UNIQUE的详细介绍(转)

    Normal 普通索引 表示普通索引,大多数情况下都可以使用 Unique 唯一索引 表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique 约束唯一标识 ...

  5. mysql字符类型_MYSQL字符类型大全

    ============= MySQL数据类型 ============= 整数类型 ======== 整数类型 字节数 无符号范围 有符号的范围 TINYINT 1 0~255 -128~127 S ...

  6. mysql bit类型_MySQL bit类型

    本教程将向您介绍如何存储和使用位值的MySQL BIT数据类型. MySQL BIT数据类型简介 MySQL提供了允许您存储位值的BIT类型.BIT(m)可以存储多达m位的值,m的范围在1到64之间. ...

  7. mysql boolean类型_mysql 布尔类型

    ...对象的原型创建的函数: var myvar = new Boolean(1); myvar.constructor; 结果输出: function Boolean() { [native cod ...

  8. mysql 优化 类型_MySQL数据类型的优化选择

    整数类型: Tinyint-8 Smallint-16 Mediumint-24 Int-32 Bigint-64 实数类型(带有小数部分的数字) Float-4/double-8:浮点 Decima ...

  9. mysql 整数类型_MySQL的数据类型

    1.整数 TINYINT: 8 bit 存储空间 SMALLINT: 16 bit 存储空间 MEDIUMINT: 24 bit 存储空间 INT: 32 bit 存储空间 BIGINT: 64 bi ...

最新文章

  1. 三位分节制顺口溜_1-3年级基础知识顺口溜!
  2. NPAPI——实现非IE浏览器的类似ActiveX的本地程序(插件)调用
  3. SAP系统中在发布了webservice,获得了WSDN地址后,外部系统怎么传数据到SAP?
  4. Oracle PL/SQL中如何使用%TYPE和%ROWTYPE
  5. SpringBoot创建SpringBoot项目以及启动器讲解
  6. 负数如何归一化处理_机器学习之数据预处理
  7. 国家电网人工智能专利数量排名竟然靠前,腾讯,百度都不如国家电网
  8. 更改Zend Studio/Eclipse代码风格主题
  9. Linux下不停止服务,清空nohup.out文件
  10. LNMP详解(十三)——Nginx子页面详解
  11. Java进阶:Spring Boot连接MySQL8.0配置
  12. 半功率点为啥是-3dB
  13. matlab gz,MATLAB之single函数
  14. 电脑蓝屏按哪三个键恢复?怎么修复蓝屏问题
  15. 安装pytorch一直报错解决方法!!! ERROR: Exception: Traceback (most recent call last): File “D:\Anacoda\lib\s....
  16. SEO之了解搜索引擎
  17. Tomcat| 设置https端口时,8443和443区别
  18. 2022 ICLR | Geodiff:分子构象几何扩散生成模型
  19. 单片机课程设计,基于AT89C51和LCD-12864的贪吃蛇游戏
  20. NLP中人类的沟通模式

热门文章

  1. 怎么用matlab分解因式,MATLAB因式分解
  2. 持续更新 BUUCTF——PWN(一)
  3. Java题-一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
  4. 如何为你的 Windows 应用程序关联一种或多种文件类型
  5. mysql 8.0.28安装教程(超简单)
  6. 夏季溺水事故易发,如何构建防溺水视频预警监测平台?
  7. 帕金森病会引起哪些并发症
  8. 虚拟化、云计算与超融合的简单总结
  9. 投影仪软件哪个好用?装上一起看TV,解锁追剧新体验
  10. Packet Tracer 5.0建构CCNA实验攻略(12)——PPP