码迷,mamicode.com
首页 > 数据库 > 详细

MySQL数据类型 - 空间数据类型 (1)

时间:2020-12-14 13:12:55      阅读:3      评论:0      收藏:0      [点我收藏+]

标签:坐标转换   ipo   null   ati   创建   mys   ice   地图   sam   

开放地理空间联盟(OGC)是一个由250多家公司、机构和大学组成的国际联盟,参与开发可用于管理空间数据的各种应用程序的公共概念解决方案。

开放地理空间联盟发布了OpenGIS?地理信息实现标准-简单功能访问-第2部分:SQL选项(OpenGIS? Implementation Standard for Geographic information - Simple feature access - Part 2: SQL option),该文件提出了扩展SQL RDBMS以支持空间数据的几种概念性方法。此规范可从OGC网站获取,网址为http://www.opengeospatial.org/standards/sfs。

遵循OGC规范,MySQL为SQL几何类型环境实现了一个空间扩展子集。这个术语(SQL with Geometry Types)指的是用一组几何类型扩展的SQL环境。几何值的SQL列被实现为具有几何类型的列。该规范描述了一组SQL几何类型,以及这些类型上用于创建和分析几何值的函数。

MySQL空间扩展支持生成、存储和分析地理特征:

●表示空间值的数据类型

●用于操作空间值的函数

●改进空间列访问时间的空间索引

空间数据类型和函数可用于MyISAM、InnoDB、NDB和ARCHIVE表。对于索引空间列,MyISAM和InnoDB同时支持空间索引和非空间索引。其他存储引擎支持非空间索引。

地理特征是世界上任何有地理位置的东西。特征可以是:

●一个实体。例如,一座山,一个池塘,一座城市。

●一个空间。例如,市区,热带地区。

●可定义的位置。例如,十字路口,即两条街道相交的地方。

有些文档使用术语地理空间特征(geospatial feature)来指代地理特征(geographic feature)。

几何是另一个表示地理特征的词。最初几何这个词的意思是测量地球。另一个含义来自地图学,指的是制图员用来绘制世界地图的几何特征。

这里的讨论将这些术语视为同义词:地理特征、地理空间特征、特征或几何。最常用的术语是几何,它定义为一个点或者点的集合,表示世界上任何有位置的事物。

以下材料涵盖这些主题:

●MySQL模型中实现的空间数据类型

●OpenGIS几何模型空间扩展的基础

●表示空间数据的数据格式

●如何在MySQL中使用空间数据

●空间数据索引的使用

●MySQL与OpenGIS规范的区别

额外资源

以下这些标准对于MySQL实现空间操作非常重要:

●SQL/MM第3部分:空间。

●OpenGeospatial Consortium发布了OpenGIS?地理信息实现标准(OpenGIS? Implementation Standard for Geographic information),该文件提出了几种扩展SQL RDBMS以支持空间数据的概念性方法。具体请参见简单功能访问-第1部分:通用体系结构(Simple Feature Access - Part 1: Common Architecture),以及简单功能访问-第2部分:SQL选项(Simple Feature Access - Part 2: SQL Option)。开放地理空间联盟(OGC)维护着网站:http://www.opengeospatial.org/。该规范可在http://www.opengeospatial.org/standards/sfs获取。它包含了与此内容相关的更多其他信息

●空间参考系统(SRS)定义的语法基于OpenGIS实现规范:坐标转换服务(OpenGIS Implementation Specification: Coordinate Transformation Services)(修订版1.00,OGC 01-009,2001年1月12日)第7.2节中定义的语法。此规范可在http://www.opengeospatial.org/standards/ct获取。有关在MySQL中实现的SRS定义与该规范的区别,请参阅MySQL的CREATE SPATIAL REFERENCE SYSTEM语句。

空间数据类型

MySQL具有与OpenGIS类相对应的空间数据类型。这些类型的基础在"OpenGIS几何模型"部分介绍。

某些空间数据类型包含单一几何图形值:

●GEOMETRY

●POINT

●LINESTRING

●POLYGON

GEOMETRY可以存储任何类型的几何体。其他单值类型(POINT、LINESTRING和POLYGON)将其值限制为特定的几何类型。

其他空间数据类型保存值的集合:

●MULTIPOINT

●MULTILINESTRING

●MULTIPOLYGON

●GEOMETRYCOLLECTION

GEOMETRYCOLLECTION可以存储任何类型的对象集合。其他集合类型(MULTIPOINT、MULTILINESTRING和MULTIPOLYGON)仅限于特定几何类型。

示例:创建一个名为geom的表,该表有一个列名为g,可以存储任何几何类型的值,请使用以下语句:

技术图片
空间数据类型的列可以有SRID属性,以显式指示存储在列中的值的空间参考系统(SRS)。例如:

技术图片

如果空间列不为NULL且具有特定的SRID,则可以在这些列上创建SPATIAL 索引,因此,如果要为该列编制索引,请使用NOT NULL和SRID属性声明它:

技术图片

InnoDB表允针对笛卡尔和地理空间参考系统(SRS)的SRID值。MyISAM表允许笛卡尔空间参考系统使用SRID值。

SRID属性使空间列受到限制,这意味着:

●列只能包含具有给定SRID的值。尝试使用不同的SRID值会产生错误。

●优化器可以对列使用SPATIAL索引。

没有SRID属性的空间列不受SRID限制,并且接受具有任何SRID的值。但是,在修改列定义包含SRID属性之前,优化器不能对它们使用SPATIAL索引,这可能需要首先修改列内容,以便所有值都具有相同的SRID。

官方文档地址:
https://dev.mysql.com/doc/refman/8.0/en/spatial-types.html

MySQL数据类型 - 空间数据类型 (1)

标签:坐标转换   ipo   null   ati   创建   mys   ice   地图   sam   

原文地址:https://blog.51cto.com/15023289/2561171

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!