提醒:教程是基于CentOS 7.6 64位系统下搭建
前言
WebGIS
人类活动中75% ~ 80%的信息与地理空间位置有关, GIS(Geographic Information System,地理信息系统)是一种采集、 处理、储存、管理、分析、输出地理空间数据及其属性信息的计算机信息系统。
随着计算机、网络和数据库等技术的发展,以及应用的不断深化,地理信息系统技术的发展呈现出新的特点和趋势,基于互联网的 WebGIS就是其中之一。WebGIS除了应用于传统的国土、资源、环境等政府管理领域外,也正在促进与老百姓生活息息相关的车载导航、移动位置服务、智能交通、抢险救灾、城市设施管理、现代物流和大数据分析等产业的迅速发展。
随着Internet的迅猛发展和广泛使用, 人们对地理信息系统的需求也日益增长, Internet已成为新的GIS操作平台,它与GIS结合而形成的WebGIS (网络地理信息系统) 是GIS软件发展的必然趋势。 WebGIS也真正成为一种大众使用的工具。目前,网络技术在GIS中的应用主要有三种模式: 集中模式、C/S模式和B/S模式, 其中基于B/S模式的WebGIS是一种新型的模式,用来解决C/S模式下WebGIS所面临的问题和满足用户对信息管理的需求。
最通俗易懂的解释就是,GIS是利用测绘生成纸制地图或者通过航拍以及卫星拍摄生成影像后,将这些数据存储在计算机中,以地图或图片的形式表现出来,然后根据实际生产、生活以及科研中的各种需求,进而提供具体的经过处理的数据。
PostgreSQL
版本:
PostgreSQL简介
PostgreSQL是一个免费的对象-关系型数据库服务器(ORDBMS),遵循灵活的开源协议BSD。
PostgreSQL目前是世界上最先进的开源关系型数据库,支持丰富的数据类型(如JSON、JSONB、数组类型及二进制大对象)和自定义类型。提供了丰富的接口。很容易拓展它的功能,如可以在GIST框架下实现自己的索引类型等。
PostgreSQL是完全的事务安全性数据库,完整地支持外键、视图、触发器和存储过程(函数),并支持多种语言开发存储过程,如PL/PGSQL、Perl、Python等。
PostgreSQL优点
- 关系型数据库:可存储基本数据类型和json、jsonb类型数据
- 扩展性高:支持地理信息处理扩展(PostGIS)
- 开源免费:开源软件,可以免费使用
- 支持树状结构、图结构数据存储
- 没有字符串长度限制
- 自带全文检索功能
PostgreSQL安装过程
1. 安装官方yum源
1 | yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm |
2. 安装PostgreSQL
本人安装postgresql版本为:13.5,根据需求自行选择。
1 | yum install -y postgresql13-server |
此时已经生成pgsql主目录与pgsql数据目录。
1 | 主目录 |
3. 添加PostgreSQL环境变量
1 | vi /etc/profile |
1 | 添加以下环境变量 |
1 | source /etc/profile |
4. 初始化数据并设置自动启动
1 | 初始化数据 |
查看初始化数据过程日志:/var/lib/pgsql/13/initdb.log
1 | ...... |
1 | 给用户postgres配置启动命令 |
5. 启动数据库服务
1 | root用户,停止服务 |
1 | 查看数据库版本 |
6. 配置服务对外开放
安装PostgreSQL数据库之后,默认是只接受本地访问连接。如果想在其他主机上访问PostgreSQL数据库服务器,就需要进行相应的配置。
配置远 程连接PostgreSQL数据库的步骤很简单,只需要修改data目录下的pg_hba.conf
和postgresql.conf
。 pg_hba.conf:配置对数据库的访问权限 postgresql.conf:配置PostgreSQL数据库服务器的相应的参数
修改 /var/lib/pgsql/13/data/pg_hba.conf
文件,添加以下信息:
1 | 在节点IPv4 local connections:下添加 |
修改 /var/lib/pgsql/13/data/postgresql.conf
文件,添加以下信息:
1 | 查找节点#listen_addresses,修改为: |
7. 修改密码并重启服务
1 | 切换postgres用户 |
8. 远程访问
个人推荐PostgreSQL管理工具:[pdAdmin4](https://www.pgadmin.org/download/ pdAdmin4)
PostGIS
版本:
PostGIS简介
GIS数据库,也叫空间数据库(Spatial database),是负责存储处理位置(空间)数据和非空间数据的数据库。
PostGIS是在对象关系型数据库PostgreSQL上增加了存储管理空间数据的能力的开源GIS数据库(理解为PostGIS为PostgreSQL的插件,使得PostgreSQL可以存储空间数据)。
PostGIS通过向PostgreSQL添加对空间数据类型、空间索引和空间函数 的支持,将PostgreSQL数据库管理系统转换为空间数据库。
PostGIS安装过程
1. 检查PostgreSQL是否安装PostGIS扩展插件
1 | 切换postgres用户 |
查询结果显示没有安装PostGIS扩展插件
2. 安装PostGIS扩展插件
1 | 查询全部版本postgis安装EPEL源 |
1 | 安装对应版本的PostGIS(PostgreSQL13对应的版本) |
成功安装后,在/usr
路径下生成多个PostGIS组件目录
如提示依赖错误需要安装EPEL源,不同版本操作系统对应不同的EPEL源,如下所示:
1 | CentOS 7 |
3. 开启PostGIS扩展
1 | 切换postgres用户 |
每个数据库,需要单独开启各自的PostGIS扩展插件
4. 验证PostGIS扩展
1 | 执行查询语句不报错,验证成功 |
1 | 查询全部postgis扩展及其版本信息 |
GeoServer
版本:
GeoServer简介
Geoserver是一个J2EE开发的OpenGIS Web 服务器,可以发布地图服务,给WebGIS开发提供对地图的更新,删除和修改等操作。
GeoServer是OGC Web服务器规范的J2EE实现,利用GeoServer可以方便地发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过GeoServer可以比较容易地在用户之间迅速共享空间地理信息。
GeoServer特点
- 兼容WMS和WFS特性
- 支持PostGIS、Shapefile、ArcSDE、Oracle、VPF、MySQL、MapInfo
- 能够将网络地图输出为JPEG、GIF、PNG、SVG、KML等格式
- 能够运行在任何基于J2EE/Servlet容器之上
- 完全开源免费
GeoServer安装过程
由于GeoServer是基于Java开发的。因此在安装之前,必须确保安装了Java。
1. 安装Java环境
GeoServer需要Java 8或Java 11环境
1 | yum install java-1.8.0-openjdk |
1 | 验证java环境 |
1 | [root@WSZ031205 ~]# java -version |
1. 远程下载GeoServer压缩包
1 | 安装wget远程下载工具(如已安装,可忽略) |
2. 解压GeoServer压缩包到指定安装目录
1 | 安装解压工具(如已安装,可忽略) |
3. 添加环境变量
1 | 添加以下环境变量 |
4. 启动GeoServer服务
1 | 启动并后台运行,日志输出到指定文件中 |
5. 登录GeoServer的Web管理系统
浏览器访问http://ip:8080/geoserver
,默认用户名:admin
,密码:geoserver
6. 修改登录密码
7. 初步使用GeoServer的Web管理系统
1. 初步认识
GeoServer的控制和管理是基于网页形式,所有和GeoServer相关的操作都要通过这个Web管理界面来进行,包括全局设置、数据发布与服务配置等。
与ArcMap、QGIS将整个地图处理为.mxd或.qgs不同的是,GeoServer使用的是图层与图层组的概念
。将在服务器上准备发布为服务的数据定义为一组数据集,然后规定在发布为Web服务时的一些参数。
GeoServer在安装后已经自带了一些样例图层与服务。
2. 预览图层
在GeoServer的Web管理页面的左边菜单的数据
部分,单击Layer Preview
菜单项,将在页面的右边部分列出了所有可预览的图层。滚动找到USA图层USA Population
,如下图所示,然后单击OpenLayers
链接。
此外,还可以从每行的最右边的下拉列表框中选择WMS>OpenLayers
,实现同样的功能。仔细查看下拉列表框中的内容,了解GeoServer支持的不同输出格式。
在GeoServer图层预览列表页面,滚动到Tasmania
图层组(绿色的正方形符号)行,单击OpenLayers
链接,使用OpenLayers打开Tasmania图层组,可以看到3个图层都显示在地图中了。
3. 初步使用
创建工作区(命名空间URI可随意写一个地址,建议勾选为默认工作区)
添加数据存储
发布数据(数据源添加成功后会自动跳转至图层界面)
预览新发布的图层
至此,初步完成PostgreSQL+PostGIS+Geoserver的环境部署