GIS行业从业者要兼顾两头和中间,两头是指数据生产和可视化效果,要把目光放在数据(不只是单纯地理数据,还有一些相关的业务数据)的高效存储,如何在其上构筑高效应用使用,最终满足业务需求。技术上不能一味将压力向GIS前端软件(桌面GIS或WebGIS)传导,而应该构建一体式的解决方案,在数据流转的整个流程上优化。
最近几天基于GeoServer发布了几个wms服务,对矢量文件渲染的样式做了调整,效果比较满意。又把GeoServer的源码clone下来研究了一下,特别是拜读了下面几篇文章:
结合GeoServer的源码做了阅读和注释。经过这一系列的折腾过程,越发觉得GeoServer的伟大。
目前了解的GeoServer基本情况:使用java的spring框架对整个项目进行解耦,构建了基本的运行环境,具有Spring基础的入门难度不大。
整个数据结构设计清晰,比如main模块定义了一系列的基础类和接口,随处可见面向对象思想的应用。main包的org.geoserver.catalog.Catalog接口包含资源访问的方法。main包的org.geoserver.config.GeoServer接口包含访问服务器公共配置信息的方法。org.geoserver.catalog.StyleInfo是样式资源的接口等等。
通过参考已有实现扩展自己的服务接口,满足自定义需求。
底层使用GeoTools完成GIS相关功能。
那基于GeoServer我们能做什么?
1.学习角度我们可以参考它的的设计、实现方式,特别是接口设计和面向对象思想在GIS领域的实现,如何抽象复杂的地理空间对象。
2.工程角度我们完全可以对GeoServer进行魔改,适应个性化需求。完全可以对GeoServer的功能进行精简和扩充,结合其他存储结构(如分布式存储等),构建一套分布式的地理服务解决方案。
3.扩展GeoServer的功能。
yafengstark/GeoServerBookgithub.com
不定期更新对GeoServer的学习记录。