【centos】geoserver支持ecw

【centos】geoserver支持ecw

一、前言

因公司业务需要,研究了一下如何让geoserver支持ecw。踩了不少坑才成功,在此记录一下;也欢迎留言讨论,让我们一起进步。

1.1 关于gdal

gdal需要编译安装到本机器上,然后打成jar包拷贝到geoserver下。
gdal是用C语言开发的,因此需要ant工具
环境变量中添加GDAL_DATA和LD_LIBRARY_PATH即可。
gdal默认不支持ecw格式,需要在编译前先安装ecw sdk

1.2 关于ecw

ecw格式是由ERDAS开发的Enhanced Compression Wavelet Image。
你可以从Hexagon Geospatial网站下载ERDAS ECW/JP2 SDK;可在同意许可条款后下载4.3或更高版本的只读SDK(不支持写ECW文件)。如果需要写ECW或JPEG2000文件,就需要购买可写版本的SDK。
本文使用过期的libecwj 3.3 SDK。

1.3 环境

分析一下当前环境:

项目版本
操作系统centos7
jdk1.8.0_341
tomcat8
geoserver2.20.3

查阅官网后,总结出版本对应关系如下:

geoserver2.21.x2.16.x2.15.x……
gdal3.2.x或3.4.x2.2.x或2.4.x1.9.2……

当前geoserver版本为2.20.3,应该用2.2.x或2.4.x的gdal
本文采用gdal2.2.0版本

1.4 安装包

geoserver及插件下载地址:
https://geoserver.org/release/2.20.3/
在这里插入图片描述
其他所需的安装包如下:

项目版本下载链接
proj6.2.0http://download.osgeo.org/proj/
ant1.10.10https://ant.apache.org/bindownload.cgi
gdal2.2.0https://trac.osgeo.org/gdal/wiki/DownloadSource
libecwj23.3https://github.com/bogind/libecwj2-3.3

二、正式开始

开始前需要说明,本文用到的路径如下:
JAVA_HOME 为 /usr/local/jdk1.8.0_341
tomcat路径 为 /usr/loca/tomcat
geoserver在tomcat/webapps/geoserver
安装包放置路径:/opt
后文所有路径都以此为准

安装依赖:

yum install -y gcc make subversion gcc-c++ sqlite-devel libxml2-devel python-devel numpy swig expat-devel libcurl-devel

2.1 安装proj

cd /opt
tar zxvf proj-6.2.0.tar.gz
cd proj-6.2.0
./configure
make && make install

2.2 安装ant

cd /opt
tar xvf apache-ant-1.10.10-bin.tar.gz
# 配置环境变量:
echo "export ANT_HOME=/opt/apache-ant-1.10.10"  >> ~/.bashrc
echo "export PATH=\$PATH:\${ANT_HOME}/bin" >> ~/.bashrc
source ~/.bashrc
# 验证是否成功
ant -version

2.3 安装ecw sdk

cd /opt
unzip libecwj2-3.3-2006-09-06.zip
cd libecwj2-3.3
./configure
make
make install

需要注意的是,参考教程时,我在这里省略了几步;因为有个文件一直下载不了。省略内容见下方红框内容:
在这里插入图片描述
看情况应该是打了三个补丁。但是我没操作这几步也编译成功了,暂时不知道有没有影像。有懂的同学欢迎在评论区补充。

2.4 安装gdal

# 添加环境变量
vi /etc/profile
# 添加如下内容后,wq保存退出
export JAVA_HOME=/usr/local/jdk1.8.0_341
export PATH=$PATH:$JAVA_HOME/bin:${ANT_HOME}/bin
export CPATH=$CPATH:$JAVA_HOME/include:$JAVA_HOME/include/linux
export C_INCLUDE_PATH=$C_INCLUDE_PATH:$JAVA_HOME/include:$JAVA_HOME/include/linux
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:$JAVA_HOME/include:$JAVA_HOME/include/linux
# 解压并进入gdal目录
cd /opt
tar zxvf gdal-2.2.0.tar.gz
cd gdal-2.2.0
# 注意修改为自己的java路径;千万不要忘记--with-ecw
./configure --with-ecw=/usr/local --with-java=/usr/local/jdk1.8.0_341 --with-jvm-lib=/usr/local/jdk1.8.0_341/jre/lib/amd64/server --with-jvm-lib-add-rpath=yes --with-sfcgal=no --with-proj=/usr/local 
# 编译
make && make install
# 配置环境变量
echo "export PATH=$PATH:/usr/local/bin" >> ~/.bashrc
export "LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib" >> ~/.bashrc
source ~/.bashrc
# 验证是否成功
gdalinfo --version
# 查看是否支持ecw
gdalinfo --formats|grep ECW

如果成功支持ecw,将出现如下信息:
在这里插入图片描述

2.5 编译gdal.jar

cd /opt/gdal-2.2.0/swig/java
# 修改当前路径下的配置
vi java.opt
JAVA_HOME=/usr/local/jdk1.8.0_341
#当前路径下进行编译/opt/gdal-2.2.0/swig/java
make && make install
#编译成功后,拷贝结果文件
cp *.so *.lo *.o *.la *.a /usr/local/jdk1.8.0_341/jre/lib/amd64/server/
# vim /etc/profile 然后在/etc/profile中添加
export LD_LIBRARY_PATH=/usr/local/jdk1.8.0_341/jre/lib/amd64/server
export GDAL_DATA=/usr/local/share/gdal
# 刷新配置文件
source /etc/profile

2.6 尾声

cd /opt
unzip geoserver-2.20.3-gdal-plugin.zip -d ./gdal-plugin
cd /usr/local/tomcat/webapps/geoserver/WEB-INF/lib/
cp /opt/gdal-plugin/*.jar .
cp /opt/gdal-2.2.0/swig/java/gdal.jar .
# 重启geoserver
cd /usr/local/tomcat/bin
./shutdown.sh
./startup.sh

登录web查看验证。
如下图所示说明安装成功:
在这里插入图片描述

三、参考资料

我在研究的时候查了很多资料,这里列出帮助最大的几个(排名不分先后):

序号链接说明
1https://docs.geoserver.org/2.20.x/en/user/data/raster/gdal.html官网手册
2https://blog.csdn.net/m0_51556151/article/details/121964373gdal教程-csdn
3https://trac.osgeo.org/gdal/wiki/ECWecw教程-wiki
4https://www.cnblogs.com/oloroso/p/6625669.htmlecw教程-博客园
5https://github.com/bogind/libecwj2-3.3#readmeecw教程-github
6https://github.com/oscarfonts/docker-geoserver/blob/master/ecw/Dockerfiledocker版-github

希望会对正在研究这一方面的同学有些帮助;同时,再次感谢大佬们的分享

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值