meface/docs/article/gis/geoserver/postgis_table.md

113 lines
4.2 KiB
Markdown
Raw Normal View History

2023-11-17 10:54:23 +08:00
---
title: 发布PostGIS表
date: 2021-01-02
author: ac
tags:
- GeoServer
- PostGIS
categories:
- GIS
---
### 一、环境准备
> PostgreSQL 与 PostGIS 版本的对应关系https://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS
![image-20210103112553404](./images/image-20210103112553404.png)
#### 1. 安装PostgreSQL
在决定好[PostgreSQL](https://www.postgresql.org/download/)和[PostGIS](http://postgis.net/install/)的版本后去下载相应版本的安装包。这里使用的是windows平台下的
#### 2.安装PostGIS
![image-20210103124629859](./images/image-20210103124629859.png)
安装完`PostgreSQL`后,开始安装空间数据的扩展模块`PostGIS`。
安装方式都比较简单一直下一步就可以安装成功。安装PostGIS过程中可以选择创建空间数据库的模版数据库勾选后会提示输入本地安装的`PostgreSQL`用户密码和被创建的模版数据库名称。
![image-20210104193738153](./images/image-20210104193738153.png)
![image-20210104193553642](./images/image-20210104193553642.png)
![image-20210104193649416](./images/image-20210104193649416.png)
安装完 PostGIS 后PostGIS 是作为一个可选的扩展模块,如果要使用它,除了模版数据库外,其他数据库必须在数据库中启用它。
```sql
-启用PostGIS从3.0版开始仅包含geometry/geography
CREATE EXTENSION postgis;
```
启动成功后库中就会多一张`spatial_ref_sys`表。
![1614651456262](./images/1614651456262.png)
### 二、示例
现在根据GeoServer官网上的教程走一遍
#### 1.下载数据
[`nyc_buildings.zip`](https://docs.geoserver.org/2.13.2/user/_downloads/nyc_buildings.zip) 。
<img src="./images/1614651794891.png" alt="1614651794891" style="zoom: 67%;" />
#### 2.导入数据
将`nyc_buildings.sql`的内容粘贴到查询窗口中执行刷新Tables就可以看到对应的表了
![1614653900504](./images/1614653900504.png)
#### 3. 添加新的workspace
填写配置信息。
<img src="./images/1614654613622.png" alt="1614654613622" style="zoom:67%;" />
> 工作区名称是描述项目的标识符。不能超过10个字符也不能包含空格。名称空间URI(统一资源标识符)通常可以是与项目关联的URL并添加一个指示工作区的尾随标识符。文件中的名称空间URI不需要解析为实际有效的web地址。
#### 4. 新增数据存储
![1614654863978](./images/1614654863978.png)
选择`PostGIS-PostGIS Database` 数据源。
<img src="./images/1614654957830.png" alt="1614654957830" style="zoom:80%;" />
<img src="./images/1614655151107.png" alt="1614655151107" style="zoom: 67%;" />
选择新建的工作区,配置数据源名称,填写刚导入数据的数据库的连接信息。
> 其中的`Expose primary keys` 是暴露主键每张导入postgis的矢量数据表都会生成一个`gid`属性作为矢量数据记录的标识。对于事务WFS该表必须具有主键。没有主键的表被视为对 GeoServer 只读。
>
#### 5. 创建图层
![1614655648265](./images/1614655648265.png)
在保存数据源后,系统会检测该数据源中存在的矢量数据。这里我点击“发布”就可以进入图层的配置界面:
主要的配置是【数据】tab页的 **坐标参考系统**、**边框** ,这里已经识别了数据的坐标参考系,点击"从数据中计算"和"Compute from native bounds"就会填充数据边框。
![1614655982617](./images/1614655982617.png)
关于图层的样式在【发布】tab页的WMS settings 中的Default Style 进行配置这里我们选择了GeoServer自带的默认的面样式。选择完后点击“保存”图层就发布完毕了。
<img src="./images/1614656321318.png" alt="1614656321318" style="zoom:80%;" />
#### 6.图层预览
返回主页,点击`layer Preview`,选择需要预览的图层的预览格式。也可以直接点击"Common Formats"中的`Openlayers`进行预览。
![1614656685144](./images/1614656685144.png)
这里选择`PNG`图片格式查看。
<img src="./images/16146568142281.png" alt="16146568142281" style="zoom:67%;" />
### 参考文献
[1] `Publicshing a PostGIS Table` https://docs.geoserver.org/latest/en/user/gettingstarted/postgis-quickstart/index.html