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

Cesium添加WMS,WMTS,地形图图,3D Tiles数据

Cesium 中,你可以添加 WMSWMTS地形图3D Tiles 数据源。以下是详细的实现方法:


1. 添加 WMS 服务

WMS(Web Map Service)是一种动态地图服务,适用于加载栅格地图图层。

代码示例

const viewer = new Cesium.Viewer("cesiumContainer");// 添加 WMS 图层
const wmsProvider = new Cesium.WebMapServiceImageryProvider({url: "https://your-wms-server.com/wms", // WMS 服务地址layers: "layer1,layer2", // 要加载的图层parameters: {service: "WMS",format: "image/png",transparent: true,},enablePickFeatures: false, // 是否支持点击查询
});viewer.imageryLayers.addImageryProvider(wmsProvider);

参数说明

  • url:WMS 服务地址。
  • layers:要加载的图层名称(多个用逗号分隔)。
  • parameters:WMS 请求参数(如 format, transparent)。
  • enablePickFeatures:是否允许点击查询要素(默认 false)。

2. 添加 WMTS 服务

WMTS(Web Map Tile Service)是一种瓦片地图服务,适合加载高分辨率地图。

代码示例

const viewer = new Cesium.Viewer("cesiumContainer");// WMTS 配置
const wmtsProvider = new Cesium.WebMapTileServiceImageryProvider({url: "https://your-wmts-server.com/wmts", // WMTS 服务地址layer: "layer-name", // 图层名称style: "default", // 样式format: "image/png",tileMatrixSetID: "EPSG:3857", // 瓦片矩阵集(如 Web Mercator)maximumLevel: 18, // 最大缩放级别credit: new Cesium.Credit("Data provided by XXX"), // 数据来源声明
});viewer.imageryLayers.addImageryProvider(wmtsProvider);

参数说明

  • url:WMTS 服务地址。
  • layer:要加载的图层名称。
  • tileMatrixSetID:瓦片矩阵集(如 EPSG:3857EPSG:4326)。
  • maximumLevel:最大缩放级别(影响加载的瓦片分辨率)。

3. 添加地形数据

Cesium 支持加载 全球地形自定义地形(如 Cesium World Terrain)。

(1)使用 Cesium World Terrain(默认全球地形)

const viewer = new Cesium.Viewer("cesiumContainer", {terrainProvider: Cesium.createWorldTerrain(), // 使用 Cesium 全球地形
});

(2)加载自定义地形(如 STK 地形)

const customTerrainProvider = new Cesium.CesiumTerrainProvider({url: "https://your-terrain-server.com/terrain", // 地形服务地址requestVertexNormals: true, // 是否请求顶点法线(用于光照效果)requestWaterMask: true, // 是否请求水面效果
});const viewer = new Cesium.Viewer("cesiumContainer", {terrainProvider: customTerrainProvider,
});

(3)本地地形数据(如 quantized-mesh)

const localTerrainProvider = new Cesium.CesiumTerrainProvider({url: "./data/terrain", // 本地地形数据路径
});const viewer = new Cesium.Viewer("cesiumContainer", {terrainProvider: localTerrainProvider,
});

4. 加载 3D Tiles

3D Tiles 是 Cesium 的 3D 数据标准,适用于加载 倾斜摄影、BIM、点云 等数据。

(1)加载 3D Tiles 模型

const viewer = new Cesium.Viewer("cesiumContainer");const tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({url: "https://your-3dtiles-server.com/tileset.json", // tileset.json 路径maximumScreenSpaceError: 2, // 渲染质量(数值越小越精细)dynamicScreenSpaceError: true, // 动态调整加载精度dynamicScreenSpaceErrorDensity: 0.00278, // 密度控制})
);// 定位到 3D Tiles
viewer.zoomTo(tileset);

(2)调整 3D Tiles 样式

tileset.style = new Cesium.Cesium3DTileStyle({color: {conditions: [["${Height} >= 100", "color('red')"],["${Height} >= 50", "color('yellow')"],["true", "color('blue')"],],},
});

(3)控制 3D Tiles 显隐

tileset.show = false; // 隐藏
tileset.show = true;  // 显示

总结

数据类型Cesium 加载方式适用场景
WMSWebMapServiceImageryProvider动态地图服务
WMTSWebMapTileServiceImageryProvider瓦片地图服务
地形数据CesiumTerrainProvider全球/自定义地形
3D TilesCesium3DTileset3D 模型、BIM、点云

常见问题

  1. WMS/WMTS 加载失败?

    • 检查 url 是否正确,确保服务支持 CORS
    • 确认 layerstileMatrixSetID 参数是否正确。
  2. 3D Tiles 加载慢?

    • 调整 maximumScreenSpaceError 降低渲染质量。
    • 使用 Cesium3DTilesetpreloadWhenHidden 预加载。
  3. 地形不显示?

    • 确保 terrainProvider 正确设置。
    • 检查地形数据路径或服务是否可用。

http://www.xdnf.cn/news/3026.html

相关文章:

  • 单链表详解
  • Suna - 开源通用人工智能助手
  • 算法每日一题 | 入门-顺序结构-A+B Problem
  • 颜色分类,不靠“调色盘”:双指针 VS 计数排序的正面PK
  • 【Hive入门】Hive高级特性:视图与物化视图
  • 从 Synchron 会议观察 Lustre/Scade 同步语言的演化 (1994 - 2024)
  • 探索豆包WEB/PC超能创意1.0:创意新利器的全面解析
  • 1.6 点云数据获取方式——单目相机多视图几何
  • 论文笔记-基于多层感知器(MLP)的多变量桥式起重机自适应安全制动与距离预测
  • socket套接字-UDP(下)
  • 揭开应用程序的神秘面纱:深入了解 AWS X-Ray
  • 阿里云 CentOS YUM 源配置指南
  • 【论文阅读】Partial Retraining Substitute Model for Query-Limited Black-Box Attacks
  • 高德地图MCP介绍和cursor接入编码示例(高德MCP)
  • AWS SQS 队列策略配置指南:常见错误与解决方案
  • 【计算机视觉】深度解析MediaPipe:谷歌跨平台多媒体机器学习框架实战指南
  • 在开发板上如何处理curl: (60) SSL certificate problem
  • 微服务架构下的熔断与降级:原理、实践与主流框架深度解析
  • CentOS一键安装MySQL5.7(源码安装)
  • matplotlib饼图练习
  • 通过 Node.js 搭配 Nodemailer 实现邮箱验证码发送
  • 五、UI自动化测试05--PyTest框架
  • grafana/loki 设置日志保留时间
  • Cursor —— AI编辑器 使用详解
  • 【动态导通电阻】 GaN PiN二极管电导调制对动态 RON 的影响
  • 从Windows开发迁移到信创开发的指南:国产替代背景下的技术路径与实践
  • Webshell管理工具的流量特征
  • 桂链:使用Fabric的测试网络
  • 043-代码味道-循环依赖
  • LeetCode58_最后一个单词的长度