国产化软件开始后,导致以前用的windows一套都被抛弃了,开始转向linux,最近发布arcgis切片时,发现UOS系统中arcgis server安装不上。于是另寻它法,看到网上很多人用geowebcatch,于是拿来研究一番,真可以,在此记录一下,记忆力差了,怕忘记。
软件组合:UOS 20 SP1专业版、jdk8、tomcat9、GeoWebCache
系统是UOS 20 SP1专业版,查看系统内核 $ uname -a
jdk安装
发现是 arm64的处理器,安装相应版本的jdk,笔者用的 jdk-8u301-linux-aarch64.tar.gz,没有直接去官网下载即可,没有帐号直接邮箱申请一个,不麻烦;
将压缩包拷贝并解压到 /usr/local 目录
拷贝命令: cp -r dir/firle dir
解压命令: tar -zxvf jdk-8u181-linux-x64.tar.gz
删除命令: rm -f jdk-8u181-linux-x64.tar.gz
配置jdk环境变量
/etc/profile文件的改变会涉及到系统的环境,也就是有关Linux环境变量的东西所以,我们要将jdk配置到/etc/profile,才可以在任何一个目录访问jdk,编辑此文件命令:vim /etc/profile,按i进入编辑,在profile文件尾部添加如下内容:
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
Esc --> :wq
保存并退出编辑
通过命令让profile文件立即生效: [root@localhost local]# source /etc/profile
测试是否安装成功
[root@localhost local]# javac
[root@localhost local]# java -version
出现帮助和版本号说明linux下jdk8安装成功。
tomcat9安装
笔者用的版本是9.0.52,直接官网下载的
将压缩包拷贝并接到/usr/local文件夹中
在/etc/profile文件后面添加环境变量:
export TOMCAT_HOME=/usr/software/apache-tomcat-9.0.8
我最终的profile环境变量配置截图:
执行source profile 使得环境变量立即生效
进入tomcat的bin目录,执行./startup.sh 命令启动tomcat,./shutdown.sh命令停止服务,打开服务默认端口是8080,即可访问tomcat网站。
跨域实现:
1、需要下载cors-filter-1.8.jar,Java-property-utils-1.9.jar这两个库文件放在lib目录下
2、打开资源部署的tomcat安装目录 -> 打开 conf 目录 -> 打开web.xml文件,
尾部添加配置:
<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
<init-param>
<param-name>cors.allowOrigin</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.supportedMethods</param-name>
<param-value>GET, POST, HEAD, PUT, DELETE</param-value>
</init-param>
<init-param>
<param-name>cors.supportedHeaders</param-name>
<param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>
</init-param>
<init-param>
<param-name>cors.exposedHeaders</param-name>
<param-value>Set-Cookie</param-value>
</init-param>
<init-param>
<param-name>cors.supportsCredentials</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CORS</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我的配置如图:
Geowebcache安装
去官网下载最新版本的war包,直接放到tomcat的webapps文件夹中,启动tomcat,webapps中出现一个geowebcache文件夹。
进入geowebcache的web-inf目录下,修改web-inf文件夹下的文件web.xml,在</context-param>节点后添加如下节点
<context-param>
<param-name>GEOWEBCACHE_CACHE_DIR </param-name>
<param-value>/home/tgtf/geowebcachetem</param-value>
</context-param>
param-value为geowebcache的配置目录,重启tomcat,配置目录多出来一些文件,修改其中的geowebcache.xml文件,在<layer>…</layer>节点中添加如下节点
<arcgisLayer>
<name>naturalearth</name>
<tilingScheme>/home/thtf/kfq/Conf.xml</tilingScheme>
<tileCachePath>/home/thtf/kfq/_alllayers</tileCachePath>
</arcgisLayer>
在文件/usr/local/apache-tomcat-8.5.65/webapps/geowebcache/WEB-INF/geowebcache-core-context.xml 需要加以下代码
<bean id="gwcArcGIGridsetConfigutation" class="org.geowebcache.arcgis.layer.ArcGISCacheGridsetConfiguration"/>
另外,将arcgis切片的conf.cdi只保留EnvelopeN节点,删除SpatialReference、xml节点; conf.xml中删除LatestWKID、LeftLongitude、PreciseDPI三个节点。
调用展示
发布出来的切片服务是预览不了的,但是调用是没有问题的,这里写2个我自己的切片模板以备后期使用:
worldimg:http://localhost:8080/geowebcache/service/wmts?layer=worldimg&style=&tilematrixset=EPSG%3A4326_worldimg&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=EPSG%3A4326_worldimg%3A1&TileCol=0&TileRow=0
zjimg:http://localhost:8080/geowebcache/service/wmts?layer=zjimg&style=&tilematrixset=EPSG%3A4490_zjimg&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=EPSG%3A4490_zjimg%3A12&TileCol=1718&TileRow=340