首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

mysql中的空间地理字段(4)

mysql中的空间地理字段(4)

19.3. 支持的空间数据格式

19.3.1. 著名的文本(WKT)格式
19.3.2. 著名的二进制(WKB)格式

在本节中,介绍了用于表示查询中几何对象的标准空间数据格式。它们是:

·         著名的文本(WKT)格式

·         著名的二进制(WKB)格式

从其内部看,MySQL以不完全等同于WKT或WKB的格式保存几何对象值。
19.3.1. 著名的文本(WKT)格式
对于Geometry的著名文本(WKT)表示,它是为与采用ASCII格式的几何数据进行交换而设计的。

几何对象WKT表示的示例:

·         Point:

·                POINT(15 20)

注意,指定点坐标时不使用分隔用逗号。

·         具有4个点的LineString:

·                LINESTRING(0 0, 10 10, 20 25, 50 60)

注意,点坐标对采用逗号隔开。

·         具有1个外部环和1个内部环的Polygon:

·                POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5))

·         具有三个Point值的MultiPoint:

·                MULTIPOINT(0 0, 20 20, 60 60)

·         具有2个LineString值的MultiLineString:

·                MULTILINESTRING((10 10, 20 20), (15 15, 30 15))

·         具有2个Polygon值的MultiPolygon:

·                MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)),((5 5,7 5,7 7,5 7, 5 5)))

·         由2个Point值和1个LineString构成的GeometryCollection:

·                GEOMETRYCOLLECTION(POINT(10 10), POINT(30 30), LINESTRING(15 15, 20 20))

在本章开始处给出的OGC规范文档中,可找到相应的Backus-Naur语法,它指定了用于编写WKT值的正式生产规则。
19.3.2. 著名的二进制(WKB)格式
用于几何值的著名二进制(WKB)表示是由OpenGIS规范定义的。它还定义在ISO “SQL/MM Part 3: Spatial”标准中。

WKB用于以二进制流的形式交换几何数据,二进制流由含几何WKB信息的BLOB值表示。

WKB使用1字节无符号整数、4字节无符号整数、以及8字节双精度数(IEEE 754格式)。1字节等于8比特。

例如,与POINT(1 1)对应的WKB值由下述21字节序列构成(在此,每个字节由2个十六进制数值表示):

0101000000000000000000F03F000000000000F03F

该序列可分为下述部分:

Byte order : 01

WKB type   : 01000000

X          : 000000000000F03F

Y          : 000000000000F03F

表示如下:

·         字节顺序(Byte order)可以是0或1,分别表明little-endian或big-endian存储。little-endian和big-endian字节顺序也分别称为网络数据表示(NDR)和外部数据表示(XDR)。

·         “WKB type”(WKB类型)是指明几何类型的代码。取值从1到7,分别表示Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon、和GeometryCollection。

·         Point值具有X和Y坐标,每个值均用双精度值表示。

对于更复杂几何值的WKB值,它们是由更复杂的数据结构表示的,详情请参见OpenGIS规范。
返回列表