1.Linux服务器安装Geoserver
注:确保系统已经有Java环境,GeoServer要求具备Java8或Java11环境
进入下载界面 https://geoserver.org/release/stable/ 选择独立于平台的二进制版本下载
官方推荐安装路径为 /usr/share/geoserver
添加环境变量,给当前用户添加文件权限
echo "export GEOSERVER_HOME=/usr/share/geoserver" >> ~/.profile
. ~/.profile
# USER_NAME 当前用户名
sudo chown -R USER_NAME /usr/share/geoserver/
编辑start.ini文件修改端口号,这里修改为8787端口,默认是8080
启动geoserver服务
# 进入到bin目录,授予执行 .sh的权限
cd /usr/share/geoserver/bin
chmod u+x *.sh
# 后台执行启动的.sh脚本并保持一直运行
nohup ./startup.sh &
# 打开服务器的对应8787端口
firewall-cmd --add-port=8787/tcp --permanent
# 重新加载防火墙
firewall-cmd --reload
在浏览器中访问服务器的8787端口加geoserver就能访问了
示例 : http://172.16.42.178:8787/geoserver/
初始账号密码: admin/geoserver
2. 安装 postgresql数据库及Postgis 扩展
注:本文以linux CentOS7 x86架构系统为例,其他类型的操作系统的安装请参考官网:
https://www.postgresql.org/download/
2.1 postgresql数据库安装及使用
下载、安装、启动
# 下载安装包 repository RPM:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# 下载 PostgreSQL:
sudo yum install -y postgresql14-server
# 初始化数据库 以服务方式自启动:
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14
配置、创建数据库
使用postgres用户登录(PostgresSQL安装后会自动创建postgres用户,无密码, 不用担心放心大胆走), 然后登录数据库
# 用postgres用户
su - postgres
# 登录数据库
psql
创建用户和数据库并授权
# 创建用户
create user jmzhsq_tx with password 'giseryin';
# 创建数据库
create database jmzhsq_tx owner jmzhsq_tx;
# 授权, 就是把创建的数据库授权给你创建的用户
grant all privileges on database jmzhsq_tx to jmzhsq_tx;
# 退出psql(输入 \q 再按回车键即可), 就是进入一个bash了
\q
开启远程访问
修改/var/lib/pgsql/14/data/postgresql.conf文件,取消 listen_addresses 的注释,将参数值改为“*”, 原本是localhost的, 改成 *
修改/var/lib/pgsql/14/data/pg_hba.conf 文件
开放postgresql远程访问端口
# 打开数据库的对应5432端口
firewall-cmd --add-port=5432/tcp --permanent
# 重新加载防火墙
firewall-cmd --reload
重启postgresql服务 ,测试数据库连接
systemctl restart postgresql-14.service
2.2 Postgis 安装及使用
# PostGIS从2.0之后,要安装很多依赖组件,为了便于依赖组件的安装,先安装`epel (Extra Packages for Enterprise Linux)`
yum install epel-release
# 查看可用的postgis的包,选择和postgresql-14对应的所有版本,建议安装:postgis32_14.x86_64
yum list postgis*
# 安装postgis组件,全部确定、继续
yum install postgis32_14.x86_64
# 安装成功后可以利用命令查看安装信息
rpm -qi postgis32_14
登录数据库,添加postgis 扩展
#切换数据库系统用户 postgres
su - postgres
# 登录创建的数据库 -U 用户名 -h 数据库IP -p 数据库端口 -d 数据库名称
# psql -U jmzhsq_tx1 -d jmzhsq_tx1 -h 192.168.10.224 -p 5432
# psql -
# 添加Postgis扩展
# Enable PostGIS (as of 3.0 contains just geometry/geography)
CREATE EXTENSION postgis;
# enable raster support (for 3+)
CREATE EXTENSION postgis_raster;
# Enable Topology
CREATE EXTENSION postgis_topology;
# Enable PostGIS Advanced 3D
# and other geoprocessing algorithms
# sfcgal not available with all distributions
CREATE EXTENSION postgis_sfcgal;
# fuzzy matching needed for Tiger
CREATE EXTENSION fuzzystrmatch;
# rule based standardizer
CREATE EXTENSION address_standardizer;
# example rule data set
CREATE EXTENSION address_standardizer_data_us;
# Enable US Tiger Geocoder
CREATE EXTENSION postgis_tiger_geocoder;
验证Postgis扩展
select postgis_version();
2.3 pg 数据库导入shp图形数据
QGIS安装
qgis官网下载对应系统版本的安装包 https://www.qgis.org/en/site/forusers/download.html ,按步骤下载安装即可
新建数据库连接
添加本地矢量图层
打开工具箱,使用 【Export to Postgresql】工具将图形导入到pg数据库中
刷新数据库,看到刚导入的数据
3. GeoServer 发布wms、wmts地图服务
3.2 wms 矢量要素发布
添加新的工作空间
添加新的存储仓库,选择数据源,这里选择数据源为postgis,填写数据库基本信息,保存
添加新的图层,并发布
发布栏选择图层样式
图层预览查看发布图层
3.3 wmts 切片服务发布
**wmts服务的发布基于wms,在此基础上进行切片并在服务器上存储为栅格图片 提高地图加载效率,本文以GeoTiff格式的卫星影像为例进行 wmts服务的发布**