本篇博文主要是讲解通过geoserver对shp矢量数据进行发布,并使用wms服务进行数据浏览查看。
shape文件由ESRI开发,一个ESRI(Environmental Systems Research Institute)的shape文件包括一个主文件,一个索引文件,和一个dBASE表。其中主文件的后缀就是.shp。
一般来说,一个完成的shp矢量数据需要包含,xx.shp用于记录各要素的坐标信息,xx.dbf用于记录各要素的属性信息,xx.prj用于记录本文件的坐标系,xx.sbn和ss.sbx是空间索引文件,xx.shx是要素的几何特征的索引文件等数据,另外常见的还有xx.cpg文件,用于数据中文的解译文件。
一套完整的shp数据,最好是wgs84坐标系,比较好理解后续的文件坐标对比。
已经安装好的geoserver。
上篇文章中已经对geoserver启动和登录做了讲解了,通过cmd进入tomcat/bin 目录下,然后输入./startup.sh ,或者在tomcat/bin目录先直接点击startup.bat,等待tomcat和geoserver的启动,然后在浏览器输入http://localhost:8080/geoserver,输入账号密码即可,默认为admin /geoserver。
点击左侧数据—数据存储,可以理解为这里主要是存放所有通过geoserver调用的数据,只是有记录,还没有发布,不能正常使用地图资源。
点击添加新的数据,进入数据类型选择界面,在此界面需要选择正确的数据类型,本次主要是对shp矢量数据,因此点击Shapefile 这个选项。
这里主要对shp数据发布中需要注意的事项进行解释,主要以下图为例,主要是四个方面需要需要注意
工作区,主要是对存储发布的数据进行区分,对wms、wmts等数据请求网址有影响(一般为www.xxxxx layers=工作区名:图层名 xxxx), 同时需要注意的是,在后面的图层组中,如果图层组指定了工作区,不同工作区的图层不能进行组合。
顾名思义,这里主要是填写数据的存储名称,本身不是重点,这里提出来是因为如果处理数据较多的话,最好有一个规范的命名格式,例如:地区名_年份(_分辨率/属性)_类型,例如:wuhan_2021_1m_tif 和 wuhan_2021_road_shp。主要是方便区分。
这里需要点击后面的浏览,来选择shp文件存放的位置,geoserver默认会打开其创建的data文件,但一般文件存放的位置有差异,因此需要点击左上角的数据目录来寻找存放位置,并不一定需要将文件存放至默认的data文件夹中。
这里是比较容易忽略的一个地方,也是最容易导致发布出来的数据出现乱码的地方。默认是ISO-8859-1,适配于英文dbf(见shp文件介绍),如果我们的dbf文件中包含中,一般我们需要选择GBK或者GB2312,不然发不出来的服务很容易出现中文乱码。
以下图为例,如果出现这种名称转义的问题,不要慌张,因为默认命名在不同版本geoserver上可能会以原生文件名最为图层名,如果是中文文件名,则会出现这种问题。
此处,把文件名改掉,然后下放的启用一定要勾选上,默认是勾选。
配置完成命名和,向下滑动,会出现本机SRS和定义SRS,一般情况下我是选择EPSG:4326这个选项,对应的是WGS84坐标系,当然主要看原始shp数据的坐标系格式,有些墨卡托投影坐标系是做不了这个坐标系的,如果需要地理坐标系,那就需要重新生产或转换坐标系了。
style文件主要是对发布出来的文件,进行样式的调整,本次不做详细讲解,只要能使用即可,后续系列文章中可能会做讲解。
上面的步骤完成后返回最上方,点击发布按钮,下方default style 就是本次数据默认的样式,如果有已经配置好的其他style可以选择其他央视,但一般style要与shp文件本身几何特征匹配,例如:polygon特征的要素,只能使用polygon的style文件,同理还有point和line,这里需要注意。这一步完成后先不要点保存。
点击上方Tile caching 按钮,进入文件缓存配置,通过这个配置可以使geoserver开启被动切片,(emmm。。 如果不了解切片。。 那后面系列会讲到的。)把2号区域内的两个选项勾选上,即可开启被动缓存。
然后还有需要注意的是下面的网格集,也就是切片缓存的坐标系策略,如果是通过手机访问,我一般使用EPSG:3857,这里还没有进行配置,所以没有,后面再网格集中配置后可使用。
完成上述操作后。。终于可以点保存了。
点击保存按钮后,会自动跳转至图层管理,这里能够看到我们发布的数据图层,但是浏览需要通过其他位置来浏览。
点击左侧的Layer Preview按钮,然后找到我们发布的图层,点击OpenLayers按钮,即可打开一个新的页面进行浏览。
在新的界面中即可看到我们刚刚发布矢量数据的WMS服务浏览,点击图上的shp要素,可在下方获取点击要素的属性信息(dbf属性)。
那到这里shp数量数据的发布就结束了,请大家愉快的玩耍吧。
我们在发布数据的时候,会碰到一个文件夹内有很多shp数据需要发布,不会吧,不会让我一个个配置路径参数吧,当然不会。。。 可以通过发布shp文件夹的方式来发布一堆shp文件,当然,发布后的编辑图层还是需要配置的,这个逃不掉的。如下:
这里选择我们刚刚数据存储的储存名。然后选择其他还没有发布的图层进行相同发布操作即可。
OKOK,那就先这样吧,啊,发现我好啰嗦,写了一堆。。如果有错误的地方,敬请指正。