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

文章目录

  • 1. 概述
  • 2. 矢量数据源
  • 3. 栅格数据源

1. 概述

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

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

图8.14 GeoServer登录主页

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

图8.15 GeoServer创建新的工作空间

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

图8.16 GeoServer新工作空间设置

2. 矢量数据源

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

图8.17 GeoServer添加新的存储仓库

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

图8.18 GeoServer新建数据源

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

图8.19 GeoServer新建矢量数据源

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

图8.20 GeoServer新建图层

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

图8.21 GeoServer编辑图层

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

图8.22 GeoServer图层预览

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

图8.23 GeoServer发布图层支持格式

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

图8.24 GeoServer发布矢量数据显示结果

3. 栅格数据源

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

图8.25 GeoServer新建栅格数据源

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

图8.26 GeoServer图层预览

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

图8.27 GeoServer发布栅格数据显示结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/604267.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个奇怪的问题和奇怪的解决方案

背景 最近想学学OpenCV,先说说学习环境 软件:Python 3.11 Pycharm opencv、numpy、matplotlib硬件:家里台式机,单位笔记本代码放到github上,方便在两台机子之间同步笔记本用win11系统台式机原来安装了debian 12KDE…

代码随想录算法训练营第四十九天|121. 买卖股票的最佳时机、122.买卖股票的最佳时机II

代码随想录算法训练营第四十九天|121. 买卖股票的最佳时机、122.买卖股票的最佳时机II 买卖股票的最佳时机 121. 买卖股票的最佳时机 文章讲解:https://programmercarl.com/0121.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C…

Vue中插槽的简单使用

插槽 分类&#xff1a;默认插槽、具名插槽、作用域插槽 默认插槽&#xff1a;让父组件可以向子组件指定位置插入html结构&#xff0c;也是一种组件通信的方式&#xff0c;适用于父组件&#xff08;App&#xff09;>子组件(MyFooter) 默认插槽的App组件 <template>&…

WebofScience快速检索文献的办法

Web of Science为什么老是搜不到文章&#xff0c;原来是要在这个地方全部勾选 如果是搜标题的话&#xff0c;选Title&#xff0c;输入你要搜的文章标题 另外&#xff0c;也可以在浏览器直接搜文章标题&#xff0c;得到文章的DOI&#xff0c;然后选DOI&#xff0c;直接搜DOI也行…

红帽Redhat(liunx)连接虚拟机

一、xshell连接虚拟机的步骤 ①在Linux里面 ifconfig去查看网络的IP地址 setup设置IP地址 service network restart 重启网卡服务 ②在windows 打开网络和共享中心→更改适配器 仅主机&#xff1a;VMnet1 IPV4的IP Net模式&#xff1a;VMnet8 ③直…

中通快递查询,中通快递单号查询,批量删除不需要的快递单号

快递单号的管理现在是许多企业和个人日常工作中不可或缺的一部分&#xff0c;面对堆积如山的快递单号&#xff0c;如何快速、准确地处理成了许多人的难题。今天&#xff0c;我们将为大家带来一款强大的快递单号处理软件——快递批量查询高手&#xff0c;让你从此告别繁琐的手动…

SpringCloud-高级篇(十一)

&#xff08;1&#xff09;搭建Redis-主从架构 前面我们实现了Redis的持久化&#xff0c;解决了数据安全问题&#xff0c;但是还有需要解决的问题&#xff0c;下面学习Redis的主从集群&#xff0c;解决Redis的并发能力的问题 Redis的集群往往是主从集群&#xff0c;Redsi为什么…

MyBatis-基本概念

一、概念 概念MyBatis官方文档介绍&#xff1a;MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval …

【leetcode】字符串中的第一个唯一字符

题目描述 给定一个字符串 s &#xff0c;找到 它的第一个不重复的字符&#xff0c;并返回它的索引 。如果不存在&#xff0c;则返回 -1 。 用例 示例 1&#xff1a; 输入: s “leetcode” 输出: 0 示例 2: 输入: s “loveleetcode” 输出: 2 示例 3: 输入: s “aabb”…

游戏缺少x3daudio1_7.dll文件怎么办?x3daudio1_7.dll丢失总共有六个解决方法

导语&#xff1a;在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“x3daudio1_7.dll丢失”。那么&#xff0c;x3daudio1_7.dll到底是什么文件呢&#xff1f;它的作用和影响又是什么呢&#xff1f;本文将为您详细介绍x3daudio1_7.dll的相关知…

linux cpu、memory 、io、网络、文件系统多种类型负荷模拟调测方法工具

目录 一、概述 二、stress介绍和使用 2.1 介绍 2.2 使用 三、stress-ng介绍和使用 3.1 介绍 3.2 使用 3.3 实例 四、sysbench 4.1 介绍 4.2 使用 五、lmbench 5.1 介绍 5.2 使用 一、概述 今天介绍两款cpu负荷调试工具,用来模拟多种类型的负载。主要用来模拟CPU…

LabVIEW开发自动光学焊点检测系统

LabVIEW开发自动光学焊点检测系统 LabVIEW于开发了一个自动光学焊点检测系统&#xff0c;旨在提高电子元件焊接的质量和效率。通过利用LabVIEW的高级视觉开发模块&#xff0c;该系统能够准确地识别和分类电路板上的不同焊点类型&#xff0c;如桥接、虚焊、漏焊和多锡。这一进步…

Java最大优先队列设计与实现

Java 学习面试指南&#xff1a;https://javaxiaobear.cn 1、API设计 类名MaxPriorityQueue构造方法MaxPriorityQueue(int capacity)&#xff1a;创建容量为capacity的MaxPriorityQueue对象成员方法private boolean less(int i,int j)&#xff1a;判断堆中索引i处的元素是否小…

Docker中swarm管理工具

Docker中swarm管理工具 1 安装swarm swarm是Docker自带的容器集群管理工具。 1.1 集群IP 主机名ip地址网卡名软件master192.168.108.201ens33Dockernode1192.168.108.202ens33Docker 修改主机名 # 管理节点&#xff0c;修改主机名 hostnamectl set-hostname master# 子节…

面试 React 框架八股文十问十答第一期

面试 React 框架八股文十问十答第一期 作者&#xff1a;程序员小白条&#xff0c;个人博客 相信看了本文后&#xff0c;对你的面试是有一定帮助的&#xff01;关注专栏后就能收到持续更新&#xff01; ⭐点赞⭐收藏⭐不迷路&#xff01;⭐ 1&#xff09;React 生命周期是怎样…

PHP代码审计之实战审代码篇2

4. 仔细观察如下代码&#xff0c;思考代码有什么缺陷&#xff0c;可能由此引发什么样的问题&#xff1f; <?php require_once("/home/rconfig/classes/usersession.class.php"); require_once("/home/rconfig/classes/ADLog.class.php"); require_onc…

neo4j-cypher语言使用

neo4j-cypher语言使用 neo4j的本质就是节点关系。节点是用小括号来表示&#xff0c;&#xff08;节点&#xff1a;节点标签 {属性名称&#xff1a;属性值}&#xff09;with 本质是with(变量) 传送到下一个语句&#xff0c;with 子处理(变量), with 查询return 变量。unwind 本质…

【二】使用create-vue创建vue3的helloworld项目(推荐)

create-vue 官网&#xff1a;快速上手 | Vue.js create-vue 是 Vue3 的专用脚手架&#xff0c;使用 vite 创建 Vue3 的项目&#xff0c;也可以选择安装需要的各种插件&#xff0c;使用更简单。 1、使用方式 npm create vuelatest这个命令会安装和执行 create-vue&#xff0…

k8s的yaml文件中的kind类型都有哪些?(清单版本)

在操作kubenates的过程中&#xff0c;我们接触到的yaml文件中的kind类型有很多。他们代表了kubenate的不同类型的对象&#xff0c;了解了kind的类型&#xff0c;也就相当于了解了k8s都有哪些类型的对象。 类型清单及概要说明 序号类型简述1Pod一个Kubernetes中最基本的资源类型…

排序算法记录

冒泡排序 public class BubbleSorting20230704 {public static void main(String[] args) {int[] numbers new int[]{2,3,1,5,4};for(int i0;i<numbers.length;i){for (int j0;j<numbers.length-1-i;j){if(numbers[j]>numbers[j1]){int temp numbers[j];numbers[j]…