Cesium实践(2)—— 加载地形与影像

这篇具有很好参考价值的文章主要介绍了Cesium实践(2)—— 加载地形与影像。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

地形数据用来表示真实的地形起伏;地图数据指的则是真实的影像服务, 本文实践在Cesium中加载地形与影像数据。


地形数据

Cesium地形服务

地形服务是Cesium的亮点之一,通过加入地形可以形象的展示出地球表面凹凸起伏。如果要使用地形服务的话,在创建Viewer时指定 terrainProvider 即可,注意地形数据是不可叠加的。

  • Cesium.createWorldTerrain

当添加了默认 token 后,可以使用 Cesium.createWorldTerrain 添加Cesium自带的地形服务,不需要额外指定请求的url:

  const viewer = new Cesium.Viewer("cesium", {
    infoBox: false,
    
    // 地形服务
    terrainProvider: Cesium.createWorldTerrain({
      requestVertexNormals: true, //开启地形光照
      requestWaterMask: true, // 开启水面波纹
    }),

  });

下图是加载地形数据后西藏部分地区的地形
cesiumterrainprovider加自定义地形,WebGIS,# Cesium,webgis,cesium
查看请求的话发现地形数据是以矢量瓦片的格式进行请求的,cesium引擎在获取数据后基于webgl进行渲染
cesiumterrainprovider加自定义地形,WebGIS,# Cesium,webgis,cesium
cesiumterrainprovider加自定义地形,WebGIS,# Cesium,webgis,cesium

  • 其它地形服务

Cesium还支持一些其它厂商的开源地形服务,如:谷歌地球的高程数据VR-TheWorld Server的高程数据光滑椭球体

  • 谷歌地球高程数据: 需要指定url和元数据
  • VR-TheWorld Server高程数据: 需要指定url
  • 谷歌地球高程数据:默认无高度
    // 使用谷歌地球的高程数据
    terrainProvider: Cesium.GoogleEarthEnterpriseTerrainProvider({
      url: "http://www.example.com",
      metadata: metaOptions,
    }),
    
    // 使用 VR-TheWorld Server的高程数据
    terrainProvider: Cesium.VRTheWorldTerrainProvider({
      url: "http://www.example.com",
    }),

    // 使用 光滑椭球体(默认无高度)
    terrainProvider: Cesium.EllipsoidTerrainProvider(),

自定义高程数据

Cesium支持加载自定义的高程数据,一般是通过 DEM数字高程模型,借助 Cesium Lab 转换为Cesium支持的地形数据格式,然后使用 Cesium.CesiumTerrainProvider 这个 API 进行加载,DEM数据可以从地理空间数据云下载,对于遥感相关专业的人来讲它的重要性相当于 Git Hub 之于计科,是下载遥感数据最常用的网站。

	// 自定义地形服务
     terrainProvider: new Cesium.CesiumTerrainProvider({
       url: "xxx",
    }),

完整的使用教程网上有很多,这里不再详细介绍,可参考Cesium 地形数据的加载

影像数据

加载影像数据

Cesium默认使用微软的Bing影像图,在Viewer类中使用 imageryProvider 函数可初始化图层,加载高德栅格瓦片地图:

	// gd
    imageryProvider: new Cesium.UrlTemplateImageryProvider({
      url: "http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}",
      layer: "GDLayer",
      style: "default",
      format: "image/png",
      tileMatrixSetID: "GoogleMapsCompatible",
    }),

或者

	const layers = viewer.scene.imageryLayers;
 	layers.addImageryProvider(
    	new Cesium.UrlTemplateImageryProvider({
      		url: "http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}",
      		layer: "GDLayer",
      		style: "default",
      		format: "image/png",
      		tileMatrixSetID: "GoogleMapsCompatible",
    	})
    )

cesiumterrainprovider加自定义地形,WebGIS,# Cesium,webgis,cesium

ImageryProvider 支持的地图服务

Cesium支持加载 TMS WMS WMTS 等多个标准的地图服务,同时也提供了支持多种服务的接口,API文档:Cesium.ImageryProvider(),下面列举一些常用的接口。

API 说明
WebMapServiceImageryProvider 网络地图服务WMS,OGC标准影像数据服务之一,用于从分布式地理空间数据库请求地理区域的地图块
TileMapServiceImageryProvider 瓦片地图服务TMS ,REST风格的瓦片服务,可使用Map Tiler 或 GDAL2Tiles 生成瓦片
WebMapTileServiceImageryProvider 网络地图瓦片WMTS,OGC标准影像数据服务之一,通过网络提供预先渲染的地理参考地图瓦片
OpenStreetMapImageryProvider 调用 Open Street Map 在线地图或者 Slippy 地图切片
BingMapsImageryProvider 调用 Bing 地图网络服务
ArcGisMapServerImageryProvider 调用 ArcGis Server 发布的瓦片服务
GoogleEarthEnterpriseImageryProvider;GoogleEarthEnterpriseMapsProvider 调用 Google Earth 发布的影像或地图服务
MapboxImageryProvider;MapboxStyleImageryProvider 调用 Mapbox API 发布的各种数据服务,需要提前申请令牌
SingleTileImageryProvider 加载一张全球图片作为底图
UrlTemplateImageryProvide 可连接至各种地图原,参考 UrlTemplateImageryProvider

总结

地形数据

  • Cesium地形服务
  • 自定义高程数据

影像数据文章来源地址https://www.toymoban.com/news/detail-584056.html

  • 加载影像数据
  • ImageryProvider 支持的地图服务

到了这里,关于Cesium实践(2)—— 加载地形与影像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 050:cesium加载mapbox卫星地图、mapbox地形地图

    第050个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中加载mapbox卫星地图、mapbox地形地图。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 示例效果

    2023年04月18日
    浏览(69)
  • Qgis加载在线XYZ瓦片影像服务的实践操作

    目录 背景 一、XYZ瓦片相关知识 1、xyz瓦片金字塔 2、 瓦片编号  3、瓦片访问 二、在Qgis中加载在线地图 1、Qgis版本  2、瓦片加载 3、地图属性预览  总结         在做电子地图应用的时候,很常见的会提到瓦片(tile)的概念,瓦片相当于是一张一张的地图。为了提高地图

    2024年02月09日
    浏览(53)
  • 超图iClient3DforCesium地形、影像、模型、在线影像交互示例

    数据源:基于iserver发布的三维场景(地形、影像、BIM模型) + 在线arcgis影像 应用:目录树展示源数据列表、目录树控制源数据可视化结果显隐、BIM模型点选查询关联属性

    2024年02月03日
    浏览(36)
  • Cesium中实现地形压平

    遇到新需求:地形与倾斜精度不一致,导致部分地形会压盖倾斜。虽然关闭地形深度测试能够解决,但是又会引发新的问题,所以决定对范围内的地形做压平处理。 地形压平与倾斜压平类似,目的是将指定范围内的地形顶点修改成设定的高程。 地形压平原理和倾斜压平其实

    2024年02月16日
    浏览(63)
  • UE4 Cesium离线生成地形

    地理空间数据云 首先进这个网址,下载对应的tif以及高程(DEM) 下载CesiumLab2 在地形切片中点击添加,将黑白图像数据,添加,选择存储类型为散列文件,选择输出路径 再选择影像切片,选择有颜色的图片,添加进入,选择存储方式为散列,选择输出路径,确认 下载nginx  

    2024年02月11日
    浏览(28)
  • cesium 3dtiles地形遮挡、设置离地高度

    在开启 viewer.scene.globe.depthTestAgainstTerrain = true //开启地形深度检测 后加载3dtiles数据会导致被地形遮挡,导致3d tiles数据看不见 使用矩阵将模型高度提升

    2024年02月02日
    浏览(22)
  • 关于cesium根据地形画区域面积并覆盖在3d表面上

    最近一直在研究在3d地图上添加区域还有车辆路径路线,很是秃然啊!在不断的百度百度再百度,终于有了一套解决办法,先演示一下操作过程, drawLine()方法  drawPlane()方法 下面就来堆代码吧。 前提是开启了地形检测viewer.scene.globe.depthTestAgainstTerrain = true;一般开启会占用一定

    2024年02月11日
    浏览(24)
  • Cesium 中实现影像贴 3Dtiles

    Cesium 中我们经常使用的图层服务除了常见的遥感影像,还会包括一些矢量数据(如宗地范围、规划用地、道路信息等),这些图层服务通常经过 ArcGIS Server / GeoServer 之类的服务器渲染、切片供 Cesium 展示。 但在实际应用中会发现,这些图层服务的内容会被 3DTiles 遮盖(特别是渲染

    2024年02月08日
    浏览(25)
  • Cesium入门之十:Cesium加载3DTiles数据

    3DTiles是一种面向网格化、可展示的大规模三维空间数据格式,专门为流式传输和渲染海量3D地理空间数据而设计的,用于存储和管理基于网格的三维模型数据。其数据结构基于B3DM和PNTS格式,可以支持多个级别的LOD,并使用Tilesets(瓦片集合)来组织和管理数据。3DTiles具有以

    2024年02月12日
    浏览(34)
  • 【Cesium 安装+Cesium 加载b3dm】

    一、安装的方式大致有三种: 1、引入ceisum源码包使用; 2、安装cesium插件; 3、安装Vue-cesium插件 我这里只尝试了第一种和第二种。 引入ceisum源码包使用 可以使用直接下载官方压缩包来引入 也可以npm i cesium包,把build文件夹下的文件拿来引入(需要把build文件下的文件放到

    2024年02月13日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包