写在前面:本文介绍 QGIS,只是为了展示怎么使用 PostGIS,因作者本人追求的是 PostgreSQL,所以本文的重点还是 PostGIS 这个 PostgreSQL 的插件,QGIS软件只做简单介绍,留给地理空间开发工程师研究吧。在学这篇文章之前,我也只是小白,都是在网上边学边实验边记录的,写这篇文章花了我整整3天的时间,在PostGIS编译安装的时候走了不少弯路,文章如有错误或侵权的,望留言指出,立即改正。
除 QGIS 外,其他支持 PostGIS 的软件详见:https://trac.osgeo.org/postgis/wiki/UsersWikiToolsSupportPostgis
一简介
QGIS (原称Quantum GIS)是一个方便使用的免费开源且跨平台的桌面GIS软件,可运行在 Windows、Linux、MacOS 和 BSD 上,并支持众多矢量、栅格、和数据库格式及功能。
QGIS的最大特点在于界面很友好,熟悉ArcGIS的人都能很快的掌握QGIS的操作,支持WMS并无缝集成PostGIS(对象-关系型数据库管理系统),几乎完全照搬了GRASS的分析功能,因此其分析功能也很强大。相比于商业GIS软件,QGIS的文件体积更小,需要的内存和处理能力也更小,因此它可以在旧的硬件上或CPU运算能力被限制的环境下运行,是一款轻量化的桌面GIS软件。
QGIS的官网:https://www.qgis.org/en/site/
![438c981d58d624eb1ccdcad8d1c284db.png](https://img-blog.csdnimg.cn/img_convert/438c981d58d624eb1ccdcad8d1c284db.png)
PostGIS 也是免费开源的,PostGIS通过向PostgreSQL添加对空间数据类型、空间索引和空间函数的支持,将PostgreSQL数据库管理系统转换为空间数据库。
因为PostGIS是建立在PostgreSQL之上的,所以PostGIS自动继承了重要的"企业级"特性以及开放源代码的标准。
可以说PostGIS仅仅只是PostgreSQL的一个插件,但是它将PostgreSQL变成了一个强大的空间数据库!
关于 PostGIS 更多介绍以及为什么使用 PostGIS,参考这个文章或自行百度:https://zhuanlan.zhihu.com/p/62034688,本文部分介绍性文字也是截取此处。
PostGIS的官网:http://postgis.net/
PostGIS的WIKI:https://trac.osgeo.org/postgis/wiki
Developers PostGIS Wiki: https://trac.osgeo.org/postgis/wiki/DevWikiMain
二QGIS 的简单操作
QGIS的官网下载独立安装版,Windows上安装比较简单,直接下一步就行,在QGIS软件安装完成后,再在QGIS中安装以下两个插件。
1.安装QGIS的坐标转换插件 GeoHey Toolbox
2.安装QGIS的底图插件Quick Map Services
配置底图。
此时只有一个OSM的标准底图,可以在 Settings 中 Get 更多的底图。
更多的底图也是有的能用,有的只能在国外网才能用。
本示例选用了 ESRI 的 ESRI Gray (dark) 作为底图。
3.下载全国路网数据
可通过OSM Geofabrik项目下载中国水系、道路路网、建筑物、湖泊河网数据,数据坐标系为WGS84,下载地址:http://download.geofabrik.de/asia/china-latest-free.shp.zip 。
gis_osm_roads_free_1.shp :# 全国公路路网数据
gis_osm_railways_free_1.shp:# 全国铁路网数据
gis_osm_waterways_free_1.shp:# 全国河流网数据
gis_osm_water_a_free_1.shp:# 全国湖泊数据
4.QGIS上展示全国路网数据
将想要展示的shp文件拖到 QGIS 中就能展示,如下展示全国铁路网数据。
三使用PostGIS来存储 Shapefiles 文件的数据
自 GIS 软件被首次编写以来,Shapefile(和其他文件格式)一直是空间数据的存储和交互的标准方式。
但是,这些平面文件还存在以下缺点:
文件需要特殊的应用程序才能读写 —— SQL是对随机数据访问和分析的抽象。如果没有这种抽象,你将需要自己编写所有的访问和分析数据的代码
并发操作可能导致损坏数据 —— 虽然可以编写额外的代码以确保对同一文件的多次写入不会损坏数据,但当你解决了问题并同时解决了相关性能问题时,你已经编写了数据库系统的较多部分。那为什么不直接使用标准数据库呢?
复杂的问题需要复杂的应用程序来回答 —— 复杂而有趣的空间分析问题(空间连接、聚合等)可以在数据库中使用一行SQL代码来表达,但是在对文件进行编程时,需要数百行专门的代码来解决。
大多数 PostGIS 用户都在建立多个应用程序访问数据的系统,因此,使用标准的SQL访问方法可以简化部署和开发。
有些用户正在处理大型数据集,如果使用文件存储,它们可能被分成多个文件;但在数据库中,它们可以存储在单个大的二维表中。
总之,对多个用户的支持,复杂的即时查询和对于大型数据集的高性能表现,是空间数据库比文件系统的优越之处。
1.Windows平台下载安装 PostGIS 插件
相对 Linux 平台,对于 Windows 平台的 EDB,安装 PostGIS 插件还是比较简单的,安装数据库软件完成后可以在 Stack Buider 中直接安装 PostGIS。
下载速度不是很快!!下载完成后直接安装。
出现对话框都点“是”,直到安装完成。
出现个小插曲,我的数据库用户密码输入错误了,可以先完成 PostGIS 插件的安装,安装完成后执行它的建库脚本就行了。
<