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

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

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

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • BAE

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

    19 引用 • 75 回帖 • 651 关注
  • 导航

    各种网址链接、内容导航。

    42 引用 • 175 回帖 • 1 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 150 关注
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖 • 1 关注
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 715 关注
  • PostgreSQL

    PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。

    22 引用 • 22 回帖 • 3 关注
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    66 引用 • 114 回帖 • 226 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 725 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    209 引用 • 358 回帖
  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 24 关注
  • Caddy

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

    12 引用 • 54 回帖 • 159 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 638 关注
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    343 引用 • 723 回帖
  • 职场

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

    127 引用 • 1706 回帖
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    90 引用 • 59 回帖 • 8 关注
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    20 引用 • 7 回帖 • 2 关注
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖 • 1 关注
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 371 关注
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    91 引用 • 585 回帖
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    5 引用 • 107 回帖 • 1 关注
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    728 引用 • 1275 回帖
  • SQLite

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

    5 引用 • 7 回帖 • 1 关注
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 173 关注
  • V2EX

    V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。

    17 引用 • 236 回帖 • 315 关注
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    157 引用 • 3798 回帖
  • 创业

    你比 99% 的人都优秀么?

    82 引用 • 1395 回帖