在完成基础的矢量文件图层叠加图层组功能成功发布后,我们还需要使用 shp 文件与 tif 文件共同形成遥感地图进行发布
在参考了大量网络教程后,目前还是只实现了 shp 文件从数据库读取,而 tif 栅格文件需要从文件目录一个个读取
遥感图的国家统一坐标系 是 CSCG2000/EPSG:4546 ,所以,为了保证 shp 文件与 tif 文件能一起展示,必须要保证 shp 文件和 tif 文件的坐标系是一致的 !!!
geoserver 从 Postgis 中读取 shp 文件可以参考上一篇文章
geoserver 发布 tif 文件教程如下
geoserver 默认支持读取 tif 栅格文件,但是文件必须在 geoserver 服务器本地目录下
此处的路径是我在 docker-compose 文件中共享的文件目录,所以 docker 中的服务可以访问
配置完成后即可在 Layer Preview 中查看到显示效果
再配置图层组与矢量网格图叠加
看到那个小黑点了吗,那就是我们的栅格图...
至此,基本的图层叠加已经完成,但是....看这密密麻麻的格子,总得有个批量导入栅格图的途径吧
原本是想要统一数据源,让 shp 和 tif 数据都从数据库读取,降低服务器存储空间的压力
在参考文档 GeoServer 发布 PostGIS 数据库中的栅格数据后
经过大量尝试,虽然 tif 文件入库成功,geoserver 的 imageMosaicJdbc 插件也成功安装,但是在使用 imageMosaicJdbc 读取数据库数据的时候却一直无法连接,并一直报错
经过问题排查和参数检查后,确认不是配置的问题,在百度和 google 之后终于在一个官方错误报告邮件记录上找到类似的错误
Image Mosaic failing to create reader again
结果发现
大致意思是...有 10 多年历史的设计错误,改起来很麻烦..所以就没改了.........
总而言之,使用插件的方式基本是宣告失败
但是栅格图的发布总不能真的一个一个的通过 UI 界面去操作吧
经过大量的搜索以及资料翻阅,终于在 csdn 上找到了一个号称可以操作 geoserver 批量导入栅格图的 Java 项目代码
该项目下载下来后,能直接在 idea 中打开,但是却报了一个依赖错误
总的来说就是找不到这个依赖的 jar
经过修改 Maven 版本,重新导包,重新下包等一系列操作后发现问题根深蒂固,依旧存在,于是我决定去 Maven 仓库里面一探究竟
果然,依赖的 jar 包没有下载下来,只有几个 lastupdated 文件
这就好办了,去 maven 官网找爹去
结果一找, 又懵逼了, 人家 maven 只有 1.7 的版本,还是 16 年发布的,现在都 2020 年了啊 !!!
我抱着死马当活马医的态度试着测试修改版本号,依旧不行
好吧, 那我找 geoserver-manager 的仓库去!!
乍一看好像来对地方了,但事实却是十分残酷的
Maven 仓库里的文件夹仍在,文件也能看到,但就是下载不了 !!!
但我不信, 一定还有其他解决方案, google 一番后,发现 github 上好像有一个同名的开源项目
下载下来后,经过一键 Maven 构建打包四连后
果然在仓库里出现了想要的画面
回去一看批量导入项目的依赖问题也解决了
仔细一看这套批量导入的项目代码,其实就是调用了 geoserver 的 rest 接口
通过代码实现了 UI 界面上的一套操作
创建工作区---轮询文件目录,创建数据源---发布图层
通过修改项目中的相关参数,成功实现了轮询本地目录读取 tif 文件,发布栅格图的功能
其中存在的问题:
- 该项目读取的目录与 geoserver 服务器需要是同一目录, 因此导致无法远程操作 linux 服务器下的 geoserver 批量发布
- 该项目没有一套成型的 web 操作界面,只能通过开发工具右键 run java 运行
目前来讲较好的解决方案:
- 使用带有 GUI 操作界面的 Linux 服务器,并安装 IDEA 开发环境,方便操作栅格批量发布,及文件传输
- 使用 windows server 服务器发布 geoserver,并安装 IDEA 开发环境,方便操作栅格批量发布,及文件传输
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于