11.4 空间数据类型
开放地理空间 union(OGC)是由 250 多家公司,机构和大学组成的国际 union,参与开发可公开获得的概念解决方案,这些解决方案可用于 Management 空间数据的各种应用程序。
开放地理空间协会发布了*OpenGIS®地理信息实施标准-简单要素访问-第 2 部分:SQL Option *,该文档提出了几种扩展 SQL RDBMS 以支持空间数据的概念性方法。该规范可从 OGC 网站http://www.opengeospatial.org/standards/sfs获得。
按照 OGC 规范,MySQL 将空间扩展实现为 SQL with Geometry Types 环境的子集。该术语指的是已扩展了一组几何类型的 SQL 环境。几何值 SQL 列实现为具有几何类型的列。该规范描述了一组 SQL 几何类型,以及这些类型上的函数,用于创建和分析几何值。
MySQL 空间扩展可实现地理 Feature 的生成,存储和分析:
-
table 示空间值的数据类型
-
操纵空间值的功能
-
空间索引可缩短对空间列的访问时间
空间数据类型和功能可用于MyISAM,InnoDB,NDB和ARCHIVEtable。对于空间列的索引,MyISAM
和InnoDB
支持SPATIAL
和非SPATIAL
索引。其他存储引擎支持非SPATIAL
索引,如第 13.1.14 节“ CREATE INDEX 语句”中所述。
地理 Feature 是世界上任何具有位置的东西。功能可以是:
-
一个实体。例如,山,池塘,城市。
-
空间。例如,市区,热带 locale。
-
可定义的位置。例如,十字路口,作为两条街道相交的特定位置。
一些文档使用术语“地理空间 Feature”来指代地理 Feature。
几何 是 table 示地理 Feature 的另一个词。最初,“几何”一词是指对地球的测量。制图的另一种含义是指制图人员用来绘制世界 Map 的几何 Feature。
此处的讨论将这些术语视为同义词: 地理 Feature , 空间 Feature , Feature 或 几何 。最常用的术语是几何,定义为一个点或点的集合,table 示世界上任何具有位置的东西*。
以下材料涵盖了这些主题:
-
在 MySQL 模型中实现的空间数据类型
-
OpenGIS 几何模型中空间扩展的基础
-
table 示空间数据的数据格式
-
如何在 MySQL 中使用空间数据
-
使用索引进行空间数据
-
MySQL 与 OpenGIS 规范的差异
有关对空间数据进行操作的功能的信息,请参见第 12.16 节“空间分析功能”。
MySQL GIS 一致性和兼容性
MySQL 不实现以下 GIS 功能:
- 其他元数据视图
OpenGIS 规范提出了其他一些元数据视图。例如,名为GEOMETRY_COLUMNS
的系统视图包含几何列的描述,数据库中每个几何列的一行。
LineString
和MultiLineString
上的 OpenGIS 函数Length()在 MySQL 中应被称为ST_Length()
问题在于,现有的 SQL 函数Length()可以计算字符串值的长度,有时无法区分是在文本上下文中还是在空间上下文中调用该函数。
Additional Resources
开放地理空间协会发布了OpenGIS®地理信息实施标准-简单要素访问-第 2 部分:SQL 选项,该文档提出了几种扩展 SQL RDBMS 以支持空间数据的概念性方法。开放地理空间 union(OGC)在http://www.opengeospatial.org/维护一个网站。该规范位于http://www.opengeospatial.org/standards/sfs处。它包含与此处材料相关的其他信息。
如果您对使用 MySQL 的空间扩展有疑问或担忧,可以在 GIS 论坛中讨论它们:https://forums.mysql.com/list.php?23。