GeoServer发布地图服务(WMS、WFS)

简介: GeoServer发布地图服务(WMS、WFS)

GeoServer发布地图服务(WMS、WFS)

目录

1. 概述

我们知道将GIS数据大致分成矢量数据和栅格数据(地形和三维模型都是兼具矢量和栅格数据的特性)。但是如果用来Web环境中,那么使用图片这个栅格形式的数据载体无疑是最为方便的,因为图片本身就是一种非常重要的GUI元素,使用非常广泛。另外,基于矢量的地图叫做线划图,基于栅格的地图则是影像图。这也是网络地图服务(Web Map Service,以下简称WMS)的含义,可以将传统意义上的矢量数据或者栅格数据,发布成图片形式的地图数据,供浏览器的用户使用。

说再多的概念不如实际的举例更让人印象深刻,笔者这里就讲讲如何通过前面安装配置好的GeoServer发布一个WMS/WFS服务。在之前的文章《地图服务器GeoServer的安装与配置》中我们安装配置了一个GeoServer,不过进入的网页是一个没有登录的主页。要使用发布地图服务的功能,首先要登录。GeoServer默认的用户名是admin,默认密码是geoserver,登录后的主页如下图所示:

依次进入或点击【数据】——【工作空间】——【添加新的工作空间】,工作空间是用来管理发布地图的集合,如下图所示:

在【新建工作空间】中输入名称以及命名空间URI。名称可以自己定义,命名空间URI在这个例子中不重要,只需要保持与别的工作空间不一致即可,如下图所示。最后点击保存,工作空间就创建成功了,这时会回到之前的工作空间页面,不过可以看到自己新建的工作空间。

2. 矢量数据源

接下来依次进入或点击【数据】——【存储仓库】——【添加新的存储仓库】,准备发布地图数据源,如下图所示:

此时会进入【新建数据源】页面,如下图所示。在这个页面中我们可以看到支持的数据源,包括我们很熟悉的矢量数据如Shapefile,栅格数据如GeoTIFF。值得一提的是还支持PostGIS数据库,甚至接入另一个WMS或者WMTS数据源。

这里我们选择Shapefile,进入【新建矢量数据源】页面,如下图所示。其中,工作区我们选择刚刚创建好的工作区,数据源名称则可以自己定义。然后点击连接参数中的浏览按钮选择Shapefile文件的位置,DBF字符集设置矢量数据属性的字符编码。其他配置项默认,最后点击保存按钮。

此时会进入【新建图层】页面,如下图所示。点击操作下面的发布按钮。

此时进入的是【编辑图层】页面的【数据】选项卡。这些配置项中主要是要配置坐标参考系统和边框范围。作为初学者建议将本机SRS和定义SRS保持一致,Native Bounding Box通过点击【从数据中计算】按钮获得,纬度/经度边框通过点击【Compute from native bounds】按钮获得。如下图所示:

点击保存按钮会进入【图层预览】页面(点击左侧的【图层预览】也可以),如下图所示:

点击我们发布图层的所有格式复选框,我们可以看到这个图层数据同时支持WMS和WFS服务,我们需要什么样服务类型的接口,可以直接点击进去获取具体的地址路径即可。如下图所示。也就是说通过GeoServer发布地图服务,并不是我们所预想的那样,先选择具体的服务类型,再按照服务类型进行操作;而是实现了地图数据发布与地图服务接口的分离,同一个数据可以对应多个服务接口。

如果我们选择浏览器支持的数据格式如WMS的JPEG,浏览器会直接打开这个数据;如果选择浏览器不支持的数据格式如WFS的KML,浏览器会直接下载。有点特别的是WMS的OpenLayers格式,可以直接提供一个地图网页,可以进行交互操作、显示地理位置、拾取特征属性以及选项配置等,如下图所示:

3. 栅格数据源

发布栅格数据源与发布矢量数据源的步骤基本一致,区别在于在新建数据源的时候选择栅格数据源GeoTIFF。在出现的【添加栅格数据源】页面内进行配置,选择创建好的工作空间,自定义数据源名称,以及选择一个栅格数据的文件路径,如下图所示:

除了上述配置,其余配置步骤基本不变。通过这种方式发布的栅格数据就只有WMS服务而没有WFS服务了,如下图所示。这其实也不难理解,将矢量数据栅格化很容易,但是将栅格数据矢量化就相对较难。

同样还是选择WMS服务的OpenLayers格式,显示的地图网页如下图所示。这个网页同样可以交互操作、显示地理位置、以及选项配置等,不过有意思的是还可以点击拾取鼠标位置的具体像素值。

分类: GIS

标签: GeoServer , 地图服务 , WMS , WFS


相关文章
|
Java Linux 定位技术
企业实战(21)基于Linux下安装部署GeoServer地图服务
企业实战(21)基于Linux下安装部署GeoServer地图服务
1162 0
Cesium中开启等高线渲染
最近接到一个需求,需要在Cesium中基于实时地形开启等高线效果,让用户可以看到真实效果。
1509 0
Cesium中开启等高线渲染
|
定位技术
干货!解决Cesium中Entity移动漂移的问题
案例场景:在Cesium开发三维场景展示中,肯定会碰到加载Entity的需求,如果在你的gis应用中,带了地形的展示。那么在旋转切换画面时,Entity是否跟着一起动了起来,感觉像漂移一样呢?
5177 0
干货!解决Cesium中Entity移动漂移的问题
|
前端开发 Java 数据库连接
java bo 对象详解_全面解析 java 中 PO,VO,DAO,BO,POJO 及 DTO 等几种对象类型
Java开发中常见的六大对象模型(PO、VO、DAO、BO、POJO、DTO)各有侧重,共同构建企业级应用架构。PO对应数据库表结构,VO专为前端展示设计,DAO封装数据访问逻辑,BO处理业务逻辑,POJO是简单的Java对象,DTO用于层间数据传输。它们在三层架构中协作:表现层使用VO,业务层通过BO调用DAO处理PO,DTO作为数据传输媒介。通过在线商城的用户管理模块示例,展示了各对象的具体应用。最佳实践包括保持分层清晰、使用工具类转换对象,并避免过度设计带来的类膨胀。理解这些对象模型的区别与联系。
1153 1
|
缓存 Ubuntu Linux
Docker Buildx 简介与安装指南
Docker Buildx 是一个强大的工具,提供了多架构构建、并行构建和高级缓存管理等功能。通过正确安装和配置 Buildx,可以显著提升 Docker 镜像的构建效率和灵活性。希望本文能帮助你更好地理解和使用 Docker Buildx,以提高开发和部署的效率。
7892 16
|
数据可视化 前端开发 JavaScript
3分钟,教你搭建一个三维城市建筑可视化系统 ( Cesium 加载 shp 数据 )
3分钟,教你搭建一个三维城市建筑可视化系统 ( Cesium 加载 shp 数据 )
5171 0
3分钟,教你搭建一个三维城市建筑可视化系统 ( Cesium 加载 shp 数据 )
|
小程序 JavaScript 数据库
微信小程序|考试系统|基于微信小程序和SpringBoot+VUE的智能在线考试系统毕业设计
微信小程序|考试系统|基于微信小程序和SpringBoot+VUE的智能在线考试系统毕业设计
1104 0
|
XML JSON 算法
网络地图服务(WMS)详解
网络地图服务(WMS)详解
1149 0
|
XML JSON 前端开发
网络要素服务(WFS)详解
网络要素服务(WFS)详解
805 0