![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
GeoServer
文章平均质量分 93
AIGIS.
一名有趣的giser,致力于gis普适话、大众化、平民化。
展开
-
GeoServer发布MongoDB中的shp数据全流程梳理
本文详细的梳理shp文件导入到MongoDB的过程,以及在GeoServer中发布的全过程,并提出了几个注意点原创 2024-07-29 14:45:31 · 680 阅读 · 0 评论 -
从零开始学GeoServer源码十四(GeoServer Cloud微服务版本初体验)
在之前的十四篇博文中,我们已经系统的学习了GeoServer的一系列知识,包括环境搭建、断点查找、原理解释、数据源拓展、Cesium集成、打包发布等等。但是我们还有一个重要的知识点还未涉及,那就是GeoServer的集群。传统GeoServer的集群(基于nginx或JMS)本质上还是单体架构的集群,无法根据并发量进行自适应,因此我们就引出了GeoServer的微服务版本------------。之前就有很多同学问我有没有微服务的版本,其实我也一直想将单体架构的GeoServer。原创 2024-04-15 00:28:40 · 1268 阅读 · 2 评论 -
从零开始学GeoServer源码十三(GeoServer生成的矢量切片缺失问题)
GeoServer生成的矢量切片存在缺失,这个问题是在我将矢量切片存储到MongoDB的过程中发现并确认的,其实在写渲染矢量切片的那一篇博文openlayers百万级和千万级数据量的矢量切片在渲染过程中的技术难点解析时,我就曾经产生过疑问,为什么已经提前切好片了,访问的时候还会去切片?今天终于可以解答这个问题了,且听我细细道来。本文通过跟踪GeoServer中切片的生成过程,对比了普通瓦片和矢量瓦片,即png和pbf的生成过程,发现了GeoServer中生成矢量瓦片时缺失数据的bug。原创 2023-10-09 16:26:23 · 988 阅读 · 3 评论 -
从零开始学GeoServer源码十二(GeoServer中的切片规则)
本期我们聊一聊GeoServer中的切片规则,以及如何在OpenLayers中加载GeoServer的切片。当然我们也要聊一聊在这一过程中有哪些疑难杂症。本文我们通过深入的分析osgeo tms和google tms的规则,以及GeoServer中默认的切片规则,以及OpenLayers中出现的诡异行值进行了深入的分析,最后根据切片原理,计算出我们需要的行值。本文是一个发现问题,思考问题,解决问题的过程,在理解上是有一定难度的,希望读者仔细揣摩。原创 2023-06-27 16:59:09 · 2410 阅读 · 2 评论 -
从零开始学GeoServer源码十一(如何解决No Multipart-config for Servlet错误)
本文起源于我们遇到的一个问题,本来GeoServer使用的好好的,但是有天突然发现,无法在GeoServer中上传样式的sld文件了,报错 “” ,这不是奇怪了,我们命名配置了文件解析器了,为什么会产生这种错误,经过排查是存在文件解析器冲突问题,本来特此记录一下。万事万物都是有原因的,不正常的运行状态必然是有不正常的逻辑引起的。我们正式靠着这一逻辑,一步一步,逐渐定位问题并解决问题,最终解决了多个之间的冲突问题。希望各位读者也能秉持这一思想,精益求精。回见~原创 2023-03-07 16:37:07 · 1061 阅读 · 0 评论 -
GeoServer服务迁移出现 EncryptionOperationNotPossibleException 错误的解决方案
本文我们通过对比两台GeoServer连接同一台postgis,最终发现了加密后结果不一致的问题,也解决了数据迁移过程中的报错问题,对我们的部署工作起到了很大的帮助。好了,本文就讲到这里,回见~原创 2022-11-30 14:46:29 · 1852 阅读 · 4 评论 -
从零开始学GeoServer源码十(如何修改菜单项以整合我们的功能?)
目录1.前言2.思路3.新建一个java工程4.配置applicationContext5.将该工程添加为【gs-web-app】的依赖6.将home接口跳转一个html7.大功告成,运行看看8.总结1.前言 在第七篇:从零开始学GeoServer源码七(如何注册服务并发布3dtiles和cesium的地形terrain?)和第九篇:从零开始学GeoServer源码九(如何集成Cesium以实现预览3dtiles和terrain服务?)中,我们分别实现了在 GeoServer 中访问静态页面和预览 3原创 2022-05-25 12:34:28 · 1435 阅读 · 8 评论 -
从零开始学GeoServer源码九(如何集成Cesium以实现预览3dtiles和terrain服务?)
这里写目录标题1.前言2.思路3.准备一个预览页面4.在静态页面准备一个a标签跳转并传值5.完善静态页面5.1 获取要预览服务的唯一编号previewId5.2 准备加载3dtiles和terrain的函数5.3 发ajax获取服务的url6. 补全预览页面需要的Cesium依赖7.看看预览时的效果8.总结1.前言 在第七篇中我们讲了如何使用 GeoServer 发布 3dtiles 和 terrain 文件,在那一篇中,我们最终实现了发布功能,但预览功能还是需要在 Cesium 的工程里去手动添加预原创 2022-05-24 20:56:43 · 3283 阅读 · 8 评论 -
从零开始学GeoServer源码八(内存溢出?Out of Memory Error ?)
1.前言 本篇博文可以说是一次 GeoServer 线上内存溢出的解决过程,因为我们线上发布以后,发现 GeoServer 的内存一直在上涨,最终导致无内存可用,发生了内存溢出(Out of Memory Error),但是当我们排查了一遍问题以后发现,不仅仅是 GeoServer 的问题,还有很多问题,都导致了最终无内存可用,接下来详细说明。2.有哪些现象? 出现内存溢出以后,我们就开始排查问题,结果发现了这么几个现象。2.1 所有进程的内存加起来远远没有显示的那么高推测导致这个问题的原因原创 2022-04-20 14:02:19 · 1747 阅读 · 0 评论 -
从零开始学GeoServer源码七(如何注册服务并发布3dtiles和cesium的地形terrain?)
本来发布 3dtiles 和 cesium 的 terrain 文件并不是一定要依赖于 GeoServer ,使用 IIS 或者 Tomcat 都可以,但是发布服务,我习惯了使用 GeoServer ,因此,也就将这些功能整合到 GeoServer 里,方便自己使用。 发布 3dtiles 和 terrain 文件的本质,都是可以通过浏览器访问静态资源,我们知道 3dtiles 有四种格式,分别为 i3dm 、b3dm、pnts、cmpt。而 terrain 文件则是 cesium 的 quanti原创 2022-04-07 12:01:17 · 7893 阅读 · 20 评论 -
从零开始学GeoServer源码六(如何打包发布?)
前言: 我们前五篇讲解了如何在 GeoServer 中开发自己需要的功能,那么当功能开发完成之后,我们需要做的就是打包发布。网上关于 GeoServer 打包发布的博文少的可怜,几乎没有,所以我们这里就来详细讲讲,顺便说说我遇到的那些坑。目录1.打包2.发布3.注意事项3.1 跨域设置引发的报错3.2 本地jar包未打入war包引发的错误3.3 内网打包报错4.总结1.打包 GeoServer 的打包是要在【gs-web-app】目录下执行命令://外网mvn clean package/原创 2022-03-05 22:08:35 · 2124 阅读 · 5 评论 -
从零开始学GeoServer源码五(切片原理及自定义插件支持wms、wmts、tms)
前言:前四篇博文我们讨论了从如何搭建GeoServer开发环境,如何调试,以及如何支持自定义插件。我们的最终目的是将MongoDB中影像切片发布出来,使其支持wms、wmts、tms,有了前几篇的铺垫,相信读者或多或少也会有了一些收获。本篇我们就套讨论一下,要实现最终的目的,我们还需要做哪些工作。1.tms(tiled map service)的分类 首先我觉得还是要说一说tms的分类,因为这涉及到我们要做的转换。tms有两种,一种是osgeo这个组织出的,这种tms的原点在左下角。mbtiles中存原创 2022-01-12 22:06:47 · 4438 阅读 · 0 评论 -
从零开始学GeoServer源码四(自定义插件或拓展数据源)
前言: 回顾在第一篇博文中的内容,我说我要把MongoDB中的影像切片发布出来,那么这就必须有一个栅格数据源来作为数据存储,并且这个栅格数据源还要是MongoDB。本期我们就来讲一讲,如何拓展,或者说,自定义GeoServer的数据源。1.原生GeoServer拓展数据源的方式 首先,我们来回顾一下,原生的GeoServer是怎么拓展数据源的呢?只需要在GeoServer官网下载对应版本的拓展格式的jar包,放到GeoServer安装目录的webapps\geoserver\WEB-INF\lib文件原创 2022-01-12 17:57:07 · 3881 阅读 · 4 评论 -
从零开始学GeoServer源码三(断点应该打在哪?)
前言: 上一篇我们讲了搭建开发环境,那这一篇就开始调试了。开始调试就有个问题,断点应该打在哪?这是我调试GeoServer源码的时候最头疼的一个问题。毕竟GeoServer这个工程下面的子工程还是蛮多的,所以这一篇,我们就来详细讲讲这个问题。 首先,贴出一张我整理出来断点清单,然后我再来详细讲讲是怎么找到他们的。序号功能所属包路径方法1项目总入口gs-mainorg/geoserver/filters/FlushSafeFilter.javadoFilter2原创 2022-01-12 10:48:33 · 2312 阅读 · 3 评论 -
从零开始学GeoServer源码二(搭建开发环境)
**前言:**上一篇中我们说到了改GeoServer源码的原因,这一篇我们就直接进入正题。开始撸代码之前,当然是搭建开发环境,其实讲搭建开发环境的博文也不是没有,但是因为我是从零开始纯粹靠自己摸索,所以本篇想讲一讲我遇到一些问题,希望能供后来者参考。1.上GitHub down代码 GeoServer在GitHub上的地址为:GeoServer源码,我选择的是比较新的版本,2.19.x,然后下载zip压缩包在本地解压,见下图:吐槽一下公司网贼慢,我用流量下的,我的心在滴血~~~~~~2.使用原创 2022-01-11 22:47:30 · 5678 阅读 · 25 评论 -
从零开始学GeoServer源码一(开篇)
**前言:**最近研究了一下GeoServer源码,这也是我从C#转到Java后接触的第一个开源项目,也是我从新浪博客迁移到csdn博客发的第一篇博客。因为我们最近有个需求,需要把MongoDB中的切片发布出来。其实,原生geoserver是支持发布MongoDB中的矢量文件的,但我们在MongoDB中存的影像切片,GeoServer并不支持,因此,就需要改GeoServer的源码,也就有了这一个系列。在这一个系列中,我将一步一步讲明白我是如何讲MongoDB的影像切片发布出来的。...原创 2022-01-10 21:41:25 · 6299 阅读 · 16 评论 -
GeoServer的GeoWebCache切片命令详解
前言:最近在研究GeoServer的切片工具GeoWebCache,它是GeoServer的一个切片工具,能够自动生成切片,可以独立部署。但是不同版本的切片命令稍有不同,本文就在这里记录一下。GeoWebCache的官网文档在这里官网根据官网的介绍,我们需要使用一个curl工具发送命令行,那么curl是什么呢?就是一个exe文件,可以传输http命令和文件。...原创 2019-10-23 16:12:44 · 1180 阅读 · 12 评论 -
GeoServer自动发布服务中的那些坑
前言:其实应该先出一个GeoServer自动发布服务的教程,因为没发布过shp或者postgresql(postgis)的话,这些坑是不好理解的。但其实发布服务的接口好写,无非是调用GeoServer的RESTApi,难点在于其中的坑,这里记录一下。我们在这里首先声明,GeoServer自动发布服务的流程和手动发布的流程是一样的,你都需要先创建工作区,然后是数据存储,...原创 2020-03-11 17:24:08 · 919 阅读 · 0 评论 -
GeoServer中的WFS只读(readonly)解决办法
首先吐槽一下GeoServer的WFS报错“XX图层只读”真是太恶心了。明明全部都设置了可写,但是还报只读的错。 接下来我们说说怎么发现这个问题的。我们表中的id字段类型是guid,用GeoServer的WFS服务新增时,总说无法生成guid(在postgresql中叫uuid)。于是我就把id这一列给删了,然后就开始报只读的错误。 然后我们就在...原创 2020-05-11 17:00:28 · 770 阅读 · 0 评论 -
GeoServer发布tif和Img格式影像(可去黑边)
前言:GeoServer默认是支持发布tif影像的,但默认不支持发布img影像,img影像的发布需要安装GDAL的拓展,如果你还不知道如何安装GDAL拓展,可以移步这篇博客:GeoServer安装GDAL拓展,下面我们正式开始。一、发布tif影像 发布tif影像就很简单了,添加数据存储的时候,直接点击tif选项 选择我们的影像就行了,影像可以放...原创 2020-07-09 21:01:44 · 1112 阅读 · 2 评论 -
GeoServer发布ImageMasic(影像镶嵌数据集)
前言:如果你有很多井影像,拼接起来的影像很大,而你又不想拼接的时候,你就可以使用GeoServer发布ImageMosaic,即影像的镶嵌数据集。当然ImageMosaic的另一个妙用是,可以对单幅非tif影像去黑边,如单幅img影像。注意:如果你的GeoServer没有安装GDAL的拓展,那么你的ImageMosaic支持的格式就很少,比如tif可以,img就不行。如果你还不知道如何...原创 2020-07-09 22:00:51 · 1528 阅读 · 4 评论 -
linux上安装geoserver连接mysql报错CannotcreatePoolableConnectionFactory解决办法
前言:最近项目上要把geosever部署在linux上然后连接mysql,但是连接mysql的时候总是报错Cannotcreate PoolableConnectionFactory,折腾了一天总算解决了,这里记录一下。如前面所言,这事真有点灵异事件的意思了,我用windows系统上的geoserver可以成功连接mysql数据库,怎么用linux上的geoserver就不行了呢?...原创 2021-07-07 09:23:36 · 2294 阅读 · 0 评论