GeoServer 发布 PostGIS 数据源

0 阅读6分钟

^ 关注我,带你一起学GIS ^

前言

GeoServer 是一个基于Java的GIS服务器,它使用户能够查看和编辑地理空间数据。GeoServer遵循开放地理空间联盟(OGC)制定的开放标准,在地图创建和数据共享方面提供了极大的灵活性。

文中以GeoServer2.28.2为例进行讲解。

如果你还没有看过,建议从以上内容开始。

1. 软件环境

本文使用如下软件环境,以供参考。

时间:2026年

系统:Windows 11

openjdk: 17.0.14

GeoServer:2.28.2

2. GeoServer 账户信息

GeoServer 默认账号信息

访问地址:http://localhost:8080/geoserver

端口:8080

账户: admin

密码:geoserver

3. 数据准备

俗话说巧妇难为无米之炊,数据就是软件开发的基石,没有数据,再美好的设想都是空中楼阁。因此,第一步需要下载GIS数据。

别急,GIS之路公众号都给你准备好了

在公众号后台回复关键字:vector,获取数据下载链接。

河流示例数据在ArcGIS Pro中打开显示如下。

4. 创建PostgreSQL数据库

PostGIS作为PostgreSQL的空间拓展,需要先安装PostgreSQL数据库才能使用。如果你的电脑或服务器没有PostgreSQL服务,那么请先安装好PostgreSQL数据库,并且安装兼容的PostGIS拓展。

使用PostgreSQL数据库管理工具pgAdmin创建数据库,填写数据库名称、注释信息,然后点击保存。

geoserver-ds数据库创建完成之后,要记得开启空间拓展。使用如下命令创建空间拓展。

create extension postgis;

运行成功之后,展开public模式,在Tables上右键,点击刷新,可以看到表spatial_ref_sys。在SQL编辑区运行语句:

select * from spatial_ref_sys

表中存储着空间参考数据。

5. 将 Shp 导入 PostGIS 空间数据库的五种方式(全)

经过上一节,已经完成了PostgreSQL数据库的创建。由于我们创建的是空库,还缺少空间数据,要使用GeoServer发布PostGIS服务的话,还需要将空间数据导入到空间数据库中。

Shapefile作为一种通用的矢量数据格式,在GIS领域有着广泛应用,如何将Shp数据导入到PostGIS空间数据库也有很多方式可以实现。

具体详情可以参考以下文章。****

将 Shp 导入 PostGIS 空间数据库的五种方式(全)

如下,我导入了一份河流数据river

6. GeoServer 服务发布流程

GeoServer发布服务流程图。最主要的步骤便是创建工作空间->创建存储仓库->新建数据源。

7. 创建工作空间

工作空间是一个用于将相似图层组合在一起的容器。虽然这是一个可选项,因为可以使用已经存在的工作空间,但是,在使用习惯上仍然建议为每个项目创建一个单独的工作空间,其中包括相互关联的存储仓库和图层。

在管理界面数据选项中,点击工作空间,然后选择添加新的工作空间。

填写工作空间名称为postgis-server,命名空间URI为http://geoserver.org/postgis

工作空间名称是描述项目的标识符。不得超过十个字符,也不得包含空格。命名空间URI(统一资源标识符)通常可以是与项目相关联的URL,并在末尾添加一个标识符来表示工作区。命名空间URI字段无需解析为实际有效的网址。

如有需要还可以将默认工作空间复选框勾选上,填写完成点击保存按钮进行提交。

成功之后可在工作空间列表页面查看。

8. 创建存储仓库

添加了工作空间之后,就可以新建存储仓库了。该存储告诉GeoServer如何连接到PostGIS

在管理界面数据选项中,选择存储仓库,然后点击【打开新的存储仓库】。在该页面中,显示存储仓库列表,并且可以看到存储仓库启用状态。

打开新建数据源界面,在矢量数据源下点击PostGIS,打开新建矢量数据源界面。

在存储仓库基本信息的下拉列表中选择新建的工作空间,然后填写数据源名称和数据说明。在连接参数中填写数据库信息,然后点击保存。

  • 工作空间:geopackage
  • 数据源名称:geopackage
  • 说明:geopackage data
  • 数据库连接信息
    • 主机地址:localhost(修改为自己的数据库地址)
    • 端口号:5432(默认端口号)
    • 模式:public(默认模式)
    • 用户名:postgres
    • 密码:******

在新建图层页面会展示数据源列表,点击操作列下面的【发布】按钮。由于在geoserver-ds只导入了一份空间数据,所以此处只显示river数据集。

在编辑图层页面填写摘要信息。

选择坐标系统。发布数据前记得查看数据坐标系,GeoServer中默认会使用WGS84,也就是EPSG:4326进行发布。如果数据坐标系不正确,则无法正确计算边框范围,会导致服务无法正常显示。点击查找按钮,打开坐标系搜索面板。在搜索框中输入EPSG编号进行搜搜。

在边框选项中计算图层范围。首先点击从数据中计算,生成边框范围,然后点击从原始边界计算。

在要素类型选项下可以查看数据属性字段及其类型信息。

点击顶部【发布】选项卡,浏览到WMS设置,在图层设置中选择默认样式为【line】。面要素选择【polygon】,点要素选择【point】。

设置完成之后点击【保存】按钮。

9. 图层预览

打开图层预览界面,在顶部搜索框键入"world"进行搜索,找到world图层,点击"OpenLayers"查看地图。

地图预览界面显示如下,点击要素,会在下方显示属性信息。

GIS之路 开发示例数据下载,请在公众号后台回复:vector

全国信息化工程师-GIS 应用水平考试资料,请在公众号后台回复:GIS考试


GIS之路 公众号已经接入了智能助手**,** 可以在对话框进行提问,也可以直接搜索历史文章进行查看。

都看到这了,不要忘记点赞、收藏 + 关注

本号不定时更新有关 GIS开发 相关内容,欢迎关注 !