geoserver

geoserver

  • 总 —— 配置建议
    • 数据源选择
    • QGIS配色相关
      • 透明度设置
  • 安装配置
    • Windows
      • jdk环境配置
      • geoserver安装
        • 安装一体化包(基于 jetty 推荐)
        • 基于tomcat安装
    • Linux(centos7.9)
      • 基于 tomcat 安装
  • geoserver
    • 性能调优
      • JVM内存调整
      • 启用 CORS
      • 日志级别调整
      • 将 tomcat 主页修改为 geoserver 主页
      • 允许目录访问(一般不要开)
      • Feature type cache size调整依据
      • Tomcat修改端口
    • geoserver配置
      • 千万别做的事
      • 建议尽量这么做
      • 开启 JSONP
      • 开启 WMS 与 WMTS 的集成(不太建议)
    • 启动
    • geoserver主页
    • GeoWebCache
      • 切片前配置
      • geoserver中的集成页面
      • 独立控制页面
    • 发布WMTS
      • 使用 QGIS 切图发布(mbtiles类型)
      • 基于 PostGIS 发布
    • 发布WFS
      • 发布WFS的必要操作步骤
    • 发布注记数据
    • 发布图层组
    • 矢量切片
  • geoserver插件
    • 下载地址
    • mbtiles
    • wps
  • tomcat预配置(碰不到服务器的时候先配这个)
    • 启用管理员账户
    • 调整允许上传文件大小
  • 数据处理部分(非常规方法)
    • gdal环境配置
    • img转tif(gdal)
  • 实例
    • 点使用图片
    • 修改postgis字段名

 
 
 
 
 
 
 
 

总 —— 配置建议


 

数据源选择

1、优先选择 PostGIS 作为数据源。PostgreSQL 具有优秀的空间索引、属性索引能力,可以提供快速的数据查询

 

2、次选 GeoPackage。若网络带宽很有限,或其他原因无法使用 PostGIS,

 

3、再次 Shapefile。 若需要在界面中展示数十万、上百万条数据,并且不涉及属性过滤,只是查看其几何形状

 
 

QGIS配色相关

 

透明度设置

qgis中要设置样式透明度需要从填充配置的内部去改,如下图修改透明图是有效的
geoserver_第1张图片
geoserver_第2张图片

但是从总体设置处改是无法应用到 sld 当中的,如下图的修改是不生效的(对于 SLD 来说)
geoserver_第3张图片

 
 
 
 
 
 
 
 

安装配置


 
 
 
 

Windows

 
 

jdk环境配置

geoserver以tomcat作为服务容器,所以需要依赖 jdk8 或者 jdk11
 
jdk8的下载地址(点击登录下载,oracle官方地址)

1、安装jdk
geoserver_第4张图片

geoserver_第5张图片

 

2、配置环境变量

新建系统变量 JAVA_HOME,地址 jdk 安装目录
geoserver_第6张图片

 

3、环境变量 Path 中添加 %JAVA_HOME%\bin、%JAVA_HOME%\jre\bin
在这里插入图片描述

 

4、cmd中执行 java、javac、java -version 查看环境是否配置成功

在这里插入图片描述
geoserver_第7张图片
在这里插入图片描述

 
 

geoserver安装

 

geoserver及其插件下载地址

 
 

安装一体化包(基于 jetty 推荐)

 

一体化包比较大,2.19.2 的 geoserver 包有 99M 大小,这个版本是基于 jetty 搭建的
geoserver_第8张图片

在这里插入图片描述

下载这个包后,直接解压,并进入其 bin 目录下运行 startup.bat 即可(要有 java 8 或者 java 11 的环境)
geoserver_第9张图片
此处注意:1、最好使用 cmd 来运行这个 bat 文件;2、windows下运行 .bat 文件,linux 下运行 .sh 文件
geoserver_第10张图片

 
 

基于tomcat安装

 

war包版本
geoserver_第11张图片
在这里插入图片描述

 

解压掉 geoserver 的压缩包,复制里面的 geoserver.war 到 tomcat 的 webapp 下
geoserver_第12张图片
geoserver_第13张图片

进入 tomcat 的 bin 目录
geoserver_第14张图片

运行 startup.bat。此处注意:1、最好使用 cmd 来运行这个 bat 文件;2、windows下运行 .bat 文件,linux 下运行 .sh 文件
geoserver_第15张图片

 
 
 
 

Linux(centos7.9)

 

Linux环境配置(本次的环境使用 centos 7.9 最小安装演示)

 

1、安装 net-tools(不装就用 ip addr show)、vim (个人习惯,可以不装。不装的话将后面所有 vim 命令换成 vi 即可)

安装net-tools
# yum install -y net-tools.x86_64
 
安装vim
# yum install -y vim

 

2、修改本机名及ip地址(把 ip 和 机器名固定下来,最好让客户的网管来做这个事)

1)、查看当前的网卡名,查看有ip地址对应的网卡名(如此处的eth0)

# ifconfig

geoserver_第16张图片

不装 net-tools 的话就用如下命令查看 ip 地址

# ip addr show

geoserver_第17张图片

2)、修改网络配置

# vim /etc/sysconfig/network-scripts/ifcfg-eth0

修改:

  • BOOTPROTO —— “static” 或者 “none”

最后添加:

  • IPADDR —— “ip地址”
  • GATEWAY —— “网关”
  • NETMASK —— “255.255.255.0”
  • DNS1 —— “dns地址”
  • DNS2 —— “备用dns地址”

原始如下
geoserver_第18张图片
修改后如下
geoserver_第19张图片

3)、重启网卡

# systemctl restart network

4)、修改机器名,步骤一

# vim /etc/hostname

原始如下
geoserver_第20张图片
修改后如下
geoserver_第21张图片

5)、修改机器名,步骤二

vim /etc/sysconfig/network

原始如下
geoserver_第22张图片
修改后如下
在这里插入图片描述

5)、修改机器名,步骤三,添加 ip 和域名的映射

vim /etc/hosts

geoserver_第23张图片

6)、使修改立即生效(其实是改临时的机器名,效果一样)

# hostname geoserver

 

3、开放端口 8080,依次执行

# firewall-cmd --zone=public --add-port=8080/tcp --permanent
# firewall-cmd --reload
# firewall-cmd --list-all

geoserver_第24张图片

 
 
 
 

基于 tomcat 安装

1、下载 jdk8
geoserver_第25张图片

2、丢到服务器上并解压(丢到 /usr/local/src)
geoserver_第26张图片

3、配置环境变量,此处我的 jdk 解压后的目录为 “/usr/local/src/jdk1.8.0_301”。添加环境变量步骤如下

1)、编辑 profile

# vim /etc/profile

进入后如下
geoserver_第27张图片

跳转到最后面,添加

JAVA_HOME=/usr/local/src/jdk1.8.0_281
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH

geoserver_第28张图片

2)、使用环境变量生效

# source /etc/profile

 

4、下载 tomcat8

完整安装包如下
geoserver_第29张图片

5、丢到服务器上,并解压开( 此处我丢到了 /usr/local/src )

tar -zxvf apache-tomcat-8.5.70-deployer.tar.gz

geoserver_第30张图片

6、将 geoserver 的 war 包同样丢到解压后的 tomcat 的 webapps 下(war包下载地址见本文上方 windows 安装处)

 

7、查看 8080 端口是否被占用

# netstat -anp | grep 8080

在这里插入图片描述

8、进入 tomcat --> bin 启动 tomcat

# ./startup.sh
geoserver_第31张图片

9、安装完成后,在客户端访问 http://192.168.1.64:8080/geoserver 查看是否可以访问
geoserver_第32张图片

10、也可以正常登录
geoserver_第33张图片

 
 
 
 
 
 
 
 

geoserver


 

geoserver 是 2001年纽约的The Open Planning Project (TOPP)孵化的,基于 java 编写的开源 gis 服务器,它实现了 OGC 的 WMS、WMTS、WFS、WPS 服务类型

geoserver 有两种安装类型,“一体化安装” 和 “基于tomcat 安装”

geoserver 的开发者还开源了另一个项目 GeoTools,这是一个开源的 GIS java 工具包,旨在增强对 shapefile、oracle 等数据库的支持

 
 
 
 

性能调优

 

JVM内存调整

调整可用内存,防止大数据发布或频繁请求时的堆栈溢出,建议修改为机器内存总量的 25%

 

进入 tomcat 的 bin 目录下,编辑(编辑前先备份一下)catalina.bat 文件

geoserver_第34张图片

在文件开头(@echo off下)添加如下内容

set JAVA_OPTS=-server -Xms256m -Xmx2048m

如:
geoserver_第35张图片

内容含义如下

  • -server —— 以服务运行
  • -Xms —— 最小内存占用(一般建议 256M)
  • -Xmx —— 最大内存占用(一般建议最大内存的 25%)

修改完后重启 tomcat

 
 

启用 CORS

修改文件 “webapps/geoserver/WEB-INF/web.xml”

tomcat 取消如下内容的注释

<filter>
  <filter-name>cross-originfilter-name>
  <filter-class>org.apache.catalina.filters.CorsFilterfilter-class>
  <init-param>
    <param-name>cors.allowed.originsparam-name>
    <param-value>*param-value>
  init-param>
  <init-param>
    <param-name>cors.allowed.methodsparam-name>
    <param-value>GET,POST,PUT,DELETE,HEAD,OPTIONSparam-value>
  init-param>
  <init-param>
    <param-name>cors.allowed.headersparam-name>
    <param-value>*param-value>
  init-param>
filter>

tomcat 8 大概在 193行左右,原始如下图
geoserver_第36张图片

修改后如下图
geoserver_第37张图片
第二处修改处如下,大概在 222行这里,同样解除注释,原始如下
geoserver_第38张图片

修改后如下
geoserver_第39张图片

 

jetty 如下配置,取消注释以下

<filter>
  <filter-name>cross-originfilter-name>
  <filter-class>org.eclipse.jetty.servlets.CrossOriginFilterfilter-class>
  <init-param>
    <param-name>chainPreflightparam-name>
    <param-value>falseparam-value>
  init-param>
  <init-param>
    <param-name>allowedOriginsparam-name>
    <param-value>*param-value>
  init-param>
  <init-param>
    <param-name>allowedMethodsparam-name>
    <param-value>GET,POST,PUT,DELETE,HEAD,OPTIONSparam-value>
  init-param>
  <init-param>
    <param-name>allowedHeadersparam-name>
    <param-value>*param-value>
  init-param>
filter>

jetty 做容器的话,将 170 行左右的内容解除注释
geoserver_第40张图片
第二处修改处如下(与 tomcat 相同),大概在 222行这里,同样解除注释,原始如下
geoserver_第41张图片

修改后如下
geoserver_第42张图片

 
 

日志级别调整

日志记录的过于频繁会显著影响服务器的性能,但是 debug 又要依赖于日志,所以在日常运行时,可以将日志调整为低记录级别

 

日志记录级别的调整进入全局设置
geoserver_第43张图片

其中,日志处的内容如下
geoserver_第44张图片
几个级别含义如下:

  • DEFAULT_LOGGING —— geoserver 默认开启的日志记录级别,相当于 GEOSERVER… 和 GEOTOOLS 的 INFO 级别
  • GEOSERVER_DEVELOPER_LOGGING —— 详细的日志记录级别,包括有关 geoserver 和 VFNY 的全部调试信息,geoserver的开发人员使用
  • GEOTOOLS_DEVELOPER_LOGGING —— 同上,不过记录的是 geotools 的全部调试信息,geotools 开发人员用
  • PRODUCTION_LOGGING —— 最小记录级别,生产环境推荐。只会记录 geoserver 和 geotools 的 warn 及以上级别
  • VERBOSE_LOGGING —— 最详细级别,包含了 geoserver 和 geotools 的全部调试信息

此处将日志记录级别调整为 “PRODUCTION_LOGGING” 级别,以减少日志与服务的IO争夺

 

另外也可以禁止 “记录到 stdout” 来禁止将日志输出到 tomcat 的控制台

此处调整后的参数如下图
geoserver_第45张图片

 
 

将 tomcat 主页修改为 geoserver 主页

1、以文本形式打开 tomcat --> conf --> server.xml
geoserver_第46张图片

2、拖到最下面,找到 <\host>标签,并在其中添加如下内容。其中 docBase 属性就是指向主页要访问的目录(因为在 webapps 目录下,所以直接输入目录名即可)

原始如下
geoserver_第47张图片
修改后如下
geoserver_第48张图片

3、以文本形式打开 tomcat --> conf --> web.xml ,拖到最下方,在 <\welcome-file-list> 标签若存在 index.html,则无须添加条目,若不存在则添加如下图中的 index.html 对应的条目

geoserver_第49张图片

4、重启 tomcat ,浏览器输入 localhost:8080,查看是否跳转到了 geoserver 的主页

 
 

允许目录访问(一般不要开)

以文本形式打开 tomcat --> conf --> web.xml ,搜索 listings,将其值改为 true,默认在 121 行

原始如下
geoserver_第50张图片
修改后如下
geoserver_第51张图片

 
 

Feature type cache size调整依据

featuretypes 的含义:featuretypes 又叫特征类型,是"数据存储"的描述类型,如当使用 shapefile 时,一个 feature type 与其 “数据存储” 是一对一的关系(即一个 shapfile 的数据存储就对应一个 feature type),当数据存储使用 postgis 时,feature type 与其的对应关系就是多对一
 
注意:featuretypes 是按照 工作区来区分的

 

处于性能提升的考虑,geoserver 会把数据库连接和schema缓存到内存中,参数 “Feature type cache size” 的值应当大于并发连接的 featuretypes(特征类型) 的数量。

 
 

Tomcat修改端口

进入 tomcat 的 conf 目录,找到server.xml
geoserver_第52张图片

 

大概在70行,找到 port=“8080” 改成你需要的端口即可
geoserver_第53张图片

 
 
 
 

geoserver配置

 

千万别做的事

1、可以删除 tomcat —> webapps 里面的非 geoserver 东西,但是 geoserver.war 和 geoserver 的目录一定不要删任何一个

 

 

建议尽量这么做

1、若数据源是 shapefile ,尽量保持 “数据存储” 和 “图层名”(即服务名)保持一致

 

2、若数据源是 pgsql,则 “图层名”(即服务名)尽量以 "数据存储-服务名"形式命名

 
 

开启 JSONP

若不开启 jsonp 则 wfs 服务的 返回格式无法使用 “text/javascript” 的格式
geoserver_第54张图片

 

开启方式,进入 webapps/geoserver/WEB-INF/web.xml ,修改大概 43 ~ 48 行内容(解除注释就行),原始如下
geoserver_第55张图片
修改后如下
geoserver_第56张图片

修改完后重启 tomcat

 
 

开启 WMS 与 WMTS 的集成(不太建议)

功能:当调用的 WMS 服务存在切片时,直接返回切片而不让服务器重新生成
 
注:GWC的集成与 openlayers 预览不兼容,因为 openlayers 的请求图片边界与 GWC 图层的不匹配,openlayers 会使用图层的 bounding box 来计算切片原点,当 bounding box 与 gridset 相同时,openlayers 也可调用 GWC 的切片数据

开启方式:

进入 geoserver --> caching defaults ,如下图,开启

  • “Enable direct integration with GeoServer WMS” —— 这个参数是 用来集成 WMS 和 WMTS
  • “Explicitly require TILED Parameter” —— 这个参数是用来控制是否要在 url 里明确添加 “tiled=true” 请求参数,若勾选则需要添加,不勾选则默认自动添加

geoserver_第57张图片

 

调用条件(如下条件全部满足才可调用切片)

1、geoserver端

  • 开启了 “Enable direct integration with GeoServer WMS” 参数
  • 图层中勾选了 “Enable tile caching for this layer” 参数

 

2、客户端

  • 请求只引用一个图层
  • 请求中的参数 width、height 与图层中的尺寸配置相同
  • 请求的坐标系(CRS)与图层配置中的某个 gridsets 相同
  • 请求的图像与现存的网格边界(grid bounds)对齐
  • 包含的参数有相应的参数过滤器

 

3、geoserver 和 客户端共同

  • 请求的 url 中明确传入 “tiled=true” ( 当配置 “Explicitly require TILED Parameter” 勾选时,若不勾选则无须显示的添加)

 
 
 
 

启动

启动 geoserver 见安装的后半部分,此处略

 
 
 
 

geoserver主页

浏览器打开 http://localhost:8080/geoserver 会进入 geoserver 的主页

此处注意:
1、若修改了 tomcat 的端口,则地址中的 8080 修改为对应的端口
2、若开启了 tomcat 的 https 访问,则地址中的 8080 换成 8443 (如果修改了,那换成对应的)
3、直接访问 http://localhost:8080/ 不会跳转到 geoserver 的主页,而是进入 tomcat 的主页 或者 jetty 的主页(jetty 这个是被阉割的,所以主页会提示找不到)

 

geoserver 默认账号密码是 admin / geoserver
geoserver_第58张图片

登录后的管理界面如图
geoserver_第59张图片

 
 
 
 

GeoWebCache

 

切片前配置

1、配置切片的存储目录,修改 web.xml 文件,其地址为 geoserver --> WEB-INF —> web.xmlgeoserver_第60张图片

跟元素下,添加如下内容


   GEOWEBCACHE_CACHE_DIR
   你的geowebcache切片的目录

原始如下
geoserver_第61张图片

修改后如下
geoserver_第62张图片

重启 tomcat,在定义的存储目录下生成如下文件
geoserver_第63张图片

 
 

geoserver中的集成页面

geoserver 中的 Tile Caching 就是基于 GeoWebCache 完成的

geoserver_第64张图片

支持的操作如下图,其主要信息如下:

  • Disk Quota —— 磁盘配额,若为设置则为 N/A 即无限制
  • Disk Used —— 当磁盘配额激活时生效,显示当前磁盘使用量
  • Enabled —— 是否对当前图层启用了切片
  • Preview —— 对当前层进行预览(非WMS方式)
  • Actions —— 控制生成、删除切片
    在这里插入图片描述

如下方式可以快速删除对应图层的切片
geoserver_第65张图片

 
 

独立控制页面

http://localhost:8080/geoserver/gwc/demo

geoserver_第66张图片

 
 
 
 

发布WMTS

常用的切图方法:

  • GDAL —— TMS切片
  • Mapnik —— 后端的数据处理框架,Python、NodeJS适用
  • GeoWebCache —— GeoServer适用,网络服务类型

 
 

使用 QGIS 切图发布(mbtiles类型)

关于切图的建议:

  • 图块大小优先选择 512 * 512 以避免出现部分区域数据空白的情况
  • 图片类型尽量选择 jpg,质量可以通过调整压缩率来调整。若使用 png 则切片会大 6 倍左右(有透明通道的情况下)
  • 底图的范围要比项目展示数据的范围大一些,否则在预览数据边界时会前端会疯狂提示404(找不到切片资源, 因为周围没数据)

1、安装 mbtiles 插件(见后方的插件安装)

2、QGIS中进行配图

3、工具箱搜索 mbtiles ,选择栅格工具
geoserver_第67张图片

4、调整参数,着重注意

  • Extent —— 切片范围
  • Minimum Zoom —— 最小缩放比例
  • Maximum Zoom —— 最大缩放比例
  • TileFormat —— 切片类型(PNG支持透明度、JPG不支持透明度,但是一般PNG更大)
    geoserver_第68张图片

5、mbtiles类型的数据需要使用插件进行发布(或者也可以前端使用插件,直接读取 mbtiles 文件)

 
 

基于 PostGIS 发布

1、创建数据存储,新建 postgis 数据源
geoserver_第69张图片

2、设置数据存储名及连接参数
geoserver_第70张图片

其他所有参数均保留默认,保存完后 自动读取 pg 的当前 schema 中的表,可以直接在此处选择发布
geoserver_第71张图片

发布过程同普通发布一样,调整服务名 数据范围等参数
geoserver_第72张图片
geoserver_第73张图片

3、确认发布

 

4、创建一个切片方案
geoserver_第74张图片

5、设置切片方案的名称、坐标系、范围、切片尺寸(建议512*512)、添加切片的层级
geoserver_第75张图片

6、回到图层属性中,进入 “Tile Caching”
geoserver_第76张图片

7、勾选图片(jpg、img)、选择切片方案并保存(如果需要则调整样式)
geoserver_第77张图片

8、进入切片目录(gwc目录 http://localhost:8080/geoserver/gwc)
geoserver_第78张图片

9、进入图层列表
geoserver_第79张图片

10、选择刚才的图层,点击 “Seed this layer”
geoserver_第80张图片

11、设置参数,参数含义如下

  • Number of tasks to use —— 切片的并行线程数(小于逻辑核心数即可)
  • Type of operation —— 生成切片的方法(全部生成、生成缺失、全部删除)
  • Grid Set —— 坐标系
  • Format —— 图片格式(建议使用 jpg)
  • Zoom start 、Zoom stop —— 切片的缩放范围
  • Modifiable Parameters —— 配色方案
    geoserver_第81张图片

12、设置完成后,点击submit,切片进程显示方式如下
geoserver_第82张图片

 
 
 
 

发布WFS

其实在发布矢量数据的WMS时候就自动发布了WFS,只不过默认开启的是 basic 的形式(只读形式的 WFS),只需要添加写入的权限即可
 
另:WFS的数据源并不只支持 SDE,即使数据源是 shapefile 也可以在前端进行修改,但是还是建议用 SDE(postgis)的数据源,毕竟数据库支持 mvcc

 
 

发布WFS的必要操作步骤

1、设置 Data
geoserver_第83张图片

2、每个工作区添加一个单独的权限,若某工作区之前已经添加了权限,则无须再次添加
geoserver_第84张图片

3、下图中的红框都要进行调整,调整依据如下:

  • Workspace —— 设置要修改权限的工作区
  • Layer and group —— 这个可以选择 * 即工作区内所有支持WFS的图层
  • Access mode —— 改成 Write
  • Grant access to any role —— 勾选上,赋予所有角色权限
    geoserver_第85张图片

4、保存之后,WFS即可立即支持写入操作,无须重启 geoserver

 

5、默认的 WFS 地址( http://localhost:8080/geoserver/ows?service=wfs&version=1.1.0&request=GetCapabilities ),一般把这个参数给到前端就行了。如果前端经验不是很丰富,可能需要提供内部的工作区名和图层名

 

6、(可选)这个地址也可以用软件调用,然后抓一下网络请求,把网络请求给前端(如果前端拿到这个还调不出来,那就不用管了,只要保证用 QGIS 或者 ArcGIS 能调出来就行)

 
 
 
 

发布注记数据

注记在 geoserver 中是以样式文件(SLD)存储的,可以使用 QGIS 先配置好注记和配色,然后将样式导出为 SLD 文件,直接应用到服务即可(注记可以支持掩膜)
 
注记配置过程可见本文的”样式配置“

 

1、QGIS中注记及配色
geoserver_第86张图片

2、应用到 geoserver 后如下
geoserver_第87张图片

 
 
 
 

发布图层组

图层组相当于arcmap的mxd,将多个图层组织到一起进行发布,目前仅支持WMS服务

 

1、创建图层组
geoserver_第88张图片

2、调整"工作区"、手动输入"边界"、手动输入"坐标系"、设置"模式"、添加图层
geoserver_第89张图片

图层组模式

  • single —— 将图层组作为具有自己名称的图层公开,其子图层依旧作为 WMS 中的顶级条目
  • opaque container —— 将图层组作为具有自己名称的图层公开,其子图层不可被单独的作为 WMS 服务调用
  • named tree —— 具有命名的树状结构,可以公开其内部的子图层
  • container tree —— 作为一个容器,但是没有名称,也就没有办法被当作服务调用
  • Earth Observation tree —— 该组不进行渲染

 

注意:图层从上到下的顺序与ArcGIS的图层是反的,即越靠下的图层在实际渲染时越靠上
geoserver_第90张图片

 

3、新建的图层组可以从 Layer View 中进行查看
geoserver_第91张图片

 
 
 
 

矢量切片

矢量切片的优势

  • 渲染由客户端完成,代表渲染的样式可以在客户端自由修改
  • 矢量瓦片的体积比切片要小的多,网络传输更快
  • 可以达到很高的显示精度
  • 客户端可以拿到矢量数据,代表客户端可以通过矢量数据做非常复杂的渲染

1、下载插件
geoserver_第92张图片

2、将解压后的数据放到 tomcat --> geoserver --> web-inf --> lib
geoserver_第93张图片

3、重启 geoserver,进入矢量服务的 Tile Caching 支持了 4 种矢量切片格式(application/vnd.mapbox-vector-tile 是效率最高的)

geoserver_第94张图片

4、此处我仅开启 mvt 格式的矢量切片
geoserver_第95张图片

5、配置完后从 Tile Layers 里的预览方式里已经可以看到支持矢量切片了
geoserver_第96张图片

6、从预览界面可以看到,图层正常加载,并且请求的数据类型确实为 mvt 的矢量切片,并且请求方式也确实为 wmts
geoserver_第97张图片

7、跳转到切片界面
geoserver_第98张图片

8、开始切片
geoserver_第99张图片

9、切片正常生成

geoserver_第100张图片
geoserver_第101张图片

 
 
 
 
 
 
 
 

geoserver插件


 

下载地址

 

官方地址

 
 
 
 

mbtiles

下载(下载 plunin 那个就行, store 那个可以不下)
geoserver_第102张图片

 

将 mbtiles 解压出来
geoserver_第103张图片

 

将解压出来的 jar 包全部复制,粘贴到 tomcat —> webapp --> geoserver --> WEB-INF --> lib 中,有提示需要替换就替换

如:apache-tomcat-8.5.56\webapps\geoserver\WEB-INF\lib
在这里插入图片描述

重启 tomcat 即可,打开 geoserver --> 新建数据存储 此处可以看到 mbtiles 类型
geoserver_第104张图片

 
 
 
 

wps

wps插件从 geoserver 的官网下载
geoserver_第105张图片

同样安装的时候把插件解压开,安装过程同 mbtiles
geoserver_第106张图片

 
 
 
 
 
 
 
 

tomcat预配置(碰不到服务器的时候先配这个)


 
 

启用管理员账户

 

打开文件 tomcat-users.xml,该文件位于 tomcat 安装目录的 conf 下
geoserver_第107张图片

在倒数第二行添加如下内容

  

geoserver_第108张图片

在修改另一个文件 context.xml,位于 apache-tomcat-8.5.56\webapps\manager\META-INF
geoserver_第109张图片

浏览器打开 http://localhost:8080/manager/html

geoserver_第110张图片

 
 

调整允许上传文件大小

修改 web.xml 文件,位于 apache-tomcat-8.5.56\webapps\manager\WEB-INF
geoserver_第111张图片
调整下图的值,适当扩大即可
geoserver_第112张图片

 
 
 
 
 
 
 
 

数据处理部分(非常规方法)


 
 

gdal环境配置

1、下载gdal核心控件
geoserver_第113张图片
geoserver_第114张图片
一溜下一步安装完
geoserver_第115张图片

2、配置环境变量,添加三个环境变量

GDAL —— C:\Program Files\GDAL
GDAL_DATA —— C:\Program Files\GDAL\gdal-data
GDAL_DRIVER_PATH —— C:\Program Files\GDAL\gdalplugins

geoserver_第116张图片

path 中添加 %GDAL%
geoserver_第117张图片

3、打开 cmd 运行 gdalinfo 查看是否正常
geoserver_第118张图片
如上图提示 org_MSSQLSpatial.dll 找不到指定模块,如果用不到 ms sql 的话,直接把这个文件删掉就行。这个文件位于 C:\Program Files\GDAL\gdalplugins
geoserver_第119张图片
删掉上述文件,重新运行在cmd中 gdalinfo
geoserver_第120张图片

4、下载 gdal 的 whl 包
geoserver_第121张图片

5、解压 gdal压缩包,安装扩展即可

6、查看 gdal 扩展是否安装成功(python -m pip show gdal)
geoserver_第122张图片

 
 

img转tif(gdal)

geoserver 默认无法发布 .img 格式的影像

 

将 img 转换为 tif 的代码如下

from osgeo import gdal

img = r"E:\DEM\DEM30.img"
tif = r"D:\temp\tif\DEM30.tif"

# 读取数据
img_ds = gdal.Open(img)

# 转出为 tif 模式
gdal.Translate(tif, img_ds, format="GTiff")

 
 
 
 
 
 
 
 

实例


 

点使用图片

将图片保存到 geoserver 的工作空间的 styles 内部(如:D:\softs\apache-tomcat-8.5.56-windows-x64\apache-tomcat-8.5.56\webapps\geoserver\data\workspaces\Test\styles)



  
    Point as graphic
    
      GeoServer SLD Cook Book: Point as graphic
      
        
          
            
              
                
                image/png
              
              32
            
          
        
      
    
  

geoserver_第123张图片

 
 

修改postgis字段名

1、原始数据如下,测试修改 1个属性字段(new_osm_id)和1个几何字段(geom)
geoserver_第124张图片

服务可以正常访问,并且属性正常显示
geoserver_第125张图片

2、将 new_osm_id 改为 new_new_new_new_osm_id
geoserver_第126张图片

图形可显示,但是属性查询失败
geoserver_第127张图片

重启 geoserver 服务及属性均可正常访问
geoserver_第128张图片

3、修改几何字段 geom  new_geom
geoserver_第129张图片

服务无法访问
geoserver_第130张图片

重启 geoserver,服务可正常访问
geoserver_第131张图片

Geojson可正常返回(WFS服务也正常)
在这里插入图片描述

索引是否正常
1)、修改几何字段,空间索引会自动更新。但是不确定只是修改了索引指向的字段名还是进行了索引重建
geoserver_第132张图片

2)、修改属性字段,属性索引也会自动更新

先创建 btree 索引
在这里插入图片描述

修改字段名后
在这里插入图片描述

结论:
1、 无论属性或几何字段均可通过 sql 去修改字段名

alter table xxx rename old_field_name to new_field_name

2、属性或几何字段修改完可以选择在页面上对数据进行“重载”或者直接重启 geoserver(tomcat),服务(WMS、WFS)即可正常访问

3、无论修改的是几何字段还是属性字段,索引都会自动改变到对应字段上

你可能感兴趣的:(geoserver,geoserver全记录)