GeoServer源码解析和扩展 (四)文件系统

摘要:
在上一章中,我介绍了GeoServer的一些重要资源及其访问接口。现在让我们看看它们的存储形式。GeoServer数据不会保存到数据库,而是保存到文件系统,这使我们的学习更加容易。然而,如果我们需要扩展GeoServer,特别是当我们需要扩展概念时,例如,我们需要添加一个名为Table的资源类型,它表示一个表数据,可能是一个Excel表。此时,我们需要将其放在适当的文件夹下。最好与GeoServer的本地文件夹系统保持一致,以便我们可以使用许多现有工具。

上一章我介绍了GeoServer的一些重要的资源以及它们的访问接口,现在来看看它们的保存形式。GeoServer的数据没有保存到数据库,而是文件系统,这让我们的学习轻松不少。默认情况下,GeoServer的数据都会放到一个叫“data_dir”的文件夹下面,虽然你可以自己设置这个文件夹的路径,但是它的内部结果是固定的,如下图

image

这是2.0.2版本的data_dir,从子目录的名称基本上能够猜测它的作用。“coverages”保存的是影像数据。“data”保存了矢量数据,基本上是Shapefile。“styles”保存的是样式文件,即“*.sld”文件。“workspaces”保存的是工作空间,这是GeoServer的概念,工作空间代表一个独立的分组,它有自己的Namespace,它包含有Store,Layer和FeatureType,包含在Workspace下面的数据都需要用Namespace来引用,例如这段URL:http://localhost:8080/geoserver/wms?bbox=-130,24,-66,50&styles=population&Format=image/png&request=GetMap&layers=topp:states&width=550&height=250&srs=EPSG:4326 ,它请求一个叫“topp:states”的图层的地图,这里的“topp”就是Namespace,我们可以看到“workspaces”下面确实有一个叫“topp”的文件夹

image

打开“topp”我们会看到如下内容

image

没有看到“states”图层,这是怎么回事呢?Workspace下面的文件夹对应的是Store这个概念,而Layer和FeatureType都属于Store。下图是“states_shapefile”文件夹的内容

image

打开“states”文件夹可以看到

image

到此,我们就把资源的文件夹关系简单浏览了一遍。其中,我认为,最重要的关系就是Workspace与包含数据的关系。

一般来说,我们不太会直接访问这些文件夹,GeoServer的资源访问接口已经为我们提供了完整的访问机制。但是,如果我们需要对GeoServer进行扩展,尤其是需要扩展概念的时候,例如,需要增加一种资源类型叫Table,代表一个表数据,也许是一个Excel表格。这时候我们就需要将它放到合适的文件夹下面,最好是和GeoServer原生的文件夹系统一致,就可以使用很多已经存在的工具。

好了,这一章就写到这里,这也是本系列的最后一篇,谢谢观赏。时值新春佳节来临之际在这里祝福所有人:身体健康,财源广进,兔年吉祥如意。

免责声明:文章转载自《GeoServer源码解析和扩展 (四)文件系统》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇pymysql 线程安全pymysqlpoolMySQL下载安装、基本配置、问题处理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

GeoServer基础教程(一):环境搭建篇

转自:http://imxz.me/tech/3sdev/installation-of-geoserver.html GeoServer的是一个基于Java的软件,它允许用户查看和编辑地理空间数据,使用开放地理空间联盟(OGC)提出的开放标准,为地图创建和数据分享提供了强大的便利性。 GeoServer是OpenGIS Web 服务器规范的 J2EE 实...

cesium加载WFS服务(GeoServer发布)

需求: 为了便于前端渲染数据,自定义图层渲染。 思路: 获取地图服务中的要素进行渲染。 工具: GeoServer 2.6.4,cesium, 思路有了就开始找资料写代码,cesium有接口可以加载WMS服务,但是加载的WMS服务获取到的是切片,不可能将获取到的要素进行渲染。于是想通过WFS服务来渲染数据,但是cesium没有提供可用的接口,通过googl...

(九)WebGIS中的矢量查询(针对AGS和GeoServer)

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/。 1.前言 在第七章里我们知道了WebGIS中要素的本质是UIComponent,而矢量图层的本质是包含了n(n>=0)个UIComponent的Canvas。我们在UIComponent的graphics中,根据矢量数据画...

使用geoserver发布arcgis切片

arcgis map 版本:10.1,10.2,10.3均可 jre:7或者8 geoserver:2.8.2以上 切片:松散型,256*256  ,png 1:安装geoserver并独立部署geowebcache   安装方法:将下载的geowebcache独立部署包解压到geoserver的webapp目录下  例如:webapp/geowebcac...

关闭GeoServer v2.13权限认证

写在前面: 所用geoserver 版本为 2.13.2, tomcat 8,jdk 64位环境 问题产生的背景:使用 geoserver 发布wmts服务,用arcgis for js 4.x 版的 WebTileLayer 类加载,在网页端弹出输入用户名和密码的提示框,如下图: 按照提示输入登陆geoserver的用户名和密码即可显示请求的数据,但在...

Geoserver的rest接口使用(后台或者前端调实现自动发布服务)

Geoserver提供许多服务的发布,我们可以通过控制台进行手动发布,至于至于如何在程序中利用代码发布服务,这如何做?可以通过两种思路进行一通过后台通过请求rest接口进行发布或者前端通过ajax,另一种通过xml方式详细的请参考该篇文章简析GeoServer服务的内部文件组织以及GeoServer自动化服务发布工具的开发思路本文主要介绍地第一种方式(ja...