MySQL空间数据库
版权声明:本文为博主原创文章,未经博主允许不得转载。转载及其他事宜请联系QQ号:3234649941
MySQL空间数据库
空间数据库
遵从OpenGIS联盟(OGC)的规范,MySQL实施了空间扩展,OGC是一个由250多家公司、代理机构和大学参与的国际联盟,负责开发公开的概念解决方案,这类解决方案对所有用来管理空间数据的应用都是有用的。
1997年,OpenGIS联盟发布了针对SQL的OpenGIS®简单的特征规范,在该文档中,提出了扩展SQL RDBMS以支持空间数据的一些概念性方法。
MYSQL实施了OGC建议的具有Geometry类型的SQL环境的一个子集。该术语指的是用一组集合类型扩展的环境。具有几何值的SQL列是作为拥有集合类型的列实施的。该规范描述了SQL几何类型集合,以及作用在这些类型上用于创建和分析几何值的函数。
开放式地理信息系统(Open GIS)是指在计算机和通信环境下,根据行业标准和接口所建立起来的地理信息系统。它不仅使数据能在应用系统内流动,还能在系统间流动。Open GIS是为了使不同的地理信息系统软件之间具有良好的互操作性,以及在异构分布数据库中实现信息共享的途径。Open GIS规范是由开放地理信息系统协会(Open GIS Consortium,简称OGC)制定的一系列开放标准和接口。
openGIS 的优点
openGIS的优点有以下四大点
- 互操作性:不同地理信息系统软件之间连接、信息交换没有障碍。
- 可扩展性:硬件方面可在不同软件、不同档次的计算机上运行,软件方面增加新的地学空间数据和地学数据处理功能。
- 技术公开性:开放思想主要是对用户公开.公开源代码及规范说明是重要的途径之一。
- 可移植性独立于软件、硬件及网络环境,不需修改便可在不同的计算机上运行。
空间数据库的优势
- 数据量庞大:空间数据库面向的是地学及其相关对象,而在客观世界中它们所涉及的往往都是地球表面信息、地质信息、大气信息等及其复杂的现象和信息,所以描述这些信息的数据容量很大,容量通常达到GB级。
- 具有高可访问性:空间信息系统要求具有强大的信息检索和分析能力,这是建立在空间数据库基础上的,需要高效访问大量数据。
- 应用范围广
-
空间数据模型复杂
空间数据库存储的不是单一性质的数据,而是涵盖了几乎所有与地理相关的数据类型,这些数据类型主要可以分为3类:
4.1. 属性数据:与一般数据库基本一致,主要用来描述地学现象的各种属性,一般包括数字、文字、日期类型。
4.2.图形图像数据:与一般数据库不同,空间数据库系统中大量的数据借助于图形图像来描述。
4.3.空间关系数据:存储拓扑关系的数据,通常与图形数据是合二为一的。
几何模型
- geometry(非实例化) 几何型
- Point(可实例化的)点
- Curve(非实例化)曲线
- LineString(可实例化的)线串
- Line 线
- LinearRing 线性环
- Surface(非实例化)表面
- Polygon(可实例化的)多边形 即 面
- GeometryCollection(可实例化的)任何几何集合
- MultiPoint(可实例化的)多点
- MultiCurve(非实例化)多曲线
- MultiLineString(可实例化的)多线串
- MultiSurface(非实例化)多表面
- MultiPolygon(可实例化)多面
MySQL支持的空间数据类型
- Point:简单点
- Linestring:简单线
- Polygon:简单面
- MultiPoint:多点
- MultiLineString:多线
- MultiPolygon:多面
- GeometryCollection:任何几何集合
数据类型
-
point
point(25 12)
注意,指定点坐标时不使用逗号分隔 -
Linestring
linestring(0 0,10 10,20 25,50 60)
注意,点坐标对采用逗号隔开 -
polypolygon
polygon((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7,5 5)) -
MultiPoint
具有三个point值
MultiPoint(0 0,20 20,60 60) -
MultiLineString
具有两个LineString值
MultiLineString((10 10,20 20),(15 15,30 15)) -
MultiPolygon
具有两个polygon值
MultiPolygon(((0 0,10 0,10 10,0 10,0 0)),((5 5,7 5,7 7,5 7, 5 5))) -
GeometryCollection
由2个Point值和1个LineString构成
GeometryCollection(POINT(10 10), POINT(30 30), LINESTRING(15 15, 20 20))
WKT及WKB
WKT是一种文本标记语言,该格式由开放地理空间联盟(OGC)制定,用于表示矢量数据中的几何对象,在数据传输与数据库存储时,常用到它的二进制形式,即WKB。WKT与WKB在GIS中的重要作用在于,他们能利用文本简洁明了的表达矢量空间要素的几何信息,使得几何信息能以字段的形式存储于数据库中。
WKT相比WKB更方便人们理解,具有很高的可读性,下图以点线面3种基础矢量数据类型为例,简单说明点构线、线构面的构建关系。WKT中所有的数据类型都以点数据为基础,点坐标的XY值用空格隔开,坐标之间用逗号隔开
空间数据库表操作
建表
create table test1 (
id int auto_increment primary key ,
shape geometry
);
注意:值应以内部几何格式保存,你需将其从WKT或WKB格式转换为内部几何格式
插入数据
set @g='point(1 1)';insert into test1(shape) values(ST_GeomFromText(@g));
set @g='Linestring(1 1,1 2)';insert into test1(shape) values(ST_GeomFromText(@g));
set @g = 'POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5))';insert into test1(shape) values(ST_GeomFromText(@g));
set @g ='GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(0 0,1 1,2 2,3 3,4 4))';insert into test1(shape) values(ST_GeomFromText(@g));
依次插入的分别是点,线,面,任何几何集合
查询数据
注意:查询数据需要将数据从内部几何格式转换为WKT
select ST_AsText(shape) from test1;
上一篇: 傲游浏览器5.0.2 beta发布:增加传统地址栏模式
下一篇: python实现电脑自动关机
推荐阅读
-
IDEA搭建Springboot+SpringMVC+Mybatis+Mysql(详细、易懂)
-
将MySQL数据库移植为PostgreSQL
-
虚拟机安装mysql数据库(安装mysql详细步骤)
-
PHP获取php,mysql,apche的版本信息示例代码
-
java连接mysql的jar包没有bin(mysql可视化管理工具)
-
使用PHP备份MYSQL数据的多种方法
-
MySQL 在触发器里中断记录的插入或更新?
-
mysql 字符集的系统变量说明
-
MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)问题的解决
-
mysql 常用数据库语句 小练习