前面两节介绍了 GeoServer 的环境搭建和 GeoServer 的 Web 管理界面,这一节我们来熟悉使用 GeoServer 发布一份 Shapefile 地图数据。希望通过这一节的学习,我们能够掌握和理解在 GeoServer 上部署地图数据的一般过程和方法。
在 GeoServer 上部署地图数据非常简单,GeoServer 支持的数据格式和数据源也很多,发布和部署地图数据涉及到 GeoServer 的几个重要知识点:工作区、数据存储和图层等概念。我们也会在这一节一一进行阐述。这一节我们部署发布的地图数据为 Shapefile,也相信大家能够举一反三,学习这一节后能掌握其他数据源的地图数据的部署和发布。
准备工作
1、下载 nyc_roads.zip ,这是 GeoServer 官方网站提供的一份 Shapefile 测试数据,包含了部分纽约的道路信息,我们本次就使用此 Shapefile 来进行部署和发布。
2、解压下载好的压缩包,然后将整个文件夹复制到 GeoServer 数据目录的 data 文件夹下。
GeoServer 的数据目录 是文件系统中的一个目录,这里存放的是 GeoServer 的配置信息等。这些配置信息定义了包括 GeoServer 提供哪些数据服务,这些数据存放在哪里以及像类似 WFS 和 WMS 等服务是如何相互影响和提供服务的。数据目录也同样包含了 GeoServer 所需的众多用于各种目的的支持文件。
如果用户没有对 GeoServer 的文件系统进行更改的话,那复制完成后的文件目录应该是:geoserver/data_dir/data/nyc_roads,然后就是四个所需的 Shapefile 格式文件。
新建一个工作区
部署地图数据第一个步骤即为新建一个工作区,工作区(WorkSpace)是一个用于组织类似图层数据的容器。我们常常会把一些相关的图层数据放到一个工作区里。新建工作区的操作流程为:
登录 GeoServer 的 Web 管理界面,依次点击右侧的工作区 – 添加新的工作区,进入新建工作区的界面,在这里需要输入工作区的名字和命名空间 URL。
工作区名字 就是一个标志符,用来区分你的不同的项目,而 命名空间 URL(Uniform Resource Identifier)通常是一个与你项目有关的超链接,如果你的服务器接入了互联网,做好了相关配置与发布,那么可以在互联网上通过这个 URL 来访问你的数据。
最后点击提交完成创建。
新建数据存储
为了添加 nyc_roads 中的 Shapefile 地图数据,你必须建立一个数据存储。数据存储实际上维护着地图数据和文件系统中的文件夹的映射关系。
点击数据存储 – 添加新的数据存储,我们可以看到 GeoServer 支持的众多矢量数据和栅格数据源:
根据我们要发布的 Shapefile 地图数据格式,我们点选 Shapefile - ESRI (tm) Shapefiles (*.shp) 即可。然后按照图中所示填写好相关信息。我们要注意的是工作区应该选择我们第一步建立的,Shapefile 文件的位置通过浏览选择我们在准备工作中复制到数据目录下 data 文件夹中的 Shapefile。然后数据表的字符集应该和源数据一致,如果不知道源数据的字符集,建议选择 UTF-8,保证对中文系统和用户的支持。
最后点击保存完成创建。
创建一个图层
新建数据存储后,默认会停留在新建图层的界面,我们直接在此开始建立图层。因为只有一个图层 nyc_roads,点击发布进入图层编辑界面。图层编辑界面定义了图层的数据和发布参数。填入了名称、标题、摘要等基本信息后,我们需要定义重要的 SRS 信息和边框信息。
本机 SRS 是指地图数据本身的坐标参考系统,这是由地图数据本身的属性决定的,也是不可修改的。GeoServer 会自动从数据文件中读取这一信息。相对应的 Native Bounding Box 则是根据本机 SRS 自动计算出来的边框,我们点击从数据中计算就能计算出来边框范围。
定义 SRS 是指我们自己想要定义显示地图数据的坐标参考系统,我们通过右边的查找按钮进行查找选择。对于国内用户来说,常用的坐标系统可以通过键入 “beijing”、”xian” 或者 4326(WGS-84 的编码序号)进行查找选择。选择确定后,通过点击 “compute from nativ bounds” 可以计算出在这个坐标系统下的边界。
最后点击保存进行发布。
图层预览
为了验证我们部署发布 Shapefile 地图数据成功与否,可以对刚刚发布的数据进行预览,点击左侧的 Layer Preview,找到我们刚刚发布的地图图层,点击”Openlayers“进行预览,如果成功你可以看到下图所示的道路分布。
在这里,我们已经可以通过默认的控制条来进行放大缩小与平移,还能点击图中的地理要素来查看属性。
小结
至此,通过 GeoServer 部署发布 Shapefile 地图数据已经介绍完毕。我们希望通过这一节能使大家对工作区、数据存储和图层等概念有更深一步的了解,也能掌握部署发布地图数据的一般方法和流程。如果对于这些你有疑问,欢迎留言交流。
下一节计划开始和大家详细介绍 GeoServer 支持的请求协议,如 WFS、WMS 等,欢迎继续关注。