1.准备数据
实验数据:链接:https://pan.baidu.com/s/1ThIwRpRIAiOQGeQba5UO6g 提取码:mvd5
下载nyc_roads.zip,然后解压到E:/geoserver/nyc_roads。该数据已经经过投影变换,投影为EPSG:2908。
2.启动GeoServer
选择”开始>所有程序>GeoServer2.14.3>Start GeoServer“,启动GeoServer。
3.进入服务器管理页面。
通过选择”开始>所有程序>GeoServer2.14.3>GeoServer Web Admin Page“,或者直接再浏览器中输入"http://localhost:8084/geoserver/web/"(默认端口是8080,我这里改成了8084),进入Geoserver的Web管理页面。在Geoserver的Web管理页面中输入用户名与密码进行登录。如果是默认安装,那么用户名为"admin",密码为"geoserver"。
4.创建工作区
在GeoServer中发布和部署地图数据涉及到的几个重要概念——工作区(WorkSpace)、数据存储(Store)和图层组等。
![3b0dde5843b8d0ba9a364b3102c60c37.png](https://i-blog.csdnimg.cn/blog_migrate/9ca24f5c09a0e286863fa6a3b63ffae2.jpeg)
工作区(有时又称为命名空间)是一个用于组织类似图层数据(数据集)的容器。常常会把某个项目或工程的相关图层数据存放到一个工作区里。通过工作区的使用,可以避免相同图层名的冲突。例如,在名为beijing工作区中的streets图层,引用时使用的是"beijing:streets",这就可以与在另一个工作区中同样名为streets图层(dc:streets)避免冲突。
数据存储是一实际的文件夹或数据集。在一个工作区中可以包含几个数据存储,因此在引用数据存储时必须在数据存储前加上工作区的名称。
在GeoServer的Web管理页面窗口的左边单击”数据“中的”工作区“,在窗口列出了7个示例工作区与管理工作区的两个链接,分别是添加与删除工作区。
![90df695a7d73eef1f1b9b01c407bfda9.png](https://i-blog.csdnimg.cn/blog_migrate/013bc55bd54f287583f5e51457916cf5.jpeg)
单击”添加新的工作区“,进入新建工作区的界面,在这里需要输入工作区的名字和命名空间URI。
在Name文本框中输入"nyc",在命名空间URI文本框中输入"http://localhost:8084/geoserver/nyc",然后单击”提交“按钮。
注意:工作区名称是描述项目的标识符,它不能超过十个字符或包含空格。命名空间URI(统一资源标识符)通常可以是与你的项目关联且添加了一个用于指示工作区的尾随标识符的URL,命名空间URI不需要解析为实际有效的Web地址。
![8e6408d70d468eb3b456e6672eec1deb.png](https://i-blog.csdnimg.cn/blog_migrate/8216149a61cdfeeab40d6d73e3de3734.jpeg)
5.在工作区中加入新的数据存储
数据存储维护着地图数据和文件系统中的文件夹的映射关系。
在GeoServer的Web管理页面窗口的左边单击”数据“中的”数据存储“,在窗口列出了9个示例数据存储与管理数据存储的两个链接,分别是添加与删除数据存储。
点击”添加新的数据存储“,进入新建数据源页面。在该窗口中需要确定数据源的类型。在GeoServer中,如果同时有栅格与矢量数据的话,则需要分别建立数据存储。在本实践中,我们使用的是矢量文件数据,因此选择"Directory of spatial files(shapefiles)",进入新建矢量数据源窗口。
![5cf5a08e352a80ddcb1033ea6d3c32de.png](https://i-blog.csdnimg.cn/blog_migrate/dbadd5292bf298399d8ae57c8ee166eb.jpeg)
![663c59b19a3fbc6f62459f6d9695f78a.png](https://i-blog.csdnimg.cn/blog_migrate/af6874658b3cc8c44406786f3836f80f.jpeg)
按照下图所示设置各参数,将工作区设置为"nyc",将数据源名称设置为"nyc_roads",然后设置数据对应的文件夹。最后单击“保存”按钮。
![06985fcad1374a8b52e09e4f9a6ef1df.png](https://i-blog.csdnimg.cn/blog_migrate/095a6bfffa1aea3b28a9362872640049.jpeg)
要注意的是,即使在文件夹中同时还包含栅格数据,也不影响创建矢量数据源的数据存储。只是如果想使用栅格数据,那么则需要另外新建数据存储。
通过上面的设置之后,便可以指定需要发布为服务的矢量图层。
6.发布图层
在新建矢量数据源页面中单击“保存”按钮后,自动切换到新建图层页面。该页面列出了nyc_roads文件夹中所有的矢量文件。
或者,在GeoServer的Web管理页面窗口的左边单击“数据”中的“图层”,在右边窗口列出了19个示例图层与管理图层的两个链接,分别是添加与删除资源。选择“添加新的资源”也同样进入新建图层页面。从下拉列表框中选择nyc:nyc_roads,表示从该数据存储中选择图层。
![1f085dc8f6adf6672eb6bb5747603c9b.png](https://i-blog.csdnimg.cn/blog_migrate/a1a47d8028b5553e933d16460afccba5.jpeg)
找到nyc_roads图层,然后选择“发布”链接,进入编辑图层页面。
在该页面中包含了许多发布图层的选项。在数据选项卡中定位到“坐标参照系统”部分,首先在“定义SRS”文本框中输入“EPSG:2908”,并将“SRS处理”设置为“强制声明”。然后通过单击“从数据中计算”与“Compute from native bounds"计算并自动填充边框坐标,如下图所示:
![9a947c3177506749de825b00c0d5aaf1.png](https://i-blog.csdnimg.cn/blog_migrate/61e6d904ea5507c624913d1f52e17470.jpeg)
最后在页面底部选择”保存“,进入到图层列表页面。
注意在该步骤中,如果选择了"Compute from native bounds"之后并没有计算出经纬度表示的边框,那么可能是GeoServer没能正确解析”定义SRS“文本框中输入的坐标参照系统。这时需要单击”查找“按钮,然后选择EPSG:2908.最后再重新选择计算。
7.预览图层
在GeoServer的Web管理页面窗口的左边单击”数据“中的"Layer Preview",在右边窗口列出了发布为服务的图层与图层组。定位到nyc:nyc_roads图层,然后选择OpenLayers,将会弹出一个新的窗口,在该窗口中使用OpenLayers访问该图层的WMS服务。
![290ca2a2f50e10d5547892d08bdc36f7.png](https://i-blog.csdnimg.cn/blog_migrate/f006e009d9dd7771d8944456fb738d36.jpeg)