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

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

在完成基础的矢量文件图层叠加图层组功能成功发布后,我们还需要使用 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 更新了该帖

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 488 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1708 回帖
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    230 引用 • 1454 回帖 • 1 关注
  • Ant-Design

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

    17 引用 • 23 回帖 • 1 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    200 引用 • 120 回帖
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 663 关注
  • Access
    1 引用 • 3 回帖 • 4 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    54 引用 • 37 回帖
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 384 回帖 • 5 关注
  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    151 引用 • 257 回帖 • 1 关注
  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    116 引用 • 54 回帖 • 5 关注
  • RYMCU

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

    4 引用 • 6 回帖 • 53 关注
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 93 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖 • 1 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 83 关注
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    12 引用 • 54 回帖 • 165 关注
  • 分享

    有什么新发现就分享给大家吧!

    247 引用 • 1794 回帖
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    6 引用 • 15 回帖 • 34 关注
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    169 引用 • 1527 回帖
  • 锤子科技

    锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。

    4 引用 • 31 回帖 • 2 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 805 关注
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    167 引用 • 595 回帖 • 1 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖 • 1 关注
  • Visio
    1 引用 • 2 回帖
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 55 关注