GeoServer+PostgreSQL+PostGIS+Tomcat+QGIS一整套发布部署

本文提供了一步一步的指导,介绍如何部署包括Tomcat、Postgres、PostGIS、JDK、QGIS和GeoServer在内的地理信息系统环境。从环境变量配置到具体软件的安装及设置,帮助读者顺利完成部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1 准备的软件 

1.1 主要软件

1.2 辅助软件

2 部署jdk以及环境变量

2.1 右击我的电脑->属性->高级系统设置->环境变量 

2.2 在系统变量区域新建一个JAVA_HOME,变量值为上一步JDK安装目录

2.3 编辑PATH变量,新增环境变量%JAVA_HOME%\bin

2.4 新增系统变量CLASSPATH,变量值输入.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)

2.5 连续点击确定保存之后,打开命令提示符窗口,输入“java -version”,按回车键之后,出现jdk的版本,代表jdk环境变量配置成功

3 部署tomcat以及环境变量

3.1 下载后解压

3.2 找到 tomcat 解压路径,配置三个环境变量 

3.3 启动tomcat,查看到8080页面说明成功 

4 部署postgres以及postgis以及环境变量

4.1 部署postgres,基本下一步下一步确定就好了,密码自定义

4.2 部署postgis,安装在postgres同目录下,基本下一步下一步是是是确定就好了,密码,空间库名称自定义

4.3 重启电脑,然后链接postgres以及postgis,看是否成功

5 部署安装QGIS,设置中文以及链接PostGIS空间库

5.1 部署安装QGIS,基本是下一步下一步确定点点点

5.2 设置中文,选择完成重启该软件 

5.3 链接PostGIS空间库

5.4 数据通过QGIS导入PostGIS空间库

5.5 通过QGIS设置图层的样式sld

6 部署安装geoserver以及注意事项

6.1 部署安装geoserver

6.2 geoserver自定义切片地址

6.3 geoserver跨域,要么修改web.xml,要么部署nginx代理转发

7 geoserver发布地图

7.1 geoserver发布wms以及wfs

7.1.1 先建立工作区

7.1.2 添加数据存储

7.1.3 点击图层添加新资源并发布数据

7.1.4 点击图层预览,选择openlayer

7.1.5 选择样式,添加样式,并验证无问题

7.1.6 点击图层->发布

7.1.7 样式加载请注意: 倘若遇到这种问题

7.1.8 WFS查看

7.2 geoserver发布wmts

7.2.1 切片之前建立自己的对应坐标系网格集

7.2.2 缓存默认修改

7.2.3 切片图层点击Seed/Truncate

7.2.4 GWC填写提交

7.3 注意:Geoserver发布影像时黑背景问题

7.4 注意:Geoserver发布存在的几个问题


1 准备的软件 

1.1 主要软件

        tomcat+postgres+postgis+jdk+qgis+geoserver;

1.2 辅助软件

        解压包+浏览器+cesiumLab+npp

2 部署jdk以及环境变量

下一步下一步,点点点,然后关闭

2.1 右击我的电脑->属性->高级系统设置->环境变量 

2.2 在系统变量区域新建一个JAVA_HOME,变量值为上一步JDK安装目录

2.3 编辑PATH变量,新增环境变量%JAVA_HOME%\bin

2.4 新增系统变量CLASSPATH,变量值输入.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)

2.5 连续点击确定保存之后,打开命令提示符窗口,输入“java -version”,按回车键之后,出现jdk的版本,代表jdk环境变量配置成功

3 部署tomcat以及环境变量

3.1 下载后解压

3.2 找到 tomcat 解压路径,配置三个环境变量 

(注意红色区域都要拷贝放进去)

新建 CATALINA_HOME 环境变量,CATALINA_HOME = C:\Users\54061\Desktop\apache-tomcat-8.5.61

 新建 CATALINA_BASE 环境变量,CATALINA_BASE = C:\Users\54061\Desktop\apache-tomcat-8.5.61

 修改 Path ,在 Path 后添加  ;%CATALINA_HOME%\lib;%CATALINA_HOME%\bin;

3.3 启动tomcat,查看到8080页面说明成功 

 

4 部署postgres以及postgis以及环境变量

4.1 部署postgres,基本下一步下一步确定就好了,密码自定义

倘若遇见An error occured executing the Microsoft VC++ runtime installer警告窗体

则cmd该存放安装包的目录,输入如下命令:postgresql-9.6.18-1-windows-x64.exe --install_runtimes 0

 

 

 

4.2 部署postgis,安装在postgres同目录下,基本下一步下一步是是是确定就好了,密码,空间库名称自定义

 

 

 

 

4.3 重启电脑,然后链接postgres以及postgis,看是否成功

 

5 部署安装QGIS,设置中文以及链接PostGIS空间库

5.1 部署安装QGIS,基本是下一步下一步确定点点点

5.2 设置中文,选择完成重启该软件 

重启该软件

5.3 链接PostGIS空间库

5.4 数据通过QGIS导入PostGIS空间库

 

 

5.5 通过QGIS设置图层的样式sld

6 部署安装geoserver以及注意事项

6.1 部署安装geoserver

把geoserver包复制进该文件夹目录下,点击tomcat目录中bin文件夹下的startup.bat文件,启动该项目

 

 安装谷歌浏览器,能访问该页面说明成功,账号密码:admin/geoserver

6.2 geoserver自定义切片地址

安装npp辅助软件,geoserver设置切片缓存路径:

"C:\Users\administrator\Desktop\apache-tomcat-8.5.61\webapps\geoserver\WEB-INF\web.xml"

 <!--配置切片存放路径 -->
    <context-param>
      <param-name>GEOWEBCACHE_CACHE_DIR</param-name>
      <param-value>C:\Users\54061\Desktop\geoserverData</param-value>
    </context-param>

6.3 geoserver跨域,要么修改web.xml,要么部署nginx代理转发

一般各版本的windows安装包中会包含跨域需要的jar包,所以可以把该jar包(一般是2个)拷贝到各个lib!具体如下:

安装成功后在安装目录可以看到如下结构:

复制jetty-servlets-9.4.18.v20190429.jar、jetty-util-9.4.18.v20190429.jar两个包至geoserver\webapps\geoserver\WEB-INF\lib文件夹中

 打开WEB-INF下的web.xml进行如下配置

 

 将下面注释调的内容取消注释,大概在170行和225行。

<filter>
    <filter-name>cross-origin</filter-name>
    <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
    <init-param>
      <param-name>chainPreflight</param-name>
      <param-value>false</param-value>
    </init-param>
    <init-param>
      <param-name>allowedOrigins</param-name>
      <param-value>*</param-value>
    </init-param>
    <init-param>
      <param-name>allowedMethods</param-name>
      <param-value>GET,POST,PUT,DELETE,HEAD,OPTIONS</param-value>
    </init-param>
    <init-param>
      <param-name>allowedHeaders</param-name>
      <param-value>*</param-value>
    </init-param>
  </filter> 
<filter-mapping>
    <filter-name>cross-origin</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

 或者将上述内容复制过去也可。

然后重启geoserver服务即可解决跨域问题。(我本身2.17.2,用了2.18.0的jar包 有用)

7 geoserver发布地图

进入geoserver界面,把图层,存储,工作区,样式能删除的全部删除

 

 

 

7.1 geoserver发布wms以及wfs

7.1.1 先建立工作区

7.1.2 添加数据存储

 

 

7.1.3 点击图层添加新资源并发布数据

7.1.4 点击图层预览,选择openlayer

7.1.5 选择样式,添加样式,并验证无问题

 

7.1.6 点击图层->发布

 

 

7.1.7 样式加载请注意: 倘若遇到这种问题

<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE ServiceExceptionReport SYSTEM "http://localhost:8080/geoserver/schemas/wms/1.1.1/WMS_exception_1_1_1.dtd"> <ServiceExceptionReport version="1.1.1" >   <ServiceException>
      The requested Style can not be used with this layer.  The style specifies an attribute named &apos;YDXZ&apos;, not found in the &apos;GHSJ_TDGH_MBNGH_GTKJZTGH&apos; layer
</ServiceException></ServiceExceptionReport>

 一般是QGIS图层生成的sld为大写的字段名称,而geoserver为小写的,所以要替换成小写的,把sld打开,例如字段名称:YDDM替换成yddm,解决!

7.1.8 WFS查看

图层预览中->所有格式->中选择GeoJson

 

7.2 geoserver发布wmts

就是基于发布得WMS进行切片

7.2.1 切片之前建立自己的对应坐标系网格集

 

7.2.2 缓存默认修改

7.2.3 切片图层点击Seed/Truncate

7.2.4 GWC填写提交

7.3 注意:Geoserver发布影像时黑背景问题

在图层数据中修改如下:

7.4 注意:Geoserver发布存在的几个问题

其中部署tomcat8和9两个版本

部署geoserver好几个版本,分别测试

第一:windows安装版本  在windows上安装  无论windows10还是windows server服务器都能正常运行,比如发布wms  wmts  wfs一切正常;

第二:windows10部署tomcat包 启动geoserver.war包会存在若干问题!有时候删除本身首次启动自带图层,样式,图层组,存储区,工作区,重启一下 这些又回来了,等于是重启了,初始化了所有参数,但是windows server服务器部署tomcat包 启动geoserver.war就不存在这些问题,一切都正常;

第三:linux部署tomcat包 启动geoserver.war包会存在若干问题!但是不能切片,也就是wmts,报错找不到该图层!其他功能目前测试正常!

这是折腾了我三天找到的不同地方!起初吓我一跳,以为哪里出了问题!后面确定是软件或环境会导致不同的功能差异!

7.5 注意:Geoserver发布存切片谨慎注意的过程

存在一个按需切片或者预制切片

(1)发布wfs没问题,不用管,但是在Tile Layers中点击Seed/Truncate,在提交的submit过程中默认是按需切片,就是你点击它会无效,不执行切片工作

(2)你要在GeoServer的Web管理页面窗口的左边单击"Tile Caching"中的"Tile Layers"链接,在右边窗口进入Tile Layers页面。

    单击"Add a new cached layer",进入New Cached Layer页面,再勾选"mymvt:CSZTGH",并点击“Configure selected layers with caching defaults"。(如果Tile Layers已经存在该mymvt:CSZTGH选项,那么先移除它Remove selected cached layers,再来单击"Add a new cached layer",进入New Cached Layer页面,再勾选"mymvt:CSZTGH",并点击“Configure selected layers with caching defaults",后面submit就执行预制切片,就没有什么问题了)

Leaflet是一个基于Web的交互式地图库,Geoserver是一个开源的地理空间数据服务器,PostGIS是一个基于PostgreSQL的地理空间数据库扩展。 在使用Leaflet、GeoserverPostGIS来构建Web GIS应用程序时,通常的工作流程如下: 1. 准备地理空间数据并将其加载到PostGIS数据库中。 2. 配置Geoserver以访问PostGIS数据库,并将数据发布为Web服务。 3. 在Leaflet中编写JavaScript代码,以访问Geoserver发布的Web服务,并在Web页面上呈现地图。 具体步骤如下: 1. 准备地理空间数据并将其加载到PostGIS数据库中。 首先,需要安装PostgreSQLPostGIS扩展。然后,在PostgreSQL数据库中创建一个新的数据库,并在该数据库中启用PostGIS扩展。接下来,使用QGIS等GIS软件来创建或导入地理空间数据,并将其保存为PostGIS支持的格式(例如Shapefile)。最后,使用PostgreSQL客户端工具(例如pgAdmin)将地理空间数据加载到PostGIS数据库中。 2. 配置Geoserver以访问PostGIS数据库,并将数据发布为Web服务。 打开Geoserver的Web界面,在数据存储中添加新的PostGIS数据库,并配置数据库连接参数。然后,在Geoserver中创建工作区和数据图层,并将其发布为Web服务。在此过程中,可以选择不同的发布格式(例如WMS、WFS等)和地图样式(例如SLD文件)。 3. 在Leaflet中编写JavaScript代码,以访问Geoserver发布的Web服务,并在Web页面上呈现地图。 在HTML页面中引入Leaflet库和Leaflet插件(例如Leaflet.markercluster)。然后,在JavaScript代码中编写Leaflet地图对象,并使用Ajax请求访问Geoserver发布的Web服务。最后,将地图对象添加到HTML页面中,以呈现交互式地图。 总之,Leaflet、GeoserverPostGIS可以一起使用来构建功能强大的Web GIS应用程序,可以实现从数据管理到地图呈现的全流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

挣钱花388

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值