当前位置: 首页 > news >正文

Geoserver 发布wmts服务,以及cesium加载发布的wmts服务

WMTS提供了一种采用预定义图块方法发布数字地图服务的标准化解决方案。WMTS弥补了WMS不能提供分块地图的不足。WMS针对提供可定制地图的服务,是一个动态数据或用户定制地图(需结合SLD标准)的理想解决办法。WMTS牺牲了提供定制地图的灵活性,代之以通过提供静态数据(基础地图)来增强伸缩性,这些静态数据的范围框和比例尺被限定在各个图块内。这些固定的图块集使得对WMTS服务的实现可以使用一个仅简单返回已有文件的Web服务器即可,同时使得可以利用一些标准的诸如分布式缓存的网络机制实现伸缩性。

目录

一、安装GeoServer的矢量切片插件

二、发布wmts服务

设置切片方案

切片操作

切片效果预览

三、使用cesium加载wmts服务


GeoServer发布WMST是在已经发布好WMS服务的基础上进行的。

一、安装GeoServer的矢量切片插件

GeoServer的矢量切片插件是官方的插件,可以在GeoServer download页面中下载。

(1)在GeoServer下载矢量切片插件包,并进行安装、服务重启。

下载和你的GeoServer版本对应的矢量切片插件,

注意:一定要版本对应。

解压压缩包,并将包内文件全部拷贝到‘GeoServer\webapps\geoserver\WEB-INF\lib’ 处,并重启服务,

然后,重启geoserver即可。

(2) 打开GeoServer的Web管理界面,打开已有的图层会在Tile Caching看到多出来的几个选项,勾选即可。

(3)接下来,验证矢量切片扩展是否已安装成功:

选择“Tile Caching”,将数据类型中的geojson、topojson、mvt等勾选上。

  如果你看到了这些选项,那么就表示扩展已经安装成功了。

二、发布wmts服务

在“Tile layer”下,找到发布的切片选项。选择一种坐标系比例尺进行预览。

预览wmts服务,表示wtms服务可用。不过此时看到的瓦片服务是geowebcache动态生成的,并没有生产全套的瓦片集合。

在想要生产瓦片的条目上点击“seed/Truncate”,意为以种子生产瓦片。

设置切片方案

 Geoserver自带了5个切片方案,实际上主要分为两类坐标系。第一类是EPSG:4326,为WGS84地理坐标系,第二类是EPSG:900913,也就是我们熟悉的3857,web墨卡托投影坐标系,在webgis领域,web墨卡托是最常见的投影坐标系。如果这些都不合适,就需要我们自定义切片方案。

在切片之前,我们可以新建自己的Gridsets,也可以使用GeoServer提供的默认的Gridsets。

一般情况下使用默认的即可,也可以根据需要自定义。本文采用GeoServer提供的默认EPSG:4326的Gridset。

GeoServer默认发布数据后,使用tms等切片协议进行访问时是动态进行数据切片的,切好片的数据就会被缓存下来。如果我们发布的矢量数据或栅格数据的数据量很大,这个时候数据时还没有完整切片的,用户访问的时候可能感觉有点慢,这个时候就可以主动进行数据切片操作对数据进行缓存,访问缓存后的数据就会快很多。

接下来介绍如何主动进行数据切片缓存操作。

切片操作

选择Tile Layers,找到需要切片的图层,选择“Seed/Truncate”,进入GeoWebCache页面,根据实际,修改相应的参数,然后提交。

(1)进入GeoServer的管理页面左侧菜单栏,在切片图层页面下找到对应的发布的图层,

点击切片图层,再点击 Seed/Truncate,进入其切片配置页面中。

(2)进入切图配置页面,对当前选择的地图服务进行瓦片生产参数的配置。

进入切片页面,选择切片策略等参数,一般情况下就用默认配置就行。

制作本地切片缓存,加快访问速度

  • Numbr of tasks to use:线程数
  • type of operation:操作类型
  • Grid Set:切片方案
  • Format:切片格式
  • Zoom Start/Stop:切片开始/结束级别

另外,在配置生产瓦片的时候有一个切片策略的参数,上面是用了默认的EPSG:4325。如果你需要,可以自己设置切图策略(自定义切图比例尺)。

(3)单击提交,会跳转到对应的生产瓦片进程页面,如果没有出现这个,要不是瓦片生产数过少,瞬间完成了,要不就是geoserver报错了,如果你是在tomcat中部署的,请查看Catalina.out检查日志信息。

可以看到正在切图,等待切片任务完成,

刷新页面,就可以看到剩余时间,等待切片任务完成,

(4)当切片完成后,切片保存在geoserver数据默认数据存储位置gwc文件下,进入gwc文件夹找到对应的图层, 可以在存放数据的目录看到切片文件

至此,wmts服务的瓦片生产已经完成了。 

切片效果预览

 

三、使用cesium加载wmts服务

要加载发布图层的切片地图服务,我们首先要找到几个重要参数:工作空间:图层名称

(1)在Geoserver欢迎界面点击右侧WMTS服务,打开xml文件,找到要发布的图层,复制url(Geoserver版本不同url结构略有差异)。

向下查找找到对应的服务链接,修改url,将{TileMatrix}改为{TileMatrixSet}:{TileMatrix}。

代码如下,如果选择EPSG:4326,还需要添加tilingScheme: new Cesium.GeographicTilingScheme()

let wmtsImageryProvider = new Cesium.WebMapTileServiceImageryProvider({url: "http://localhost:8899/geoserver/gwc/service/wmts/rest/test:all_roads/{style}/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/png",layer: "test:all_roads",style: "", //务必加上style属性,哪怕style属性值为空字符串!!!!tileMatrixSetID: "EPSG:4326", //不能用4326,否则cesium中不显示tilingScheme: new Cesium.WebMercatorTilingScheme(),  // 当想要加载EPSG:4326瓦片服务时,只需要创建一个GeographicTilingScheme对象即可});viewer.imageryLayers.addImageryProvider(wmtsImageryProvider);

其中:

  • {style}为瓦片风格,在“创建切片任务”时一般会选择默认值为“raster”;
  • {TileMatrixSet}为瓦片集合名,“创建切片任务”时会选择“EPSG:4326”或“EPSG:900913”;
  • {TileMatrix}为瓦片矩阵名,相当于其他切片方法中的缩放层级。由于GeoWebCache同时支持多种网格的切片,所以这个参数的命名与常用的切片机制稍微有点区别。还记得在geowebcache中看到的文件夹的名字吗?这里的{TileMatrix}就是用冒号替换了下划线后的那个文件名。这个参数一般是由前台可视化库自动给出的,注意要能获得正确的缩放级别,如“EPSG:4326:10”就表示10级缩放。
  • {TileRow}为瓦片行编号,由前台可视化库自动给出;
  • {TileCol}为瓦片列编号,由前台可视化库自动给出。

相关文章:

Geoserver 发布wmts服务,以及cesium加载发布的wmts服务

WMTS提供了一种采用预定义图块方法发布数字地图服务的标准化解决方案。WMTS弥补了WMS不能提供分块地图的不足。WMS针对提供可定制地图的服务,是一个动态数据或用户定制地图(需结合SLD标准)的理想解决办法。WMTS牺牲了提供定制地图的灵活性&am…...

【微信小程序】selectComponent(#id)失败得到是null分析

小程序中无法像网页中轻易的获取DOM元素,需要依靠 this.selectComponent(#id)this.selectAllComponents(#id) 本文主要针对 this.selectComponent 获取DOM元素失败的原因 下面开始正文 上图为我的业务代码,由图可知,通过for循环遍历渲染ca…...

JVM中引用计数法与可达性分析

目录 概要 如何判断对象已死? 引用计数算法 优点 缺点 举例说明 可达性分析 图例说明 GC Roots的对象包括以下几种 可达性分析回收过程 四大引用 回收方法区 方法区的垃圾收集主要回收两部分内容: 1. 废弃的常量 2. 不再使用的类型。 JVM是…...

JS-对象篇

内容 简单介绍 重点介绍三个 Array,String和JSON 后面这两个不是重点 BOM-浏览器对象模型 DOM-文档对象模式(JS中每个HTML标签都封装成一个DOM对象) Array 和java不同 方式一 JS中是var 变量 new Array()(这个变量名后面没有[]这个标记&…...

【Unity】创建一个自己的AR安卓程序

目录1 环境配置2 下载官方提供的AR Starter工程3 AR Starter工程中的包以及打包设置3.1 Package Manager3.2 Player Settings4 创建一个新的AR场景5 AR场景中的物体6 在unity中运行AR场景7 在AR场景的基础上添加自己的想法7.1 修改Cube的旋转速度/方向7.2 将Cube替换为其他物体…...

游戏平台商店化的功能特点

帮助用户高效的获取游戏以及游戏相关内容是游戏平台的核心,基于这个需求在平台功能的设计上与其他类型产品也有着类似的思路。商店模式的特点诸如百货商店、超市、书店以及其他类型的商店,都会根据推荐、分类两个特点提供商品。 如果把游戏比作书籍&…...

最新前端面试知识点总结-2023(3w+字,长篇幅)

2023-前端面试知识点总结面试题总览javascript相关一、js 代码的常用优化手段二、es5 构造函数与继承三、new 一个对象的过程四、防抖与节流五、promise/A规范概述六、实现一个柯里函数封装七、事件队列八、微任务是哪些宏任务是哪些九、执行js代码时,同步任务、微任…...

离线安装ffmpeg

linux离线安装ffmpeg 获取安装包:[ffmpeg-release](Index of /releases (ffmpeg.org)) 下载最新版本,ffmpeg-4.4.tar.gz 然后传送到服务器上,解压安装 # 解压 tar -zxvf ffmpeg-4.4.tar.gz# 安装 cd ffmpeg-4.4 ./configure --enable-sha…...

位置编码Positional Encoding

位置编码Positional Encoding1.Transformers中的PE2.什么是Transformer位置编码2.1.表格型2.2.相对位置的关系-函数型3.为什么可以表示相对距离?4.其他参考内容全来自于网络总结。 其他参考1其他参考2 1.Transformers中的PE 摘抄自这里。 公式是初中生都看的懂, …...

Java异步注解@Async详解

一、Async注解 Async的作用就是异步处理任务。 在方法上添加Async,表示此方法是异步方法;在类上添加Async,表示类中的所有方法都是异步方法;使用此注解的类,必须是Spring管理的类;需要在启动类或配置类中…...

macOS Big Sur 11.7.5 (20G1225) 正式版 ISO、PKG、DMG、IPSW 下载

本站提供的 macOS Big Sur 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装。 2023 年 3 月 27 日 (北京时间 28 日凌晨),…...

硬件语言Verilog HDL牛客刷题day02 组合逻辑部分

1.VL11 4位数值比较器电路 1.题目: 某4位数值比较器的功能表如下。请用Verilog语言采用门级描述方式,实现此4位数值比较器。 2.解题代码: timescale 1ns/1nsmodule comparator_4(input [3:0] A ,input [3:0] B ,output …...

【LM401】ADC采集代码解读

本文主要实现基于LM401模组,,测试ADC低功耗采集,详细解析代码基于计算方式 对于小白理解ADC有更详细的理解 【LM401】ADC采集代码解读1. 单片机ADC与DAC简单理解2. 模组ADC通道介绍3. ADC初始化4. 采集值的计算5.测试结果硬件基于易智联的LM401的LoRa模组…...

CSDN 编程竞赛四十期题解

竞赛总览 CSDN 编程竞赛四十期&#xff1a;比赛详情 (csdn.net) 竞赛题解 题目1、小鱼的航程 有一只小鱼&#xff0c;它上午游泳150公里&#xff0c;下午游泳100公里&#xff0c;晚上和周末都休息&#xff08;实行双休日)。假设从周x&#xff08;1<x<7&#xff09;开…...

【TypeScript学习之路】泛型

【TypeScript学习之路】泛型 文章目录【TypeScript学习之路】泛型写在前面前言一、认识泛型1.1 什么是泛型1.2 泛型函数的使用二、泛型接口与泛型类2.1 泛型接口2.2 泛型类三、泛型约束写在前面 &#x1f917;这里是前端程序员小张&#xff01; &#x1f33b;人海茫茫&#xff…...

数据分析学习项目:东京奥运会跳水评论分析

“中国跳水梦之队” ————有关东京奥运会跳水评论分析 导语 第32届夏季奥林匹克运动会于2021年07月23日-2021年08月08日在日本东京举办。 四年一届的奥运会可以说是世界瞩目的盛会&#xff0c;奥运健儿们在赛场上的精神风貌不只是代表了他们自身的运动精神&#xff0c;更昭…...

Winform/Csharp中使用Linq的Where条件筛选、Select字段映射(左外连接并设置无匹配时默认值)、OrderBy(排序并自定义排序规则)

场景 Java8新特性-Stream对集合进行操作的常用API&#xff1a; Java8新特性-Stream对集合进行操作的常用API_streamapi操作集合_霸道流氓气质的博客-CSDN博客 上面讲的是在Java中使用Stream中对集合的常用操作。 在C#中Linq是有对应的类似的api。 完整和详细的用法可自行查…...

Linux-常用的Shell命令

文章目录前言常用的Shell命令文件和目录管理查看文件、目录信息查看文件内容查看文件类型查找文件查找内容查看目录大小创建文件删除文件拷贝文件移动文件创建目录删除目录拷贝目录压缩文件解压文件路径相关操作目录切换显示当前路径用户、用户组管理创建用户删除用户创建用户组…...

Go语言基础:数组定义及循环遍历

前言 大家好&#xff0c;我是沐风晓月&#xff0c;本文go语言入门-掌握go语言函数收录于《go语言学习专栏》专栏&#xff0c;此专栏带你从零开始学习go语言&#xff0c;持续更新中&#xff0c;欢迎点赞收藏。 &#x1f3e0;个人主页&#xff1a;我是沐风晓月 &#x1f9d1;个人…...

【树与二叉树】二叉树顺序结构实现以及堆的概念及结构--详解介绍

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;数据结构 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录1. 二叉树顺序结构2.…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言&#xff1a;生成式AI的黎明 – Diffusion模型是什么&#xff1f; 近年来&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;领域取得了爆炸性的进展&#xff0c;模型能够根据简单的文本提示创作出逼真的图像、连贯的文本&#xff0c;乃至更多令人惊叹的…...

Unity中的transform.up

2025年6月8日&#xff0c;周日下午 在Unity中&#xff0c;transform.up是Transform组件的一个属性&#xff0c;表示游戏对象在世界空间中的“上”方向&#xff08;Y轴正方向&#xff09;&#xff0c;且会随对象旋转动态变化。以下是关键点解析&#xff1a; 基本定义 transfor…...