GDAL图像格式¶
Geoserver可以利用 ImageI/O-Ext GDAL库可读取选定的Coverage格式。 GDAL 能够读取多种格式,但目前Geoserver只支持几种常见的兴趣格式,以及那些可以在开源服务器上合法重新分发和操作的格式。
地理服务器可以使用gdal读取以下图像格式:
DTED,军用高程数据(.dt0,.dt1,.dt2):http://www.gdal.org/frmtu dted.html
ehdr,esri.hdr标签:<http://www.gdal.org/frmt_various.html ehdr>
envi,envi.hdr标签栅格:<http://www.gdal.org/frmt_various.html_envi>
hfa,erdas image(.img):<http://www.gdal.org/frmt_hfa.html>
jp2mrsid,jpeg2000(.jp2,.j2k):<http://www.gdal.org/frmt_jp2mrsid.html>
mrsid,多分辨率无缝图像数据库:<http://www.gdal.org/frmt_mrsid.html>
NITF:<http://www.gdal.org/frmt nitf.html>
ecw,erdas压缩子波(.ecw):<http://www.gdal.org/frmt_ecw.html>
jp2ecw,jpeg2000(.jp2,.j2k):http://www.gdal.org/frmt_jp2ecw.html
aig,arc/info二进制网格:<http://www.gdal.org/frmt_variety.html_aig>
jp2kak,jpeg2000(.jp2,.j2k):<http://www.gdal.org/frmt_jp2kak.html>
安装GDAL扩展¶
从geoserver 2.2.x版开始,gdal必须作为扩展安装。要安装它:
访问 website download 页面,找到您的版本,并下载: geoserver-2.24.x-gdal-plugin.zip
警告
确保与插件匹配(示例 2.24.x 以上)版本设置为Geoserver实例的版本。
的下载链接 GDAL 将会出现在 Extensions 下一节 Coverage Format 。

将此存档中的文件提取到
WEB-INF/lib
地理服务器安装目录。在Windows上,可能会提示您确认覆盖现有文件,确认替换文件

此外,为了让geoserver利用这些库,必须通过主机系统的操作系统安装gdal(二进制)库。安装后,geoserver将能够识别gdal数据类型。有关详细信息,请参见下文。
安装gdal本机库¶
从Geoserver 2.21.x开始,ImageIO-ext插件在GDAL版本3.x上进行了测试(特别是在3.2.x和3.4.x下测试)。
ImageIO-ext插件使用GDAL 3.2 SWIG绑定进行了测试,该绑定包含在扩展下载中 gdal-3.2.0.jar
。
如果版本不匹配¶
我们建议匹配版本 gdal
JAR到您的环境中可用的gdal版本:
gdalinfo --version
GDAL 3.4.1, released 2021/12/27
如果您使用的GDAL版本与Geoserver预期的版本不匹配,则可以使用 gdal-3.2.0.jar
具有等效的Java绑定JAR的文件(通常命名为 gdal-<version>.jar
)包含在您的GDAL版本中:
如果您的GDAL版本不包括绑定JAR,那么它很可能不是用Java绑定编译的,因此不能与Geoserver一起使用。
您也可以搜索正确的
gdal
罐子在这里:https://search.maven.org/artifact/org.gdal/gdal
Windows软件包和安装程序¶
对于Windows, gisinternals.com 中提供带有Java绑定支持的完整包。 release-<version>-GDAL-<version>-mapserver-<version>.zip
包(撰写本文时的GDAL二进制下载不包括Java支持)。
打开包装 zip
文件放在合适的位置,然后在启动Geoserver之前设置以下变量:
set PATH=%PATH%;C:\<unzipped_package>\bin;C:\<unzipped_package>\bin\gdal\java
set GDAL_DRIVER_PATH=C:\<unzipped_package>\bin\gdal\plugins
set GDAL_DATA=C:\<unzipped_package>\bin\gdal-data
There are a few optional drivers that you can find in file:C:<unzipped_package>bingdalplugins-extra
and C:<unzipped_package>bingdalplugins-optional
. Include these paths in `GDAL_DRIVER_PATH
enables the additional formats.
警告
在添加额外的格式之前,请确保您有权在服务器环境中使用它们(某些软件包特别禁止在服务器端免费使用,并且需要商业许可证,例如ECW)。
备注
根据底层操作系统的版本,您必须选择正确的版本。你可以在谷歌上搜索你需要的那个。另外,如果您使用的是32位版本的Windows,请确保下载的是32位版本;如果您运行的是64位版本的Windows,请确保下载64位版本(压缩文件的名称中带有“-x64”后缀)。同样,选择与您的基础设施匹配的解决方案。
关于在Windows上将geoserver作为服务运行的说明¶
将GDAL ImageI/O-Ext本机库部署在 PATH
环境变量(例如jdk/bin文件夹)将不允许Geoserver服务使用GDAL。因此,在服务启动期间,Geoserver日志可能会报告以下消息:
it.geosolutions.imageio.gdalframework.GDALUtilities loadGDAL
WARNING: Native library load failed.java.lang.UnsatisfiedLinkError: no gdaljni in java.library.path
请看一下 jsl74.ini
Geoserver安装中提供的配置文件中,有以下有用的条目:
;The java command line
;The entry method below using a parameter list still works but the command line variant is more convenient.
;Everything separated by whitespace on a java command line is broken down into a parameter here.
;You don't need to care about quotes
;around strings containing spaces here. e.g.
cmdline = -cp "..\src" com.roeschter.jsl.TelnetEcho
要允许加载GDAL本机DLL,请执行以下操作:
编辑命令行以包括
-Djava.library.path
您的GDAL库的位置。
Linux软件包和设置¶
对于常见的LTS Linux发行版,有GDAL和相关Java绑定的包,例如Ubuntu和衍生品,可以使用:
sudo apt-get install gdal-bin libgdal-java
上面安装的库已经在搜索路径中,因此通常不需要额外的设置。以防设置 GDAL_DATA
需要处理某些投影,通常在 /usr/share/gdal/<version>
,以便可以在启动geoserver之前执行以下操作,例如:
export GDAL_DATA=/usr/share/gdal/<version>
如果您决定从源代码构建,请记住运行 configure
具有 --with-java
,在主构建和安装之后,进入 swig/java
运行一个构建并安装在那里。有关构建gdal的更多信息,请参见:
在构建和安装之后,导出以下变量以使geoserver使用gdal自定义构建:
export LD_LIBRARY_PATH=/<path_to_gdal_install>/lib
export GDAL_DATA=/<path_to_gdal_install>/share/gdal
测试安装¶
完成这些步骤后,重新启动Geoserver。
导航到 Modules 选项卡,然后单击:Guilabel:``链接以获取状态信息。
页,并更改为
ImageI/O GDAL覆盖范围扩展模块状态¶
此信息可用于验证扩展是否处于活动状态、使用的GDAL版本以及使用的SWIG绑定的版本。
如果所有步骤都已正确执行,则新的数据格式将位于 Raster Data Sources 在中创建新数据存储区时列出 Stores 部分,如下所示。

栅格数据存储列表中的gdal图像格式¶
如果新格式不出现在GUI中,并且您在日志文件中看到以下消息:
it.geosolutions.imageio.gdalframework.gdaltilities loadgdal警告:本机库加载失败。java.lang.unsuspendedlinkError:java.library.path中没有gdaljni 警告:本地库加载失败。java. Lang.UnPosidFieldLink错误:java.库中没有GDALALJNI。路径*
这意味着该扩展已安装,但由于某些原因无法访问您的GDAL库。
配置DTED数据存储¶

配置DTED数据存储¶
配置ehdr数据存储¶

配置ehdr数据存储¶
配置erdasimg数据存储¶

配置erdasimg数据存储¶
配置JP2MRSID数据存储¶

配置JP2MRSID数据存储¶
配置NITF数据存储¶

配置NITF数据存储¶
支持向量足迹¶
从2.9.0版开始,geoserver支持向量足迹。示意图是用作遮罩的形状,用于隐藏遮罩外部的像素,从而使父图像的该部分透明。当前支持的封装外形格式为wkb、wkt和shapefile。按照惯例,示意图文件应与示意图应用的栅格数据位于同一目录中。
备注
在本节和相关小节的示例中,我们将始终使用.wkt作为扩展名,表示wkt示意图,尽管也支持.wkb和.shp。
例如,假设您的mrsid文件位于 /mnt/storage/data/landsat/N-32-40_2000.sid
要隐藏,您只需将wkt文件放在同一文件夹中,就像 /mnt/storage/data/landsat/N-32-40_2000.wkt
请注意,封装外形需要具有与原始数据文件相同的路径和名称,扩展名为.wkt。
这是示例示意图几何图形的外观:

存储为wkt的示例几何图形,在OpenJump上呈现¶
添加封装外形文件后,需要将封装外形行为参数从“无”(默认值)更改为“透明”(从图层配置)。

设置封装行为参数¶
下一幅图像描述了同一层的两个层预览:左侧没有示意图,右侧有示意图可用,示意图行为设置为透明。

No Footprint VS FootprintBehavior = Transparent¶
外部示意图数据目录¶
如上所述,封装外形文件应与栅格文件放在同一目录中。然而,在某些情况下,这可能是不可能的。例如,包含栅格数据的文件夹可能是只读的。
作为替代方案,封装外形文件可以位于公共目录中,即 封装外形数据目录 .该目录下的子目录和文件名必须与原始栅格路径和文件名匹配。脚印数据目录被指定为Java系统属性或环境变量,通过设置 FOOTPRINTS_DATA_DIR 要用作基本文件夹的目录的属性/变量。
例子¶
假设您有3个栅格文件,路径如下:
/data/raster/charts/nitf/italy_2015.ntf
/data/raster/satellite/ecw/orthofoto_2014.ecw
/data/raster/satellite/landsat/mrsid/N-32-40_2000.sid
它们可以用这棵树表示:
/data
\---raster
+---charts
| \---nitf
| italy_2015.ntf
|
\---satellite
+---ecw
| orthofoto_2014.ecw
|
\---landsat
\---mrsid
N-32-40_2000.sid
为了支持外部足迹,您应该
创建一个
/footprints
(例如)磁盘上的目录设置
FOOTPRINTS_DATA_DIR=/footprints
变量/属性。使用完整路径复制指定文件夹内的Raster文件夹层次结构。
将3个WKT文件放在适当的位置:
/footprints/data/raster/charts/nitf/italy_2015.wkt
/footprints/data/raster/satellite/ecw/orthofoto_2014.wkt
/footprints/data/raster/satellite/landsat/mrsid/N-32-40_2000.wkt
它可以用这棵树表示:
/footprints
\---data
\---raster
+---charts
| \---nitf
| italy_2015.wkt
|
\---satellite
+---ecw
| orthofoto_2014.wkt
|
\---landsat
\---mrsid
N-32-40_2000.wkt
这样,最后,您将拥有以下文件夹层次结构树:
+---data
| \---raster
| +---charts
| | \---nitf
| | italy_2015.ntf
| |
| \---satellite
| +---ecw
| | orthofoto_2014.ecw
| |
| \---landsat
| \---mrsid
| N-32-40_2000.sid
|
\---footprints
\---data
\---raster
+---charts
| \---nitf
| italy_2015.wkt
|
\---satellite
+---ecw
| orthofoto_2014.wkt
|
\---landsat
\---mrsid
N-32-40_2000.wkt
注意并行镜像文件夹层次结构,唯一的区别是 /footprints
路径开头的前缀,以及后缀的更改。