geoserver 发布栅格图叠加矢量图的遥感图

本贴最后更新于 2009 天前,其中的信息可能已经东海扬尘

在完成基础的矢量文件图层叠加图层组功能成功发布后,我们还需要使用 shp 文件与 tif 文件共同形成遥感地图进行发布

在参考了大量网络教程后,目前还是只实现了 shp 文件从数据库读取,而 tif 栅格文件需要从文件目录一个个读取

遥感图的国家统一坐标系 是 CSCG2000/EPSG:4546 ,所以,为了保证 shp 文件与 tif 文件能一起展示,必须要保证 shp 文件和 tif 文件的坐标系是一致的 !!!

geoserver 从 Postgis 中读取 shp 文件可以参考上一篇文章

geoserver 发布 tif 文件教程如下
geoserver 默认支持读取 tif 栅格文件,但是文件必须在 geoserver 服务器本地目录下
image.png
image.png
image.png
此处的路径是我在 docker-compose 文件中共享的文件目录,所以 docker 中的服务可以访问
image.png
image.png
配置完成后即可在 Layer Preview 中查看到显示效果
image.png

再配置图层组与矢量网格图叠加
image.png
看到那个小黑点了吗,那就是我们的栅格图...
image.png
至此,基本的图层叠加已经完成,但是....看这密密麻麻的格子,总得有个批量导入栅格图的途径吧

原本是想要统一数据源,让 shp 和 tif 数据都从数据库读取,降低服务器存储空间的压力
在参考文档 GeoServer 发布 PostGIS 数据库中的栅格数据
经过大量尝试,虽然 tif 文件入库成功,geoserver 的 imageMosaicJdbc 插件也成功安装,但是在使用 imageMosaicJdbc 读取数据库数据的时候却一直无法连接,并一直报错
image.png
经过问题排查和参数检查后,确认不是配置的问题,在百度和 google 之后终于在一个官方错误报告邮件记录上找到类似的错误
Image Mosaic failing to create reader again
结果发现
image.png
大致意思是...有 10 多年历史的设计错误,改起来很麻烦..所以就没改了.........
总而言之,使用插件的方式基本是宣告失败

但是栅格图的发布总不能真的一个一个的通过 UI 界面去操作吧
经过大量的搜索以及资料翻阅,终于在 csdn 上找到了一个号称可以操作 geoserver 批量导入栅格图的 Java 项目代码

该项目下载下来后,能直接在 idea 中打开,但是却报了一个依赖错误
总的来说就是找不到这个依赖的 jar
image.png

经过修改 Maven 版本,重新导包,重新下包等一系列操作后发现问题根深蒂固,依旧存在,于是我决定去 Maven 仓库里面一探究竟
果然,依赖的 jar 包没有下载下来,只有几个 lastupdated 文件
image.png

这就好办了,去 maven 官网找爹去
image.png

结果一找, 又懵逼了, 人家 maven 只有 1.7 的版本,还是 16 年发布的,现在都 2020 年了啊 !!!
我抱着死马当活马医的态度试着测试修改版本号,依旧不行

好吧, 那我找 geoserver-manager 的仓库去!!
image.png
乍一看好像来对地方了,但事实却是十分残酷的
image.png
image.png

Maven 仓库里的文件夹仍在,文件也能看到,但就是下载不了 !!!

但我不信, 一定还有其他解决方案, google 一番后,发现 github 上好像有一个同名的开源项目

下载下来后,经过一键 Maven 构建打包四连后
image.png
果然在仓库里出现了想要的画面
image.png

回去一看批量导入项目的依赖问题也解决了

仔细一看这套批量导入的项目代码,其实就是调用了 geoserver 的 rest 接口
通过代码实现了 UI 界面上的一套操作

创建工作区---轮询文件目录,创建数据源---发布图层

通过修改项目中的相关参数,成功实现了轮询本地目录读取 tif 文件,发布栅格图的功能
image.png

其中存在的问题:

  • 该项目读取的目录与 geoserver 服务器需要是同一目录, 因此导致无法远程操作 linux 服务器下的 geoserver 批量发布
  • 该项目没有一套成型的 web 操作界面,只能通过开发工具右键 run java 运行

目前来讲较好的解决方案:

  • 使用带有 GUI 操作界面的 Linux 服务器,并安装 IDEA 开发环境,方便操作栅格批量发布,及文件传输
  • 使用 windows server 服务器发布 geoserver,并安装 IDEA 开发环境,方便操作栅格批量发布,及文件传输
  • GIS
    10 引用 • 23 回帖
3 操作
Hawkpool 在 2020-01-10 14:37:00 更新了该帖
Hawkpool 在 2020-01-10 14:35:41 更新了该帖
Hawkpool 在 2020-01-10 14:30:55 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 62 关注
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    6 引用 • 26 回帖 • 546 关注
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖 • 6 关注
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 3 关注
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    20 引用 • 37 回帖 • 572 关注
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    108 引用 • 295 回帖
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 28 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖 • 1 关注
  • 反馈

    Communication channel for makers and users.

    120 引用 • 906 回帖 • 280 关注
  • 叶归
    12 引用 • 56 回帖 • 23 关注
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    4 引用 • 7 回帖
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    29 引用 • 202 回帖 • 29 关注
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 643 关注
  • Ant-Design

    Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。

    17 引用 • 23 回帖 • 2 关注
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖 • 2 关注
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    61 引用 • 29 回帖 • 12 关注
  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    83 引用 • 412 回帖
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 564 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 442 关注
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 313 关注
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    23 引用 • 32 回帖 • 7 关注
  • CongSec

    本标签主要用于分享网络空间安全专业的学习笔记

    1 引用 • 1 回帖 • 37 关注
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    172 引用 • 540 回帖
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    125 引用 • 585 回帖 • 1 关注
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    108 引用 • 153 回帖 • 1 关注
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 699 关注