| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> MySQL8.0地理空间数据库的QGIS应用浅析 -> 正文阅读 |
|
[大数据]MySQL8.0地理空间数据库的QGIS应用浅析 |
目录 本文的概念性内容均为作者的个人理解,仅供参考。本文适合软件、地信技术人员项目实施时做参考,不适合学术研究参考。 一、认识空间数据个人任务空间数据是计算机世界对地理实体的抽象、建模、表达。地理实体可分为点、线、面、体四种。 一般来说,描述地理空间的数据都包含空间坐标与空间坐标系,不同于平面直角坐标系。 空间坐标系是对地球表面的数学表达。由于地球是不规则的椭圆,所以描述地球的数学椭球体有很多,这个可以称为大地坐标系统。如:WGS-1984、XIAN-1980、CGCS-2000等。 为了在某一个区域内使用平面坐标来表示地理实体的位置,需要将地球表面上的点的坐标(即经纬度)转换为平面坐标,这个平面坐标称为投影坐标系。由于地球是不可伸展的球面,所以无法使用一种投影方式完成针对全球各地的“坐标转换”,所以出现了针对地球不同位置使用不同的投影方式,以求最大限度的使平面与球面近似。 在OGC标准中,用SRID来作为坐标系统的唯一ID。 空间数据可以使用OGC标准的WKT字符串来表示。可以参考如下网址:https://www.osgeo.cn/doc_ogcstd/ogc_standard/ch02_chapter1/chapter.html#wkt 除了空间位置以外,空间数据一般也带有属性数据,这个属性数据类似于关系型数据库中的表。 二、认识空间数据库个人认为,空间数据库简言之就是存储空间数据的数据库,理论上具备常见数据库的一切特征及功能,表现形式上略有不同,一般来说,空间数据库存储的空间数据是一种特殊格式的数据。由于空间数据结构的内容较多,这里不展开说。从项目实施上来说,理解WKT字符串就可以胜任大部分工作。 三、MySQL8.0空间数据库根据MySQL的官方文档,我们可以知道它目前支持的空间数据类型有: 1、GEOMETRY 2、POINT 3、LINESTRING 4、POLYGON 5、MULTIPOINT 6、MULTILINESTRING 7、MULTIPOLYGON 8、GEOMETRYCOLLECTION 个人认为,在QGIS中使用较多的还是POINT、LINESTRING、POLYGON及MULTIPOINT、MULTILINESTRING、MULTIPOLYGON。所以我们可以明确,目前的MySQL空间数据库基本满足二维及以下空间的矢量空间数据的存储。 下面结合这几种数据类型叙述一下MySQL8.0中的空间数据表的建立。 点数据建表
其中字段p就是空间数据字段,经测试,在QGIS中使用MySQL空间数据库,需要指定SRID,否则在QGIS中添加数据到MySQL的时候会报错。这里的SRID是4326,代表WGS-1984大地坐标系。 线数据建表
面数据建表
?添加数据
这里表示的是,向空间字段插入数据的SQL语句,一般来说,还伴随着其他非空间字段的属性一并插入,这里省略了。相信对于属性SQL的数据库同仁来说,很好理解。这里用到了ST_GeometryFromText这个函数,这个函数可以将WKT字符串转换为MySQL空间字段。 例子:
向testpoint插入一行记录,空间字段为geo,插入数据类型为单点。 查询数据:
ST_AsText函数可以将空间字段转换为WKT字符串。 四、QGIS中使用MySQL作为数据源QGIS支持多种数据源的空间数据,其中矢量数据的数据源支持MySQL作为服务。打开QGIS,主面板选择图层-添加矢量图层-单选框选择数据库-类型选择MySQL。 单击新建,新建数据源。以下是一个填写示例: ?单击添加后,可以选择需要添加的图层。 ?这里全部添加。为了便于演示,这里还加入了天地图的在线wmts底图,选择一块地方。 这里,我们可以利用编辑工具,快速的添加矢量数据到空间数据库。添加后可以使用查询语句观察WKT数据的格式,加强对WKT字符的理解。 右键编辑-添加点要素-保存。 数据库查询结果: ? ? ?可以看到经纬度坐标,对应的是非洲的点。 ?再看点集:添加点的操作一样。使用合并选中要素,合并多个点之后就是点集。 ?查询结果: 其他要素操作类似,这里放几张图吧。 ? 五、总结MySQL8.0中包含了空间数据库的功能,该功能可以存储二维空间及以下的矢量空间数据。部署MySQL数据库服务,完成空间数据库的服务端的操作、利用市面上的软件或者自研软件充当客户端,即可基本构成一个矢量空间数据库系统。要掌握好MySQL空间数据库的运用,需要了解数据库技术、GIS软件应用技术、地图学概念、地理空间数据概念等。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 16:34:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |