入库并发布地图服务
把本地的 Shapefile、GeoJSON 等成果导入 PostGIS,再发布成 GeoServer 的 WMS / WFS 图层并配好样式,一次对话完成从文件到服务。适合把分析成果交给 WebGIS 系统、共享给同事或业务平台使用。
你会得到什么
- PostGIS 中的新表(带空间索引和系统主键
_id); - GeoServer 上的图层,名称为“工作空间:表名”,提供 WMS / WFS;
- 按字段和几何类型编写的 SLD 样式,已设为图层默认样式。
准备
| 需要 | 说明 |
|---|---|
| PostgreSQL / PostGIS 连接器 | 填写主机、端口、数据库、用户、密码,权限选「读写」;数据库需要已启用 PostGIS 扩展 |
| GeoServer 连接器 | 服务地址填到 /geoserver 为止,账号需要有 REST 写权限,权限选「读写」 |
| 网络 | GeoServer 服务器要能用 PostGIS 连接器里填的地址访问到数据库 |
连接器在「设置 → 连接器」里添加,填好后点「测试」,见连接器。密码只保存在本机,大模型看不到。
这样说
把
D:\data\landuse.shp导入 PostGIS 的 analysis schema,表名 landuse_2024,坐标系 EPSG:4490;然后发布到 GeoServer 的 planning 工作空间,按 dlmc 字段的地类分类设色,耕地黄色、林地绿色、水域蓝色、建设用地红色,其他灰色;发布完告诉我图层名和范围。
智能体会怎么做
- 检查数据:用 GDAL 查看 Shapefile 的坐标系、字段和要素数;
- 转换格式:PostGIS 插件导入的是 GeoJSON / GeoJSONSeq,先用 GDAL 把 Shapefile 转成 GeoJSON;
- 入库:建表并导入,属性列自动推断类型,几何列建空间索引。整个导入在一个事务里完成,失败自动回滚,不会留下半张表。写库需要审批;
- 发布:把 PostGIS 表发布为 GeoServer 图层,工作空间和数据存储不存在时自动创建,需要审批;
- 配置样式:根据字段取值和几何类型写一份 SLD,上传并设为图层默认样式,需要审批;
- 核对:查询图层清单和范围,在回复里告诉你图层名和经纬度范围。
如果某一步缺少权限(例如连接器是「只读」),会直接报错并说明原因,不会绕过。
检查成果
- 打开 GeoServer 管理页面的图层预览,查看样式效果;
- 在 QGIS 里加载这个 WMS / WFS 图层检查(见在 QGIS / ArcGIS 里出图);
- 在「数据源」页面点「刷新」,新表和 GeoServer 图层会出现在对应分组里,见数据源。
接着可以说
- “列出 GeoServer 上的工作空间和图层”
- “看一下 analysis.landuse_2024 的字段、坐标系和要素数”
- “把今天新做的 result.geojson 追加到这张表”
- “把
_id为 12 的记录的 dlmc 改成林地” - “样式里加上地类名称标注,1:1 万以上比例尺才显示”
- “数据量太大了,改成矢量瓦片发布”(见Web 地图瓦片与三维)
注意
- 只发布 PostGIS 表:GeoServer 插件发布的数据源仅限 PostGIS 表,Shapefile、GeoTIFF 等文件需要先入库;
- 连接权限:只浏览和查询可以用只读账号;入库、发布、改样式都需要「读写」连接器,只读连接器会直接拒绝;
- 数据库地址:PostGIS 连接器里的主机、端口、账号会写入 GeoServer 的数据存储。你在本机用
localhost连数据库、而 GeoServer 在另一台机器上时,GeoServer 会连不上,这种情况连接器里要填服务器能访问的地址; - 命名:schema、表、工作空间等名称只允许字母、数字、下划线和连字符,不能用中文;
- MySQL:MySQL 插件同样支持 GeoJSON 入库,但 GeoServer 插件只能发布 PostGIS 表;
- 加密连接:PostGIS、MySQL 连接目前不支持 SSL 加密。