从零开始学GeoServer源码一(开篇)

快速导航(持续更新中…)

从零开始学GeoServer源码一(开篇)
从零开始学GeoServer源码二(搭建开发环境)
从零开始学GeoServer源码三(断点应该打在哪?)
从零开始学GeoServer源码四(自定义插件或拓展数据源)
从零开始学GeoServer源码五(切片原理及自定义插件支持wms、wmts、tms)
从零开始学GeoServer源码六(如何打包发布?)
从零开始学GeoServer源码七(如何注册服务并发布3dtiles和cesium的地形terrain?)
从零开始学GeoServer源码八(内存溢出?Out of Memory Error ?)
从零开始学GeoServer源码九(如何集成Cesium以实现预览3dtiles和terrain服务?)
从零开始学GeoServer源码十(如何修改菜单项以整合我们的功能?)
从零开始学GeoServer源码十一(如何解决No Multipart-config for Servlet错误)

1.前言:

  最近研究了一下GeoServer源码,这也是我从C# 转到 Java 后接触的第一个开源项目,也是我从新浪博客迁移到csdn博客发的第一篇博客。因为我们最近有个需求,需要把MongoDB中的切片发布出来。其实,原生GeoServer是支持发布MongoDB中的矢量文件的,但我们在MongoDB中存的影像切片,GeoServer并不支持,因此,就需要改GeoServer的源码,也就有了这一个系列。在这一个系列中,我将一步一步讲明白我是如何将MongoDB的影像切片发布出来的。

2.思路

  其实这个思路我和同事沟通的时候偶然发现的,当时同事说他用GeoServer发布过MBTiles文件,其实MBTiles本质上就是SQLLite数据库,里面存的就是切片。这不就是我要效果吗?真是无心插柳柳成荫啊。我就跟他要了一个MBTiles的文件,并且在GeoServer里装上MBTiles的插件,结果发现在GeoServer里,MBTiles既可以做为矢量数据源,也可以作为栅格数据源。那我就改改MBTiles插件的源码,让程序去读MongoDB数据库不就行了嘛。

3.最终效果

3.1 WMS访问

从零开始学GeoServer源码一(开篇)_第1张图片

wms是动态渲染的

3.2 WMTS访问

从零开始学GeoServer源码一(开篇)_第2张图片

wmts是ogc的标准切片协议

3.3 TMS访问

从零开始学GeoServer源码一(开篇)_第3张图片

tms,准确的来说是google tms,原点在左上角,并不是那个原点在左下角的osgeo tms

3.4 原始数据

从零开始学GeoServer源码一(开篇)_第4张图片

4.总结

  毕竟这是我第一个Java开源项目,收获还是蛮多的,比如对分辨率(resolution)的理解、对切片原理的理解,对 osgeo tmsgoogle tms 的理解,对 wmswmts 的理解都加深了,所以多看源码真的是很有必要的。

你可能感兴趣的:(GeoServer,geoserver,源码,MongoDB,影像,切片)