Cesium加载wms服务不进行切片加载
Cesium加载wms服务不进行切片加载常见情况下我们会通过WebMapServiceImageryProvider这个类加载geoserver发布出来的wms服务图层。/** * WMS服务图层 * param {string} url 底图对应的类型 * param {string} layers 图层名 */exportdefaultclassWMSLayerextendsCesium.WebMapServiceImageryProvider{constructor(url:string,layers:string,parameters{}){super({url,layers,parameters:{transparent:true,format:image/png,...parameters,},tilingScheme:newCesium.WebMercatorTilingScheme(),enablePickFeatures:false,});};};但是当图层具有文字标识的时候就会出现同一个几何被裁切出现多个标识的情况这个问题出现的原因是Cesium将wms服务切分成了256*256大小的瓦片进行叠加满足三维展示的需要。解决思路将wms图层按照Cesium当前视角下的最大经纬度范围和当前视图像素值加载出一整张图片在Cesium地球上进行叠加。获取视角下经纬度范围getScreenScope(){constrectanglethis.viewer.camera.computeViewRectangle();if(!rectangle){return;}this.rectanglerectangle;const{north,east,south,west,}rectangle;constsouthwestthis.getMetricCoordinates(Cesium.Math.toDegrees(west),Cesium.Math.toDegrees(south));constnortheastthis.getMetricCoordinates(Cesium.Math.toDegrees(east),Cesium.Math.toDegrees(north));return[...southwest,...northeast].join(,);};同时转换为EPSG:3857坐标系getMetricCoordinates(lngitude:number,latitude:number){constsourceProjectionEPSG:4326;consttargetProjectionEPSG:3857;constdegreesproj4(sourceProjection,targetProjection,[lngitude,latitude]);returndegrees;};获取当前视窗像素值const{width,height,}this.viewer.canvas.getBoundingClientRect();this.widthMath.ceil(width);this.heightMath.ceil(height);并且在每次视角变化结束时加载新的图片替换当前图层叠加新的图层。这里我们使用SingleTileImageryProvider这个类来实现图层的叠加。其中去需要注意的是每次移除和叠加图层的时候要保障前后图层处在同一个层级(index)并保持前后一些属性不变。完成代码importproj4fromproj4;import*asCesiumfromcesium;exportdefaultclassNoTileWMSLayer{viewer:Cesium.Viewer;width:number;height:number;baseUrl:string;layerName:string;index:number;rectangle?:Cesium.Rectangle;layer?:Cesium.ImageryLayer;constructor(viewer:Cesium.Viewer,options:{baseUrl:string,layerName:string,}){this.viewerviewer;this.baseUrloptions.baseUrl;this.layerNameoptions.layerName;this.indexthis.viewer.imageryLayers.length;const{width,height,}this.viewer.canvas.getBoundingClientRect();this.widthMath.ceil(width);this.heightMath.ceil(height);this.addLayer();(this.viewerasany).cameraChanged.push((){this.addLayer();});};private_show:booleantrue;getshow():boolean{returnthis._show;};setshow(isShow:boolean){constoldthis._show;if(isShow!old){this._showisShow;this.onShowChange();}};privateonShowChange(){if(this.layer){this.layer.showthis.show;}};private_splitDirection:Cesium.SplitDirectionCesium.SplitDirection.NONE;getsplitDirection():Cesium.SplitDirection{returnthis._splitDirection;};setsplitDirection(splitDirection:Cesium.SplitDirection){constoldthis._splitDirection;if(splitDirection!old){this._splitDirectionsplitDirection;this.onSplitDirectionChange();}};privateonSplitDirectionChange(){if(this.layer){this.layer.splitDirectionthis.splitDirection;}};getMetricCoordinates(lngitude:number,latitude:number){constsourceProjectionEPSG:4326;consttargetProjectionEPSG:3857;constdegreesproj4(sourceProjection,targetProjection,[lngitude,latitude]);returndegrees;};getScreenScope(){constrectanglethis.viewer.camera.computeViewRectangle();if(!rectangle){return;}this.rectanglerectangle;const{north,east,south,west,}rectangle;constsouthwestthis.getMetricCoordinates(Cesium.Math.toDegrees(west),Cesium.Math.toDegrees(south));constnortheastthis.getMetricCoordinates(Cesium.Math.toDegrees(east),Cesium.Math.toDegrees(north));return[...southwest,...northeast].join(,);};addLayer(){constbboxthis.getScreenScope();constoldLayerthis.layer;constparams{transparent:true,format:image/png,service:WMS,version:1.1.1,request:GetMap,layers:this.layerName,bbox,width:this.width,height:this.height,srs:EPSG:3857,};consturlParamsnewURLSearchParams();Object.entries(params).forEach(([key,value]){urlParams.append(key,String(value));});consturl${this.baseUrl}?${urlParams.toString()};this.indexthis.layer?this.viewer.imageryLayers.indexOf(this.layer):this.index;this.layerthis.viewer.imageryLayers.addImageryProvider(newCesium.SingleTileImageryProvider({url,rectangle:this.rectangle,tileWidth:this.width,tileHeight:this.height,}),Math.min(this.index,this.viewer.imageryLayers.length));if(this.layer){this.layer.showthis.show;this.layer.splitDirectionthis.splitDirection;}if(oldLayer){this.viewer.imageryLayers.remove(oldLayer);}};};通过这个方式加载就可以得到一个完整的wms服务constleftLayernewNoTileWMSLayer(window.mapViewer,{baseUrl:你的geoserver地址,layerName:你的图层名,});leftLayer.splitDirectionCesium.SplitDirection.LEFT;

相关新闻

珠海当地电工证电工上岗证考证行业典范机构推荐

珠海当地电工证电工上岗证考证行业典范机构推荐

对于想入行电工行业、持证上岗的蓝领群体来说,选择一家有正规资质、教学质量有保障的培训机构是顺利拿证、掌握实用技能的核心前提。在珠海电工证考证领域,珠海市香洲区信宇职业培训学校是公认的行业典范机构,作为珠海官方认证的电工证推荐培…

2026/7/30 6:56:42阅读更多 →
2025年11月网络规划设计师案例分分析真题

2025年11月网络规划设计师案例分分析真题

问题一: 需要在图书馆内(500平方米)部署放装AP覆盖,第一批部署了10个2.4G的AP,但是会出现网络延迟,为此在此次增加了20个同型号AP,但是同样会出现网络延迟,甚至更严重,请问是什么原因导致的&…

2026/7/30 6:56:42阅读更多 →
AR智能眼镜出海北美,客服为什么成了“隐形天花板”?

AR智能眼镜出海北美,客服为什么成了“隐形天花板”?

AR智能眼镜,2026年跨境电商赛道上最受瞩目的品类之一。热度是实打实的:亮亮视野首代AR翻译眼镜Leion Hey销量超过3万台,用户单日平均使用时长达150分钟;Leion Hey2在韩国首尔发布,两小时内预订量突破1万台。Rokid的产品…

2026/7/30 6:56:42阅读更多 →
PPT内容写完排版难看!主流AI工具版式配色优化实测测评

PPT内容写完排版难看!主流AI工具版式配色优化实测测评

一、开篇前言不少职场人、自媒体创作者都会遇到同一个难题:PPT 文案内容已经全部整理完毕,逻辑框架没问题,但版式杂乱、配色违和、图文排布不协调,手动调整需要耗费大量时间,又没有专业设计功底。随着 AI 办公工具普及…

2026/7/30 8:15:07阅读更多 →
Mac 视频太多怎么整理?3 款自动刮削工具分享,拯救杂乱片库

Mac 视频太多怎么整理?3 款自动刮削工具分享,拯救杂乱片库

对于许多影视爱好者来说,Mac 不仅仅是一台生产力工具,更是一个私人的高清影音库。然而,随着收藏的 4K 原盘、蓝光 remux 以及各类欧美剧、日韩剧集越来越多,“文件管理”逐渐变成了一场噩梦:文件名杂乱无章、封面缺失、…

2026/7/30 8:15:07阅读更多 →
Hugging Face全流程实战:从模型选型到生产部署

Hugging Face全流程实战:从模型选型到生产部署

1. 项目概述:Hugging Face全流程实战指南在AI工程化落地的实践中,Hugging Face生态已成为NLP领域的标准工具链。本指南将完整演示从原始数据到生产部署的全流程,涵盖预训练模型选型、数据清洗策略、分布式训练技巧以及服务化部署方案。我曾用…

2026/7/30 8:15:07阅读更多 →
Jupyter Notebook中执行Shell命令的三种方法与实践指南

Jupyter Notebook中执行Shell命令的三种方法与实践指南

1. 从“魔法”到“桥梁”:为什么要在Jupyter里跑Shell?如果你和我一样,常年混迹在数据科学、机器学习或者日常的自动化脚本开发里,那你对Jupyter Notebook一定不陌生。它那个交互式的单元格,写一段Python代码&#xff…

2026/7/30 8:15:07阅读更多 →
Excel VBA批量套打实战:从数据到打印的自动化解决方案

Excel VBA批量套打实战:从数据到打印的自动化解决方案

1. 项目概述:从手动填单到一键套打的效率革命如果你每天需要处理几十甚至上百份快递单、发货单、对账单的打印工作,还在用最原始的方法——打开Excel表格,复制粘贴收件人信息,然后调整打印区域,一张一张地点击打印&…

2026/7/30 8:15:07阅读更多 →
昆明商业演艺节目定制企业年会/晚会/开业庆典节目演出解析

昆明商业演艺节目定制企业年会/晚会/开业庆典节目演出解析

在昆明及云南各地州举办开业庆典、企业年会、品牌晚会、政企汇演等活动,优质的节目演艺是烘托氛围、提升活动质感的核心关键。很多企业、主办方常会遇到节目老旧无新意、员工节目效果差、无专业编排、演出与活动调性不匹配等问题。昆明华灿文化深耕云南本土演艺服务…

2026/7/30 8:13:06阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/29 9:47:45阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/29 7:00:19阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/29 7:58:51阅读更多 →
3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 🚀 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 你是否曾经因为iOS系统的严格…

2026/7/30 0:00:58阅读更多 →
[GESP202606 四级] 扫雷

[GESP202606 四级] 扫雷

B4557 [GESP202606 四级] 扫雷 https://www.luogu.com.cn/problem/B4557 中国计算机学会(CCF)2026年6月C四级讲解——扫雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四级] 扫雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…

2026/7/30 0:00:58阅读更多 →
Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:58阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/30 0:27:26阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/30 4:47:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/29 14:26:42阅读更多 →