Cesium加载地形

Cesium中地球默认为光滑的椭球体,相当于地形高度为都为零。开发者可以调用具有真实地理高度的地形数据,同样也可以利用数字高程模型(DEM)数据生成地形加载到Cesium地球上。

  1. 加载地形数据
    Cesium定义了地形构造函数,开发者可以通过terrainProvider接口直接调用地形数据服务。需要注意的式一个项目中通常只有一种地形数据,terrainProvider不支持多种地形数据叠加。开发者注册Cesium ion账号获得令牌(token)后,即可完成地形数据的加载。
 const viewer = new Cesium.Viewer("mycesium", {
      baseLayerPicker: false, //关闭图层选择
      imageryProvider: esri,
      terrainProvider:Cesium.createWorldTerrain({
        requestVertexNormals: true, //当前属性可以增加法线,用于提高光照效果
        requestWaterMask: true, //当前属性可以增加水面特效
      })
      });
    viewer.scene.globe.enableLighting=true
  1. 地形服务
    Ceisum提供了多种现有地形服务数据接口,并且支持自定义地形数据
    1. 调用地形数据服务
      Cesium的rtreeainProvider支持多种地形数据请求方法,大部分地形Provider通过基于HTTP的描述性状态迁移(REST)接口请求地形数据切片。依据地形数据的组织方式和请求方式不同,Cesium支持下列地形Provider:
    • CesiumTerrainProvider:高精度全球地形数据,附有光照和书面效果。地形切片使用quantized-mesh v1.0格式,Cesium使用CesiumTerrainProvider API调用该服务
    • Google Earth Enterprise Server:通过Google Earth的搞成地图(height map)方式生成地形,Cesium使用GoogleEarthEnterpriseTerrainProvider API调用该服务
    • VT MAK VR-TheWorld Server:从VR-TheWorld Server请求地形切片,这个服务数据式90m采样精度的全球地形数据,且包含水深数据,Cesium使用VRTheWorldTerrainProvider API调用该服务
    • Ellipsoid:光滑椭球体,这是Cesium默认的全球地形,地形高度为零,没有任何起伏效果。Cesium嗲用EllipsoidTerrainProvider API调用该服务
      const viewer = new Cesium.Viewer("mycesium", {
            baseLayerPicker: false, //关闭图层选择
            terrainProvider: new Cesium.CesiumTerrainProvider({
           //terrainProvider属性用于放入引入的地形 CesiumTerrainProvider 将地形数据,转换为Cesium可以访问的格式
             url: Cesium.IonResource.fromAssetId(1), //url属性用于访问地图服务器的地址
            requestVertexNormals: true, //当前属性可以增加法线,用于提高光照效果
             requestWaterMask: true, //当前属性可以增加水面特效
            }),
          });
      
    1. 自定义地形数据
      Cesium支持加载自定义地形数据服务,开发者可以将本地的DEM地形数据处理并加载到Cesium中,然后通过CesiumLab地形处理模块添加高程数据,并设定坐标参数及输入路径,然后进行数据处理得到地形数据服务。
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐