GeoCat Bridge for QGIS
本文简单将插件的安装,并且展示连接geoserver并且在geoserver上发布矢量数据的过程。与其中可能出现的问题。
目录
一、安装插件
在QGIS中选择插件,管理并安装插件...,找到GeoCat Bridge并安装。
安装好插件之后,工具栏某个地方会有这么两个按钮。
二、GeoCat Bridge连接Geoserver
找到刚才安装好的插件,点击Publish按钮
在左上方选择Servers标签,进行服务器设置。
点击New Server,在下拉菜单中选择GeoServer。(我们这次连接geoserver)
默认如图所示,需要填写一个连接名,Geoserver链接URL,数据存储方式,和添加一个Geoserver登陆验证。
连接名默认GeoServer,可以修改成其他名字,这里我就用它了。我本地测试开了一个geoserver,它的链接URL就是http://localhost:8080/geoserver,连接其他geoserver则填入对应的URL。
存储方式选择File-based storage,(可选Import into PostGIS database,连接数据库,这里不作演示)。数据将会存储在geoserver的data路径下。
下面有两个CheckBox。(根据需求进行勾选)
若勾选第一个CheckBox,则数据(矢量、栅格)不上传到geoserver,geoserver把本地数据当作数据源。不符合我的需求,我这里不勾选。
第二个CheckBox,指当上传矢量图层的时候,会为其计算矢量瓦片。(可选可不选,有什么影像后续再补充)。
点击绿色加号,添加一个Credentials认证,如下图所示,填写一个认证名称(用于区别多个认证信息),在下拉菜单中选择基本身份认证。
我的认证名填写geoserver,填写我连接的本地geoserver用户名和密码,点击Save保存。
点击Test Connection,测试一下连接。
测试连接成功与否都有提示,我这里测试连接成功。
如果连接失败,检查一下geoserver的URL、用户名和密码时候有误。
至此,完成了与geoserver的连接,接下来就可以进行发布了。
三、通过GeoCat Bridge发布矢量数据
在发布之前,先确认好已经与geoserver建立好连接。
在发布之前,先要保存一下项目工程,临时项目会出现下图这种情况,发布失败。
我这里准备好了一个项目,项目名为“ABC”,图层名为“ABC_TEST1”,根据属性字段“id”进行渲染,我们接下来发布看看效果。
打开我们的插件,默认是Publish发布标签,中间会显示当前项目的所有图层,我们选择刚刚添加的geoserver链接,点击发布。
发布过程。
发布成功。
我们打开geoserver看看效果。在Layer Preview中搜索ABC。点击OpenLayers预览图层。
效果如下。
我们一步一步来看一下我们的发布参数。
在工作区中,我们找到一个名为“ABC”的工作区,正是我们的项目名字,其实,发布的时候会创建一个和工程名字一样的工作区。注意:如果工作区已存在,则会删除该工作区包括使用该工作区发布的图层,然后创建一个同名工作区。
打开数据存储,找到刚发布的图层,可见数据存储名称为“abc_test1”,而我们的图层名称为“ABC_TEST1”,数据存储名称由图层名称得到,其中大写字母全部改成了小写。数据类型是GeoPackage。
点击数据存储名称,进去看一看数据存储参数。发现打不开,出现报错。应该是存储类型GeoPackage的问题(不确定)。
打开geoserver文件存储目录,在其data目录下,有个“ABC”文件夹,里面存放着刚刚发布的abc_test1数据。在数据发布的时候,会将数据拷贝到这里,进而发布。数据存储类型是GeoPackage。
打开图层,发现一切数据正常,与手动发布无异。有小伙伴可能已经发现了,发布会带有QGIS的渲染效果,在图层的发布标签中可见如图。不仅发布了,还生成了一个样式,效果与QGIS一致。
到了这里,我们的图层已经发布完毕了。
四、其他注意的点,否则可能发布失败
1.上传的矢量数据会以GeoPackage类型进行存储,栅格数据会以GeoTIFF类型进行存储。
2.发布工作区是项目名,发布图层名是QGIS中图层名的字母小写。在发布之前,先修改好项目名与图层名,避免与已发布的重名导致发布出现问题。在此强调:如果工作区已存在,则会删除该工作区包括使用该工作区发布的图层,然后创建一个同名工作区。
3.矢量发布类型是GeoPackage,不是Shapfile。
4.一定要设置好项目坐标系与图层坐标系,否则必定发布失败。
5.栅格发布同理,但可能会出现其他问题,这里尚不列举。