这部分,我们会实践geoserver的部署,并发布一张WMS地图,数据来源是一个shp文件,发布完成后,用geoserver自带的openlayer打开看。
一、geoserver部署
1.下载编译包
去官网http://geoserver.org/下载,下载一个平台无关版本的编译包,既能在window环境启动,又能在linux环境启动。
部署编译包,先确保电脑上安装了JAVA的jdk。
编译包下载看网速,大概花十来分钟就可以。
![d540b6acc0cb26258b0ccc819030cf4b.png](https://img-blog.csdnimg.cn/img_convert/d540b6acc0cb26258b0ccc819030cf4b.png)
![1e40bbc23d5527868be7fa1d7bf87bdf.png](https://img-blog.csdnimg.cn/img_convert/1e40bbc23d5527868be7fa1d7bf87bdf.png)
下载好了,找个地方解压就行。
![7371fa699713a7b66143f19d3153bf64.png](https://img-blog.csdnimg.cn/img_convert/7371fa699713a7b66143f19d3153bf64.png)
2.启动
Windows下启动,打开geoserver-2.16.2-bingeoserver-2.16.2bin文件夹,双击startup.bat文件。
提示started,既表示启动成功了。
![af59a020e5f4b082e8b1ccd33cbf3db4.png](https://img-blog.csdnimg.cn/img_convert/af59a020e5f4b082e8b1ccd33cbf3db4.png)
访问http://localhost:8080/geoserver/web/,输入账号密码,初始账号是admin,密码是geoserver。
![ced53c46866074abd32f95f0433d3d7e.png](https://img-blog.csdnimg.cn/img_convert/ced53c46866074abd32f95f0433d3d7e.png)
就这么简单,geoserver就完成部署了。
3.修改账号密码
Security——Users, Groups, and Roles——Users/Groups,把账号密码修改一下,避免风险。
![f279670ca0322b6a4ef5d76804ca0bc8.png](https://img-blog.csdnimg.cn/img_convert/f279670ca0322b6a4ef5d76804ca0bc8.png)
![7087d560294e42681664a889f246e047.png](https://img-blog.csdnimg.cn/img_convert/7087d560294e42681664a889f246e047.png)
4.修改读写权限
Security——Data。
![1a4f6acd41f6006fc08c0e21915d72b1.png](https://img-blog.csdnimg.cn/img_convert/1a4f6acd41f6006fc08c0e21915d72b1.png)
在Edit existing data access rule中,把ROLE_ANONYMOUS角色加到可写权限中,这样后期,我们就能对数据进行操作了,否则只有只读权限,只能get数据,不能post数据,这步很重要。
![1b934548ea410afb9c5bb8892320df57.png](https://img-blog.csdnimg.cn/img_convert/1b934548ea410afb9c5bb8892320df57.png)
5.配置geoserver支持跨域
打开geoserver-2.16.2webappsgeoserverWEB-INF web.xml,用sublime打开就行。
搜索Uncomment following filter to enable CORS,一共有两处,都被注释掉了,把注释掉的内容拿出来,使其支持跨域。
![1724aa44773592b1f20f7922bba29a52.png](https://img-blog.csdnimg.cn/img_convert/1724aa44773592b1f20f7922bba29a52.png)
![0d09deedd1eb949e8cdac4a59691f449.png](https://img-blog.csdnimg.cn/img_convert/0d09deedd1eb949e8cdac4a59691f449.png)
改成这样就行:
![60b4d662507f57dcc5a19ec76cf3f82c.png](https://img-blog.csdnimg.cn/img_convert/60b4d662507f57dcc5a19ec76cf3f82c.png)
![4df7f4257208734c95988d4a6edd1e8c.png](https://img-blog.csdnimg.cn/img_convert/4df7f4257208734c95988d4a6edd1e8c.png)
二、geoserver发布图层
1.工作区
数据——工作区——添加新的工作区。
其中name和命名空间URI,在后面WFS服务要用到,组成请求入参。
写好name和命名空间URI之后,点击提交。
![939b0632105b5e0c5e70f8eea696903d.png](https://img-blog.csdnimg.cn/img_convert/939b0632105b5e0c5e70f8eea696903d.png)
2.数据存储
数据——数据存储——添加新的数据存储,选择Shapefile,选择shp文件。
![2dfe59425ab86c555fff3ee9d374f235.png](https://img-blog.csdnimg.cn/img_convert/2dfe59425ab86c555fff3ee9d374f235.png)
工作区选择刚才建立的mapgis。
数据源就叫mapgis即可。
说明写上。
点击浏览,弹出Shapefile文件的位置对话框,加载需要发布的shp文件。
(shp文件如何获取,请查阅https://blog.csdn.net/sinat_41310868/article/details/104742713,Download CHGIS V6 TIME SERIES Data)
DBF的字符集选择shp文件的编码。因为我加载的shp文件是UTF-8编码的,所以选择UTF-8。
设置完成后,点击提交。
![78fde182bfee09edc1e97219143e837d.png](https://img-blog.csdnimg.cn/img_convert/78fde182bfee09edc1e97219143e837d.png)
接下来新建图层,点击发布。
![49470cdef1f3def42238b4756570f0bf.png](https://img-blog.csdnimg.cn/img_convert/49470cdef1f3def42238b4756570f0bf.png)
编辑图层,数据栏中,坐标系参考直接读取的是shp文件的坐标系。
点击从数据中计算,从文件中计算出图层边框。
点击Compute from native bounds,计算边框。
![8e3be03f4a8787ff67546135017019cb.png](https://img-blog.csdnimg.cn/img_convert/8e3be03f4a8787ff67546135017019cb.png)
发布栏中,WMS Settings里,选择风格,因为shp文件是个面文件,所以默认的风格是polygon。Geoserver会预制一些风格类型。
![1cfcf22be4e2b2618a39409d0005eff1.png](https://img-blog.csdnimg.cn/img_convert/1cfcf22be4e2b2618a39409d0005eff1.png)
完成设置之后点击保存即可。
三、查看效果
数据——Layer Preview中,点击OpenLayers,在页面中查看发布效果。
![289e65b95eace2a48513debfc8aaa0c2.png](https://img-blog.csdnimg.cn/img_convert/289e65b95eace2a48513debfc8aaa0c2.png)
在图面上点击,下面能看到属性表。
![21b46649cb8dbc4f6ce7c3b77f68c8bf.png](https://img-blog.csdnimg.cn/img_convert/21b46649cb8dbc4f6ce7c3b77f68c8bf.png)
接下来看,怎么在linux上部署geoserver,并通过postgis连接数据库,发布数据表。